#define LED 8
#define BUTTON 2
void setup()
{
pinMode(BUTTON, INPUT);
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
if(digitalRead(BUTTON)){
Serial.println("Button pressed");
}
}
attachInterrupt()
digitalPinToInterrupt(pin)
attachInterrupt(digitalPinToInterrupt(3), ISR, RISING);
LOW - Prerušenie je vyvolané vtedy, keď sa na pine nachádza úroveň LOW. Tento proces sa deje napríklad vtedy, ak je tlačidlo pripojené k digitálnemu pinu v režime INPUT_PULLUP a po jeho stlačení sa na pin privedie úroveň LOW.
CHANGE - Prerušenie je vyvolané vtedy, keď dôjde k zmene úrovne pinu buď z HIGH na LOW alebo z LOW na HIGH. Tento proces sa deje napríklad pri stláčaní prepínača.
RISING - Prerušenie je vyvolané vtedy, keď dôjde k zmene úrovne z LOW na HIGH. Tento proces sa deje napríklad pri stlačení tlačidla.
FALLING - Prerušenie je vyvolané vtedy, keď dôjde k zmene úrovne z HIGH na LOW. Tento proces sa deje napríklad pri uvoľnení stlačeného tlačidla.
void setup()
{
attachInterrupt(digitalPinToInterrupt(2), callback_1, RISING);
attachInterrupt(digitalPinToInterrupt(3), callback_2, CHANGE);
}
void loop()
{
delay(10000);
}
void callback_1(){
Serial.println("State of pin 2 changed from LOW to HIGH");
}
void callback_2(){
Serial.println("State of pin 3 changed");
}