Megismertem a megszakításokat az Arduino rendszerben.
Tudom is őket használni de ezzel kapcsolatban is van kérdésem.
Szóval ha ezt nézzük akkor:
attachInterrupt(0,megszakitas,LOW);
Akkor ezek szerint folyamatos megszakitas van ha int0 azaz D2 lábon alacsony szint van.
Arra van-e megoldás hogy a megszakitás után egy adott sortól folytatódjon a kód tovább folytatása?
Kód: Egész kijelölése
//KIMENETEK
int outPinLed0=22;
int outPinLed1=26;
int outPinLed2=28;
int outPinLed3=24;
void setup(){
pinMode(22,OUTPUT);
pinMode(26,OUTPUT);
pinMode(28,OUTPUT);
pinMode(24,OUTPUT);
Serial.begin(9600);
Serial.println("TESZT");
attachInterrupt(0,megszakitas,LOW);
}
void loop(){
villog();
}
void villog(){
//itt szeretném hogy folytatódjon a megszakitás után a végrehajtás****
digitalWrite(22,HIGH);
delay(3000);
digitalWrite(26,HIGH);
delay(3000);
digitalWrite(28,HIGH);
delay(3000);
hatra=1;
digitalWrite(24,HIGH);
delay(3000);
digitalWrite(22,LOW);
digitalWrite(26,LOW);
digitalWrite(28,LOW);
digitalWrite(24,LOW);
delay(300);
hatra=0;
}
void megszakitas(){
digitalWrite(22,LOW);
digitalWrite(26,LOW);
digitalWrite(28,LOW);
digitalWrite(24,LOW);
}Az alapprobléma az hogy van egy motoros mozgatású ajtó ezen van egy infrasorompó és ha a zárodás során belemegy pl egy kutya akkor azonnal ki kellene nyitni. Megszakítás(LOW) esetén letudom tiltani a nyitást de rögtön nem tudom nyitni ,pedig az ideális az lenne és így ha nincs akadály akkor be is csukódna.