en algo que conlleve un control dosificado, no puedes poner un "todo o nada" para eso existen los potenciometros, o salidas a puertos controlados (ya sea por sensor , por posición, o por una magnitud, que tu luego puedas controlar o parametrizar) uno muy famoso, o que fijo conoces por tu curro.. es uno de posición, concretamente el de "fin de carrera" que se usa para el final de recorrido de una puerta de garaje, por ejemplo, para que no siga cerrando cuando esta cerrada o abriendo cuando está abierta... incluso por fotocélula, pero como medio de seguridad...
pero hay cientos de sensores que pueden actuar físicamente pero sin ser controlados en plan ceros y unos, o todo o nada... los motores actuales por pasos, puedes controlar el punto exacto en el que están, cuanto han girado, o a que velocidad lo harán.... por eso se usan en estos casos , para dosificar...
por ejemplo puedo controlar un motor, sin frenos ni nada (OJO!) sabiendo cuanto necesita para girar y abrir una puerta y que fuerza se necesita... con ello cuentas los giros de motor, y por ejemplo, para abrir determinas la fuerza que le mandas al motor, en el par máximo al principio para luego ir minimizando esa fuerza cuando ya esté llegando al final, y poder frenarla...
estos casos son muy simples, y en la vida real llevan 4-5 metodos complementarios, simplemente por seguridad...
cuando en mi proyecto de Clases de ensamblador, tuve que hacer el circuito+programación del puto chip LM 64 de motorola, para lo mierda que era, llevaba 200 o 300 líneas de código... eso solo para la parte de procesamiento del chip... luego circuitos a parte, sensores a parte, etc... cada uno con su entrada en el código para modificarlo si fuese necesario por ejemplo si actuaba una fotocélula.... y claro... todo optimizado para que funcionase si o si, incluso sin energía en el chip... o sea que los frenos de seguridad, funcionasen incluso cuando todo lo demás fallase...
nota... me pillaron porque copié de internet una rutina que no tuve cojones de hacer, pues nadie me aportaba ideas... así que la parte de control numérico (sisi como el de un CNC!) fué plagiada... jejeje el profesor se ensamblador, nos revisó todo y en el medio del código aparecia una etiqueta "REM" con explicaciones en inglés!! jajajaj