Tetőablak vezérlése (jegesedés, nyitás, zárás, vész-üzemmód)
Tetőablak vezérlése (jegesedés, nyitás, zárás, vész-üzemmód)
Sziasztok!
Volna egy kisebb problémám, mégpedig hogy időzítést kellene feltételnek megadnom. Ezt csak for ciklussal tudnám megvalósítani?
A válaszokat előre is köszönöm.
Volna egy kisebb problémám, mégpedig hogy időzítést kellene feltételnek megadnom. Ezt csak for ciklussal tudnám megvalósítani?
A válaszokat előre is köszönöm.
Re: Arduino tanfolyam
Jobban le tudod írni (példával) a feladatot?
Re: Arduino tanfolyam
Szia!Robert írta:Jobban le tudod írni (példával) a feladatot?
Természetesen igen. építek a tetőablakomhoz egy elektronikát.Viszont a gombnyomást időkésleltetéssel kellene figyelni. Tehát ha lenyomom a gombot nem telik le az idő akkor megáll. Ha letelt az idő automatán folytatja a működést végállásig vagy fél állásig. Félállást csak nyitó irányban figyeltetek, a végállás pedig túláram figyelés lesz. Mivel extrákat is figyel így ez csak egy részprogram a teljes programban értelem szerűen.
void setup() {
pinMode(2, OUTPUT); //motor nyitó irány
pinMode(3, OUTPUT); //motor záró irány
pinMode(4, INPUT); //nyitás
pinMode(5, INPUT); //zárás
pinMode(6, INPUT); //ajtó nyomógomb, kulccsal aktiválva a zárást
pinMode(7, INPUT); //félállás
pinMode(8, INPUT); //jegesedésnél tiltás törlése
pinMode(9, INPUT); //végállás áramfigyelőtől
digitalWrite(2, LOW); //relé alap állapotban
digitalWrite(3, LOW); //relé alap állapotban
}
Ez lenne a beállítási rész. A programban az már világos hogy hogyan zárom ki a figyelést a jegesedés miatti nyitáshoz, túláram miatt leoldana az idő leteltével.
void loop () {
if (digitalRead(8) HIGH) {
if (digitalRead(4) HIGH) {
digitalWrite(2, HIGH);
}
else {
digitalWrite(2, LOW);
}
if (digitalRead(5) HIGH) {
digitalWrite(3, HIGH);
}
else {
digitalWrite(3, LOW);
}
}
Ez a rész a jégkapcsolóval működtetett rész. A többit még nem tudom hogyan de van egy elméletem erre persze nem programnyelven megírva.
if jegoldo low
if nyit high akkor //ha nyitó gomb teljesül akkor
nyitás high //nyitja az ablakot
if nyit high & delay finish akkor //előzővel párhuzamban indul
auto ++ //az időzítő ha az nem telt le
else nyitás low //akkor motor álj.
//ha letelt akkor auto +1
if auto>0 & ( nyit high or zar high ) //ha auto nagyobb mint 0 és
nyitás low //nyit vagy zár aktív akkor
auto-- //motor állj auto -1
if auto>0 & delay 1000 & ( felallas or vegallas ) //auto nagyobb nulla fél vagy
//végállás van időzítő letelt
nyitás low //akkor
auto-- //nyitás állj auto -1
if zar high akkor //ha nyitó gomb teljesül akkor
zaras high //nyitja az ablakot
if zar high & delay finish akkor //előzővel párhuzamban indul
auto ++ //az időzítő ha az nem telt le
else zaras low //akkor motor álj.
//ha letelt akkor auto +1
if auto>0 & ( nyit high or zar high ) //ha auto nagyobb mint 0 és
zaras low //nyit vagy zár aktív akkor
auto-- //motor állj auto -1
if auto>0 & delay 1000 & ( felallas or vegallas ) //auto nagyobb nulla fél vagy
//végállás van időzítő letelt
zaras low //akkor
auto-- //nyitás állj auto -1
Ezt követően még az is kérdés hogy amikor kulccsal bezárom az autót ott egy mikrokapcsolót működtetek (testre zárja a pint amire kötve van) ami elindítaná a zárási folyamatot. Viszont ez csak akkor kellene figyelembe vennie mikor aktiválva van máskülönben nem.
if kulcs low //ha kulcs aktív akkor
delay 1000 //vár 1 sec
if kulcs low //ha kulcs aktív
zaras high //zárjuk az ablakot
if kulcs high //ha kulcs inaktív
zaras low //zárás megáll
Eddig ennyit sikerült összeraknom elméletben. A segítségedet köszönöm.
Re: Arduino tanfolyam
A delay figyelés egyszerű:
Tipp: egy belső valtozót beraknék, hogy épp melyik státuszban van a program. Nyit, jegesít, zár, késleltet, stb.
Ezt hívják állapotgépnek. Így mindig tudod, hogy melyik státuszban van épp a rendszered. És pesrsze státuszfüggő feltételt is egyszerűbb írni.
Kód: Egész kijelölése
kesleltetesfute=0;
If kesleltetesinditasgomb nyomva = igen
if gomb korabban meg nem volt nyomva, nem prelleg, stb, akkor
kesleltetesvege=most+5000 (most: millis(), 5000: 5000msec)
kesleltetesfut =1
end
end
ha gombnyomva=igenb && kesleltetesvege<millis() && kesleltetesfut==1, akkor
ne itt jon a kesleltetett resz
kesleltetetsfut=0 (ez azert van, nehogy meg 1x elinduljon)
endha
Tipp: egy belső valtozót beraknék, hogy épp melyik státuszban van a program. Nyit, jegesít, zár, késleltet, stb.
Ezt hívják állapotgépnek. Így mindig tudod, hogy melyik státuszban van épp a rendszered. És pesrsze státuszfüggő feltételt is egyszerűbb írni.
Re: Arduino tanfolyam
Rendben! Köszönöm a segítséget. Megpróbálom megoldani. 
Re: Arduino tanfolyam
Szia!
Adódott még egy problémám így hirtelen. Van ugye a késleltetésem amikor is az ablak elindul lefelé akkor ahhoz az időhöz hozzáadok 2000-et így kaptam egy változót ami 2 sec-el későbbi időpont. Eddig király. Ha azt a feltételt adom meg hogy
akkor ez így rendben van?
A késleltetést később visszaállítom -1-es értékre mert ugye negatív idő biztosan nincs.(Ez így helyes elgondolás?)
A program elejében megtalálható a deklarálása az időnek "unsigneg long time" megoldással.
A választ előre is köszönöm.
Adódott még egy problémám így hirtelen. Van ugye a késleltetésem amikor is az ablak elindul lefelé akkor ahhoz az időhöz hozzáadok 2000-et így kaptam egy változót ami 2 sec-el későbbi időpont. Eddig király. Ha azt a feltételt adom meg hogy
Kód: Egész kijelölése
if (digitalRead(5) HIGH && time==kesleltetes) {A késleltetést később visszaállítom -1-es értékre mert ugye negatív idő biztosan nincs.(Ez így helyes elgondolás?)
A program elejében megtalálható a deklarálása az időnek "unsigneg long time" megoldással.
A választ előre is köszönöm.
Re: Arduino tanfolyam
Unsigned long hogyan lesz negatív érték????
Az IF nem jó:
Az IF nem jó:
Kód: Egész kijelölése
if ((digitalRead(5) == HIGH ) && (time==kesleltetes) && (millis()<vegido) {Re: Arduino tanfolyam
bocsánat, elírtam vagy félre lett értelmezve. Nem az unsgned long time lesz negatív érték hanem a késleltetést rakom negatív értébe így az sosem teljesül addig míg a beírás meg nem valósul. A time túlcsordulása 0-ra érkezteti a time változót.Robert írta:Unsigned long hogyan lesz negatív érték????
Az IF nem jó:Kód: Egész kijelölése
if ((digitalRead(5) == HIGH ) && (time==kesleltetes) && (millis()<vegido) {
Leírom a teljes eddigi programot inkább hogy ne legyen félreértés.
Kód: Egész kijelölése
unsigned long time; //jelenlegi idő
long kesleltetes=-1; //késleltetés változó
int state=0; //státusz állapota
/*
státusz állapot:
0= alap állapot
1= jégoldás
2= automata mód
3= kulcsos zárás
*/
void setup() {
pinMode(2, OUTPUT); //motor nyit
pinMode(3, OUTPUT); //motor zár
pinMode(4, INPUT); //nyitó gomb
pinMode(5, INPUT); //záró gomb
pinMode(6, INPUT); //ajtó nyomógomb
pinMode(7, INPUT); //félállás nyomógomb
pinMode(8, INPUT); //jegesedésnél tiltás törlése, jégoldó nyomógomb
digitalWrite(2, LOW); //relé alap állapotban
digitalWrite(3, LOW); //relé alap állapotban
}
void loop () {
if (digitalRead (8) HIGH && state==0) { //jégoldó gomb aktív
delay 2; //prell kivédése
if (digitalRead (8) HIGH && state==0) { //jégoldó gomb még mindig aktív
state=1; //státusz váltás, jégoldó aktív
}
}
if (digitalRead (8) LOW && state==1) { //jégoldó gomb inaktív
delay 2; //prell kivédése
if (digitalRead (8) LOW && state==1) { //jégoldó gomb még mindig inaktív
state=0; //státusz váltás, alap állapot.
}
}
if (digitalRead(4) HIGH && state==1) { //nyitó gomb aktív és jégoldó státusz van
delay 2; //prell kivédése
if (digitalRead(4) HIGH && state==1) { //nyitó gomb még mindig aktív és még jégoldó státusz van
digitalWrite(2, HIGH); //motor nyitás aktív
}
}
if (digitalRead(4) LOW && state==1) { //nyitó gomb inaktív és jégoldó státusz van
delay 2; //prell kivédése
if (digitalRead(4) LOW && state==1) { //nyitó gomb még mindig inaktív és még jégoldó státusz van
digitalWrite(2, LOW); //motor nyitás inaktív
}
}
if (digitalRead(5) HIGH && state==1) { //záró gomb aktív és jégoldó státusz van
delay 2; //prell kivédése
if (digitalRead(5) HIGH && state==1) { //záró gomb még mindig aktív és még jégoldó státusz van
digitalWrite(3, HIGH); //motor nyitás aktív
}
}
if (digitalRead(5) LOW && state==1) { //záró gomb inaktív és jégoldó státusz van
delay 2; //prell kivédése
if (digitalRead(5) LOW && state==1) { //záró gomb még mindig inaktív és még jégoldó státusz van
digitalWrite(3, LOW); //motor zárás inaktív
}
}
if (digitalRead(4) HIGH && state==0) { //nyitó gomb aktív és alap státusz van
delay 2; //prell kivédése
if (digitalRead(4) HIGH && state==0) { //nyitó gomb még mindig aktív és még alap státusz van
digitalWrite(2, HIGH); //motor nyitás aktív
time+2000=kesleltetes //most+2sec=késleltetés
}
}
if (digitalRead(4) LOW && state==0) { //nyitó gomb inaktív és alap státusz van
delay 2; //prell kivédése
if (digitalRead(4) LOW && state==0) { //nyitó gomb még mindig inaktív és még alap státusz van
digitalWrite(2, LOW); //motor nyitás inaktív
kesleltetes=-1 //késleltetés alap állapotban
}
}
if (digitalRead(5) HIGH && state==0) { //záró gomb aktív és alap státusz van
delay 2; //prell kivédése
if (digitalRead(5) HIGH && state==0) { //záró gomb még mindig aktív és még alap státusz van
digitalWrite(3, HIGH); //motor nyitás aktív
time+2000=kesleltetes //most+2sec=késleltetés
}
}
if (digitalRead(5) LOW && state==0) { //záró gomb inaktív és alap státusz van
delay 2; //prell kivédése
if (digitalRead(5) LOW && state==0) { //záró gomb még mindig inaktív és még alap státusz van
digitalWrite(3, LOW); //motor zárás inaktív
kesleltetes=-1 //késleltetés alap állapotban
}
}
if (digitalRead(5) HIGH && time==kesleltetes) { //záró gomb aktív és alap státusz van
state=2Re: Arduino tanfolyam
Hiba!
Sorosporton irasd ki:
kesleltetes=-1
Az unsigned long értéke:
0...sokig megy.
Most mit lehet egy negatív (_TARTOMÁNYON KÍVÜLI_) értékkel kezdeni?
Sorosporton irasd ki:
kesleltetes=-1
Az unsigned long értéke:
0...sokig megy.
Most mit lehet egy negatív (_TARTOMÁNYON KÍVÜLI_) értékkel kezdeni?
Re: Arduino tanfolyam
Tehát egy long típusú változó nem lehet -1 értékű.Robert írta:Hiba!
Sorosporton irasd ki:
kesleltetes=-1
Egyébként a kód vége előbb lemaradt így azt pótolom. Itt még a kommentezés nincs meg.
Kód: Egész kijelölése
unsigned long time; //jelenlegi idő
long kesleltetes=-1; //késleltetés változó
int state=0; //státusz állapota
/*
státusz állapot:
0= alap állapot
1= jégoldás
2= automata mód nyitás
3= automata mód zárás
4= kulcsos zárás
*/
void setup() {
pinMode(2, OUTPUT); //motor nyit
pinMode(3, OUTPUT); //motor zár
pinMode(4, INPUT); //nyitó gomb
pinMode(5, INPUT); //záró gomb
pinMode(6, INPUT); //ajtó nyomógomb
pinMode(7, INPUT); //félállás nyomógomb
pinMode(8, INPUT); //jegesedésnél tiltás törlése, jégoldó nyomógomb
pinMode(9, INPUT); //túláram figyelő
digitalWrite(2, LOW); //relé alap állapotban
digitalWrite(3, LOW); //relé alap állapotban
}
void loop () {
if (digitalRead (8) HIGH && state==0) { //jégoldó gomb aktív
delay 2; //prell kivédése
if (digitalRead (8) HIGH && state==0) { //jégoldó gomb még mindig aktív
state=1; //státusz váltás, jégoldó aktív
}
}
if (digitalRead (8) LOW && state==1) { //jégoldó gomb inaktív
delay 2; //prell kivédése
if (digitalRead (8) LOW && state==1) { //jégoldó gomb még mindig inaktív
state=0; //státusz váltás, alap állapot.
}
}
if (digitalRead(4) HIGH && state==1) { //nyitó gomb aktív és jégoldó státusz van
delay 2; //prell kivédése
if (digitalRead(4) HIGH && state==1) { //nyitó gomb még mindig aktív és még jégoldó státusz van
digitalWrite(2, HIGH); //motor nyitás aktív
}
}
if (digitalRead(4) LOW && state==1) { //nyitó gomb inaktív és jégoldó státusz van
delay 2; //prell kivédése
if (digitalRead(4) LOW && state==1) { //nyitó gomb még mindig inaktív és még jégoldó státusz van
digitalWrite(2, LOW); //motor nyitás inaktív
}
}
if (digitalRead(5) HIGH && state==1) { //záró gomb aktív és jégoldó státusz van
delay 2; //prell kivédése
if (digitalRead(5) HIGH && state==1) { //záró gomb még mindig aktív és még jégoldó státusz van
digitalWrite(3, HIGH); //motor nyitás aktív
}
}
if (digitalRead(5) LOW && state==1) { //záró gomb inaktív és jégoldó státusz van
delay 2; //prell kivédése
if (digitalRead(5) LOW && state==1) { //záró gomb még mindig inaktív és még jégoldó státusz van
digitalWrite(3, LOW); //motor zárás inaktív
}
}
if (digitalRead(4) HIGH && state==0) { //nyitó gomb aktív és alap státusz van
delay 2; //prell kivédése
if (digitalRead(4) HIGH && state==0) { //nyitó gomb még mindig aktív és még alap státusz van
digitalWrite(2, HIGH); //motor nyitás aktív
time+2000=kesleltetes //most+2sec=késleltetés
}
}
if (digitalRead(4) LOW && state==0) { //nyitó gomb inaktív és alap státusz van
delay 2; //prell kivédése
if (digitalRead(4) LOW && state==0) { //nyitó gomb még mindig inaktív és még alap státusz van
digitalWrite(2, LOW); //motor nyitás inaktív
kesleltetes=-1 //késleltetés alap állapotra
}
}
if (digitalRead(5) HIGH && state==0) { //záró gomb aktív és alap státusz van
delay 2; //prell kivédése
if (digitalRead(5) HIGH && state==0) { //záró gomb még mindig aktív és még alap státusz van
digitalWrite(3, HIGH); //motor nyitás aktív
time+2000=kesleltetes //most+2sec=késleltetés
}
}
if (digitalRead(5) LOW && state==0) { //záró gomb inaktív és alap státusz van
delay 2; //prell kivédése
if (digitalRead(5) LOW && state==0) { //záró gomb még mindig inaktív és még alap státusz van
digitalWrite(3, LOW); //motor zárás inaktív
kesleltetes=-1 //késleltetés alap állapotra
}
}
if (digitalRead(5) HIGH && time==kesleltetes) { //záró gomb aktív és alap státusz van
state=3;
}
if (digitalRead(4) HIGH && time==kesleltetes) {
state=2;
}
if (state==2 && (digitalRead(7) HIGH || digitalRead(9) HIGH) {
digitalWrite (2, LOW);
digitalWrite (3, LOW);
state=0;
kesleltetes=-1;
}
if (state==3 && digitalRead(9) HIGH) {
digitalWrite (2, LOW);
digitalWrite (3, LOW);
state=0;
kesleltetes=-1;
}
}Re: Arduino tanfolyam
Kiírattam soros portra a változómat. -1-et ír. Egyébként kiröhögni ér, mert ha megnézed az if-ek után ahol van ÉS/VAGY kapcsolat a zárójelek lemaradtak továbbá a digitalRead (pin) == HIGH/LOW kimaradt mindenhonnan az egyenlőség jel.
javítás alatt és kommentek megírása. Ha a javítások készen vannak akkor elméletileg még van egy szakaszom aztán kész a program. Kivéve ha nem jól csináltam azt hogy a "long kesleltetes=-1" alapértéke. A cél a nulla értéket elkerülni hogy ne szóljon közbe még véletlenül sem a "unsigned long time" változó 0-ra fordulásakor. Így jó az elmélet, vagy bukta és írhatom át az egészet? 
Re: Arduino tanfolyam
long-ként definiáltad. Ekkor van -1 értéke. Unsigned longként nincs.
DE, a millis() összehasonlításban eltérő típusokat nem illik használni (long <>ULong, ill byte <> integer, stb). Egzotikus hibák lesznek....
DE, a millis() összehasonlításban eltérő típusokat nem illik használni (long <>ULong, ill byte <> integer, stb). Egzotikus hibák lesznek....
Re: Arduino tanfolyam
Igazad van. Nem szerencsés. Így már értem miért "értetted félre", valójában én vagyok tudatlan.Robert írta:long-ként definiáltad. Ekkor van -1 értéke. Unsigned longként nincs.
DE, a millis() összehasonlításban eltérő típusokat nem illik használni (long <>ULong, ill byte <> integer, stb). Egzotikus hibák lesznek....
Köszönöm a segítségedet.
U.I. Hogyan illetve hol érdemes definiálni a "most"-ot? ez a jelenlegi idő és ehhez fog majd ugye hozzájönni a késleltetés.
Re: Arduino tanfolyam
A most az mint idő meg van. millis() függvény adja meg.
Bekapcsolás óta eltelt idő (msecben)
A 60 napos tanfolyásban az elejefelé van már róla szó!
Bekapcsolás óta eltelt idő (msecben)
A 60 napos tanfolyásban az elejefelé van már róla szó!
Re: Arduino tanfolyam
meg is vanRobert írta:A most az mint idő meg van. millis() függvény adja meg.
Bekapcsolás óta eltelt idő (msecben)
A 60 napos tanfolyásban az elejefelé van már róla szó!
azért még a programot mellékelem, 89 92 sorban lesz alulról nem sokkal.
Kód: Egész kijelölése
unsigned long time; //jelenlegi idő
unsigned long kesleltetes; //késleltetés változó
int state=0; //státusz állapota
/*
státusz állapot:
0= alap állapot
1= jégoldás
2= automata mód nyitás
3= automata mód zárás
4= kulcsos zárás
*/
void setup() {
pinMode(2, OUTPUT); //motor nyit
pinMode(3, OUTPUT); //motor zár
pinMode(4, INPUT); //nyitó gomb
pinMode(5, INPUT); //záró gomb
pinMode(6, INPUT); //ajtó nyomógomb
pinMode(7, INPUT); //félállás nyomógomb
pinMode(8, INPUT); //jegesedésnél tiltás törlése, jégoldó nyomógomb
pinMode(9, INPUT); //túláram figyelő
digitalWrite(2, LOW); //relé alap állapotban
digitalWrite(3, LOW); //relé alap állapotban
}
void loop() {
if ((digitalRead(8) == HIGH)&& (state==0)) { //jégoldó gomb aktív
delay (2) ; //prell kivédése
if ((digitalRead(8) == HIGH)&& (state==0)) { //jégoldó gomb még mindig aktív
state=1; //státusz váltás, jégoldó aktív
}
}
if (digitalRead (8) == LOW && state==1) { //jégoldó gomb inaktív
delay (2) ; //prell kivédése
if (digitalRead (8) == LOW && state==1) { //jégoldó gomb még mindig inaktív
state=0 ; //státusz váltás, alap állapot.
}
}
if (digitalRead(4) == HIGH && state==1) { //nyitó gomb aktív és jégoldó státusz van
delay (2) ; //prell kivédése
if (digitalRead(4) == HIGH && state==1) { //nyitó gomb még mindig aktív és még jégoldó státusz van
digitalWrite(2, HIGH); //motor nyitás aktív
}
}
if (digitalRead(4) == LOW && state==1) { //nyitó gomb inaktív és jégoldó státusz van
delay (2) ; //prell kivédése
if (digitalRead(4) == LOW && state==1) { //nyitó gomb még mindig inaktív és még jégoldó státusz van
digitalWrite(2, LOW); //motor nyitás inaktív
}
}
if ((digitalRead(5) == HIGH) && (state==1)) { //záró gomb aktív és jégoldó státusz van
delay (2); //prell kivédése
if ((digitalRead(5) == HIGH) && (state==1)) { //záró gomb még mindig aktív és még jégoldó státusz van
digitalWrite(3, HIGH); //motor nyitás aktív
}
}
if ((digitalRead(5) == LOW) && (state==1)) { //záró gomb inaktív és jégoldó státusz van
delay (2); //prell kivédése
if ((digitalRead(5) == LOW) && (state==1)) { //záró gomb még mindig inaktív és még jégoldó státusz van
digitalWrite(3, LOW); //motor zárás inaktív
}
}
if ((digitalRead(4) == HIGH) && (state==0)) { //nyitó gomb aktív és alap státusz van
delay (2); //prell kivédése
if ((digitalRead(4)== HIGH) && (state==0)) { //nyitó gomb még mindig aktív és még alap státusz van
digitalWrite(2, HIGH); //motor nyitás aktív
kesleltetes=time+2000; //most+2sec=késleltetés
}
}
if ((digitalRead(4) == LOW) && (state==0)) { //nyitó gomb inaktív és alap státusz van
delay (2); //prell kivédése
if ((digitalRead(4) == LOW) && (state==0)) { //nyitó gomb még mindig inaktív és még alap státusz van
digitalWrite(2, LOW); //motor nyitás inaktív
kesleltetes=0; //késleltetés alap állapotra
}
}
if ((digitalRead(5) == HIGH) && (state==0)) { //záró gomb aktív és alap státusz van
delay (2); //prell kivédése
if ((digitalRead(5) == HIGH) && (state==0)) { //záró gomb még mindig aktív és még alap státusz van
digitalWrite(3, HIGH); //motor nyitás aktív
kesleltetes=time+2000; //most+2sec=késleltetés
}
}
if ((digitalRead(5) == LOW) && (state==0)) { //záró gomb inaktív és alap státusz van
delay (2); //prell kivédése
if ((digitalRead(5) == LOW) && (state==0)) { //záró gomb még mindig inaktív és még alap státusz van
digitalWrite(3, LOW); //motor zárás inaktív
kesleltetes=0; //késleltetés alap állapotra
}
}
if ((digitalRead(5) == HIGH ) && (time==kesleltetes) && (millis()<4294967295)) { //záró gomb aktív és az idő megegyezik a késleltetett idővel
state=3; //automata mód zárás státusz
}
if ((digitalRead(4) == HIGH ) && (time==kesleltetes) && (millis()<4294967295)) { //nyitó gomb aktív és az idő megegyezik a késleltetett idővel
state=2; //automata mód nyitás státusz
}
if ((state==2) && ((digitalRead(7) == HIGH) || (digitalRead(9) == HIGH))) { //nyitó státusz és (félállás vagy túláram) van
digitalWrite (2, LOW); //nyitás lekapcsolás
digitalWrite (3, LOW); //zárás lekapcsolás
state=0; //státuszjelző alap helyzet
kesleltetes=0; //késleltetés alap helyzet
}
if ((state==3) && (digitalRead(9) == HIGH)) { //záró státusz és túláram van
digitalWrite (2, LOW); //nyitás lekapcsolás
digitalWrite (3, LOW); //zárás lekapcsolás
state=0; //státuszjelző alap helyzet
kesleltetes=0; //késleltetés alap helyzet
}
}
