Hallo zusammen,

ich spiele grade mit nem Arduino und Interrupten rum, allerdings will das vorne und hinten nicht, wie ich mir das vorstelle.

Code:
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);

int irPin = 1;        // interrupt 1 => digital pin 3

void setup()
{                
    lcd.init();
    lcd.setCursor(0,0);
    lcd.print("blablabla");
    lcd.backlight();

    attachInterrupt(irPin, myFunction, FALLING);
}


void loop()                     
{
    delay(5000);
    lcd.backlight();
}


void myFunction()
{
  lcd.noBacklight();
}

Ich hätte gerne eine Delay-Funktion, die solange ausgeführt wird, bis ich Pin 3 (=Interrupt 1) per Taster auf Gnd lege.

Der Beispielcode von http://www.dave-auld.net/?option=com...ics&Itemid=107 unter "Making Use of Interrupts" führt bei mir dazu, dass der geschaltete Pin unendlich oft schaltet, bis ich den Interrput-Pin auf Masse lege, statt dass der Pin ruht, bis ich den Taster drücke.

Hat jemand vielleicht ein einfaches, funktionierendes Beispiel für einen Interrupt?


Ich würde gerne meinen Arduino eine Weile ruhen lassen, nach dieser Zeit soll einen Abfrage gestartet werden.
Wird vorher der Taster an Pin 3 gedrückt, soll mittels Interrupt das Ruhen unterbrochen werden und das Hintergrundlicht vom Display eingeschaltet werden (bzw. hier im Beispiel ausgeschaltet).