Die LED geht ja erst aus, wenn die Variable state auf LOW gesetzt wird. Da dieses aber nur in der Routine ereignis() passiert, die aber ohne externen Interrupt nie aufgerufen wird, bleibt die LED tapfer an.
Um mit externen Interrupts „spielen“ zu können, habe ich einfach einen Timer 555 genommen und so beschaltet, dass ca. alle 3s ein Impuls, also ein Wechsel von 0V auf 5V passiert. Diesen Impuls schalte ich auf den Interruptpin und alle 6s wechselt nun die LED von an auf aus und umgekehrt.
Auch für diese Anwedung habe ich mir eine Steckplatine für mein Erweiterungsboard entwickelt.
Die LED ist an den Pin 9 des Nano angeschlossen. Ich kann also im dem Sketch von oben auch den ledPin auf 9 setzen.
const byte ledPin = 9;
Natürlich können auch längere und kürzere Intervalle geschaltet werden, dann müssen lediglich andere Werte für die Widerstände und den Kondensator gewählt werden.
Ich nutzte die Platine gerne in Kombination mit anderen Boards von mir, um diese für externe Interrupts vorzubereiten. Ich habe eine Wetterstation in Entwicklung, die auf Tastendruck die Umgebungswerte (Temperatur, Luftdruck und -feuchte) von ein paar Stationen einsammeln soll. Bei der Entwicklung der Software ist es mit aber zu lästig, ständig den Taster zu drücken. Hier leistet das Board gute Dienste. Es schickt einfach alle 3s ein Signal, dass der Controller als Ersatztastendruck auswertet.
Seiten: 1 2