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-Eingangspin 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 ist, zu bestimmen, wie lange es her ist, dass die Tür wieder geöffnet und geschlossen wurde, und darauf basierend etwas zu tun. Sobald ich dies getan habe, kann ich den Schalter wieder zurücksetzen. Es spielt keine Rolle, ob die Tür mehrmals geöffnet oder geschlossen wird.
Ich bin mir nicht sicher, wo ich anfangen soll, daher sind alle Ideen willkommen.
arduino
switches
microcontroller
avr
Dolch
quelle
quelle
Antworten:
Die meisten modernen MCUs wie der Atmel AVR (in Arduino verwendet) können in einem Zustand mit sehr geringer Leistung (<1 uA) schlafen und aus einer Vielzahl von Quellen aufwachen, einschließlich eines Zeitgebers mit geringer Leistung, der von 32-kHz-Quarz- oder Pinwechselinterrupts angetrieben wird . Die Verwendung eines Pin-Wechsel-Interrupts oder eines durch einen niedrigen Pegel ausgelösten Interrupts kann den AVR-Mikrocontroller aus dem tiefen Ausschalten wecken. Dann kann der Zustand in einer Programmvariablen gespeichert werden. Siehe http://www.atmel.com/avr
Ein alternativer Hardware-Ansatz für einen Verriegelungsschalter ist der RS-Latch, der aus zwei NOR- oder NAND-Gattern mit 2 Eingängen aufgebaut ist, wobei der Ausgang auf einen der 2 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 den Latch zurückzusetzen.
Atmelfaebrian
quelle
Verwenden Sie einen Hall-Effekt-Sensor und einen Magneten an der Tür. Wenn der Sensor ein Magnetfeld aufnimmt, ist die Tür geschlossen. Kein Magnetfeld - nicht geschlossen.
Jetzt können Sie den Sensor regelmäßig mit der gewünschten Geschwindigkeit abfragen (etwas langes ... wie 250 ms?). Sobald Sie kein Magnetfeld mehr erkennen, können Sie mit der Zeiterfassung beginnen.
quelle
Zur Klarstellung, Sie sprechen nicht davon, die Tür zu verriegeln, oder? Du meinst nur, dass der Schalter einrastet?
Angenommen, ja: Ich würde mit einem optischen Schlitzsensor und einem Stück Pappe an der Tür beginnen und dann die Verriegelung in der Software durchführen. Probieren Sie so etwas wie den Rohm RPI-131 von Digikey.
quelle
Ich würde etwas supereinfaches tun, wie einen Kontakt "Schalter" und die "Verriegelungs" -Logik in der Software machen. Das heißt, verwenden Sie einfach zwei Metallteile, eines an der Tür und eines am Rahmen, die sich bei geschlossener Tür "berühren" und bei geöffneter Tür trennen. Stellen Sie sicher, dass am Eingangspin der interne Pullup aktiviert ist. Befestigen Sie das Metall am Rahmen an Ihrem MCU-Eingangsstift. Befestigen Sie das Metall an der Tür an GND (gemeinsam mit Ihrer MCU GND). Wenn die Tür geschlossen ist, lautet dieser Eingang "0", wenn die Tür geöffnet ist, lautet dieser Eingang "1". Ich denke, Sie können dann sogar mit einem logischen Pegelübergang an diesem Pin aufwachen (ich denke, so funktioniert es sowieso). Sie können dieses Aufwecken auch mit einem "periodischen" Aufwecken von einem Timer-Interrupt koppeln, wie von anderen vorgeschlagen.
quelle