Componentes y suministros
|
× | 1 | ||||
|
× | 4 | ||||
|
× | 1 | ||||
|
× | 1 |
Aplicaciones y servicios en línea
|
Acerca de este proyecto
Leer un interruptor de palanca
A diferencia del omnipresente interruptor de botón que tiene un ciclo de conmutación APAGADO-ENCENDIDO-APAGADO, un interruptor basculante simple tiene un ciclo de conmutación APAGADO-ENCENDIDO o ENCENDIDO-APAGADO: permanecerá en la posición del interruptor hasta que se vuelva a encender.
¿Cosas bastante obvias? Sí, pero si queremos proporcionar una solución de software para leer de manera confiable un interruptor de palanca, o cualquier otro interruptor, debemos comprender los elementos de diseño particulares en juego.
Ok, punto tomado, entonces, ¿por qué no simplemente leer el estado del interruptor usando lectura digital()? Esto nos dirá si el interruptor está BAJO o ALTO.
Sí podemos y durante el 99 % de las veces obtendremos un resultado válido. Sin embargo, y para complicar aún más las cosas, tenemos nuestro viejo enemigo y bagaje en el sentido de que el acto de cambiar físicamente significará invariablemente que experimentaremos ‘ruido’ y ‘rebote’ durante la transición del cambio. . Por lo tanto, si queremos una solución de software que pueda leer de manera confiable un interruptor de palanca el 100 % del tiempo, debemos tener eso en cuenta en nuestro diseño.
No hay problema: hay muchas soluciones de este tipo en Internet que harán esto. Entonces, ¿por qué escribí este artículo? Esto se debe a que quería basarme en mis artículos anteriores y similares sobre los fundamentos de los interruptores (consulte el final de este artículo), para ofrecer una comprensión más profunda y un enfoque alternativo y flexible para el diseño de circuitos de interruptores.
El boceto adjunto ofrece un enfoque para leer un interruptor de palanca que:
- es flexible en el sentido de que está configurado para los dos estilos comunes de diseño de circuitos interruptores, a saber:
circuit_C1 – circuito con una resistencia pull-up de 10k ohm, inicializado como INPUT, y
circuit_C2 – circuito sin ninguna resistencia externa, inicializado como INPUT_PULLUP
- permite especificar cualquier diseño de circuito con un cambio en un parámetro de configuración (#define circuit_type)
- incorpora anti-rebote codificado
- permite modificar fácilmente el período de rebote (#define debounce), según sea necesario
- código para leer un interruptor de palanca encapsulado en una función booleana independiente, lo que permite llamarlo e incrustarlo en un boceto según sea necesario
- proporciona el estado del interruptor de palanca como valor de retorno de llamada de la función de lectura del interruptor y como variable global (current_toggle_status)
- Establece correctamente el estado del interruptor de palanca después de la configuración ().
Eche un vistazo al boceto, cárguelo y juegue con él. El boceto utiliza el LED incorporado para indicar el estado del interruptor: encendido si está encendido, de lo contrario, apagado. No olvide especificar qué circuito interruptor ha conectado a su placa (#define circuit_type circuit_C1, o #define circuit_type circuit_C2).
Para comprender los dos diseños de circuitos a los que se hace referencia en este artículo/boceto, consulte Comprender y usar interruptores de botón, conceptos básicos.
Otras lecturas
También puede encontrar interesantes y útiles estas contribuciones, del mismo autor:
- Comprender y usar los interruptores de botón, los conceptos básicos – interruptores de botón, un kit simple pero a menudo complicado. El tutorial explica los entresijos de la implementación de un interruptor de botón simple, con la oportunidad de explorar las diferencias de diseño de circuitos, diferentes métodos de lectura y antirrebote.
- Interruptores de botón accionados por interrupción – un enfoque y un ejemplo de vinculación de un interruptor de botón a una interrupción externa.
- interrupciones externas, un marco genérico que admite múltiples interrupciones asíncronas simultáneas. Configure múltiples interrupciones externas con diferentes características y agregue código para proporcionar un procesamiento asíncrono posterior a la interrupción.
- Alerta de recordatorio programático programado, un marco de programación para alertas asíncronas de tiempo transcurrido y en tiempo real. Establezca cualquier cantidad de alertas de recordatorio (subsegundos o subhoras) y procéselas de forma asíncrona.
Otros recursos en línea
pines digitales
Comprender las interrupciones
¡disfrutar!
comentarios
Por favor inicie sesión o regístrese para comentar.