Estoy tratando de construir un interruptor de enganche conectado a una puerta y agradecería ideas.
El interruptor está conectado a un pin de entrada del microcontrolador y me gustaría que funcionara de la siguiente manera: cuando una persona abre y cierra la puerta, se traba. Permanece encendido hasta que se restablece en el software.
La idea básica es medir el tiempo transcurrido desde que la puerta se abrió y se volvió a cerrar, y hacer algo en base a eso. Una vez que haya hecho esto, puedo restablecer el interruptor nuevamente. No importa si la puerta se abre o se cierra varias veces.
No estoy seguro de por dónde empezar, así que cualquier idea es bienvenida.
La mayoría de los MCU modernos, como Atmel AVR (utilizado en Arduino), tienen la capacidad de dormir en un estado de muy bajo consumo (< 1 uA) y activarse desde una variedad de fuentes, incluido un temporizador de bajo consumo impulsado por un cristal de 32 kHz o interrupciones por cambio de pin. . El uso de una interrupción de cambio de pin o una interrupción activada por bajo nivel puede despertar el microcontrolador AVR de un apagado profundo. Luego, el estado se puede guardar en una variable de programa. Consulte http://www.atmel.com/avr
Un enfoque alternativo solo de hardware para un interruptor de enganche es el enganche RS construido a partir de dos puertas NOR o NAND de 2 entradas con salida retroalimentada a una de las 2 entradas. Cada vez que la salida sube, la retroalimentación la mantiene en ese estado hasta que la otra entrada sube para restablecer el latch.
Atmelfaebrian
Utilice un sensor de efecto Hall y un imán en la puerta. Si el sensor capta un campo magnético, la puerta se cierra. Sin campo magnético, no cerrado.
Ahora puede sondear periódicamente el sensor a la velocidad que desee (algo largo... ¿250 ms?). Una vez que no detecte ningún campo magnético, puede comenzar a rastrear el tiempo.
Para aclarar, no estás hablando de cerrar la puerta con pestillo, ¿verdad? ¿Solo quieres decir que el interruptor se traba?
Suponiendo que sí: comenzaría con un sensor de ranura óptica y un trozo de cartón adherido a la puerta, y luego haría el bloqueo en el software. Pruebe algo como el Rohm RPI-131 de Digikey.
Haría algo súper simple, como un "interruptor" de contacto y haría la lógica de "bloqueo" en el software. Es decir, basta con utilizar dos piezas de metal, una en la puerta y otra en el marco que se "tocan" cuando la puerta está cerrada y se separan cuando la puerta está abierta. Haga que el pin de entrada tenga habilitado el pullup interno. Conecte el metal que está en el marco a su pin de entrada MCU. Conecte el metal que está en la puerta a GND (común a su MCU GND). Cuando la puerta esté cerrada, esa entrada leerá "0", cuando la puerta esté abierta, esa entrada leerá "1". Creo que incluso puedes despertarte en una transición de nivel lógico en ese pin (creo que así es como funciona de todos modos). También puede combinar esta activación con una activación "periódica" de una interrupción del temporizador como lo sugieren otros.
W5VO
Puñal