Quiero leer el estado de un sensor de interruptor (contacto magnético). Estoy pensando en conectar el interruptor entre un pin de interrupción de mi micro y tierra, escuchando el estado de CAMBIAR. De esta manera, tengo problemas de rebote, así que me pregunto cuál es la mejor manera de resolver este problema:
1: desactiva la escucha de interrupción cuando se dispara y habilítala después de que el programa haya leído el valor (0 - > ground- > switch cerrado O 1- > floating- > switch abierto) No creo que un estado flotante pueda ser bueno, pero si configuro el pin de entrada de interrupción como INPUT_PULLUP ya no es flotante y podría ser bueno, ¿verdad?
2 - Conecte el interruptor a un pin de interrupción y también a un pin de entrada digital a través de un transistor como interruptor. De esta manera, cuando se activa la interrupción, leo el valor del pin de entrada digital. Por otro lado, de esta manera complico el circuito.
3 - Para usar un circuito de rebote de hardware
¿Son estas tres soluciones válidas? ¿Hay más mejores que estos?
MÁS CONTEXTO: Estoy usando estos interruptores como interruptor de límite para una puerta de garaje. En mi código, estoy usando un temporizador para elevar la puerta del garaje durante diez segundos O hasta que se active la interrupción del interruptor de límite
EDITAR: con un cambio en mi código resolví el problema usando interrupciones. Sin embargo, sugiere utilizar el sondeo ya que no es una aplicación en tiempo real, así que me pregunto: no es lo mismo usar interrupciones para poder usar un modo de ahorro de energía para mi micro y activarlo solo cuando hay una interrupción de hardware. se dispara? Si utilizo una solución de sondeo, el sistema no sería adecuado para la alimentación de la batería; ¿no es así?