Ich versuche, einen Verriegelungsschalter zu bauen, der mit einer Tür verbunden ist, und würde mich über Ideen freuen.
Der Schalter ist mit einem Mikrocontroller-Eingangsstift verbunden, und ich möchte, dass er wie folgt funktioniert: Wenn eine Person die Tür öffnet und schließt, rastet sie ein. Es bleibt eingeschaltet, bis es in der Software zurückgesetzt wird.
Die Grundidee besteht darin, zu messen, wie lange es her ist, dass die Tür geöffnet und wieder geschlossen wurde, und darauf basierend etwas zu tun. Sobald ich dies getan habe, kann ich den Schalter wieder zurücksetzen. Dabei spielt es keine Rolle, ob die Tür mehrmals geöffnet oder geschlossen wird.
Ich bin mir nicht sicher, wo ich anfangen soll, also sind alle Ideen willkommen.
Die meisten modernen MCUs wie der Atmel AVR (verwendet in Arduino) haben die Fähigkeit, in einem Zustand mit sehr geringem Stromverbrauch (< 1 uA) zu schlafen und aus einer Vielzahl von Quellen aufzuwachen, einschließlich eines Low-Power-Timers, der von 32-kHz-Quarz- oder Pin-Wechsel-Interrupts angetrieben wird . Die Verwendung eines Pin-Wechsel-Interrupts oder eines ausgelösten Low-Level-Interrupts kann den AVR-Mikrocontroller aus einem tiefen Stromausfall aufwecken. Dann kann der Zustand in einer Programmvariablen gespeichert werden. Siehe http://www.atmel.com/avr
Ein alternativer rein hardwarebasierter Ansatz für einen Latch-Schalter ist der RS-Latch, der aus zwei NOR- oder NAND-Gattern mit zwei Eingängen aufgebaut ist, wobei der Ausgang an einen der beiden Eingänge zurückgeführt wird. Immer wenn der Ausgang hoch geht, hält die Rückkopplung ihn in diesem Zustand, bis der andere Eingang hoch gezogen wird, um das Latch zurückzusetzen.
Atmelfaebrian
Verwenden Sie einen Hall-Effekt-Sensor und einen Magneten an der Tür. Nimmt der Sensor ein Magnetfeld auf, wird die Tür geschlossen. Kein Magnetfeld - nicht geschlossen.
Jetzt können Sie den Sensor regelmäßig mit einer beliebigen Rate abfragen (etwas langes ... wie 250 ms?). Sobald Sie kein Magnetfeld erkennen, können Sie mit der Zeiterfassung beginnen.
Zur Verdeutlichung, Sie sprechen nicht davon, die Tür zu schließen, oder? Du meinst nur, dass der Schalter einrastet?
Angenommen ja: Ich würde mit einem optischen Schlitzsensor und einem an der Tür befestigten Stück Pappe beginnen und dann die Verriegelung in der Software vornehmen. Versuchen Sie etwas wie das Rohm RPI-131 von Digikey.
Ich würde etwas super Einfaches tun, wie einen Kontakt "schalten" und die "Verriegelungs" -Logik in Software ausführen. Das heißt, verwenden Sie einfach zwei Metallstücke, eines an der Tür und eines am Rahmen, die sich "berühren", wenn die Tür geschlossen ist, und sich trennen, wenn die Tür offen ist. Stellen Sie sicher, dass der Eingangspin den internen Pullup aktiviert hat. Befestigen Sie das Metall am Rahmen an Ihrem MCU-Eingangsstift. Befestigen Sie das Metall an der Tür an GND (gemeinsam mit Ihrem MCU GND). Wenn die Tür geschlossen ist, lautet dieser Eingang „0“, wenn die Tür offen ist, lautet dieser Eingang „1“. Ich denke, Sie können dann sogar bei einem logischen Pegelübergang an diesem Pin aufwachen (ich denke, so funktioniert es sowieso). Sie können dieses Aufwachen auch mit einem "periodischen" Aufwachen von einem Timer-Interrupt koppeln, wie von anderen vorgeschlagen.
W5VO
Dolch