SAVE programirano vrijeme imam rjeseno vec prije par dana a radi se na ovakav nacin:
- podesi se zeljeno vrijeme (LEFT/RIGHT rotary encoder) onda se drzi LONG CLICK na rotary encoderu i pojavi se na displeyu "P-01" tu onda sa LEFT/RIGHT biramo preset broj od 01 do 09 i opet LONG PRESS prikazuje na displeyu "donE" sto znaci da je uspjesno upisalo u EEPROM na taj preset broj zeljeno vrijeme, i nakon nestanka struje i ponovnog paljenja citamo zeljeno vrijeme sa LONG PRESS pojavi se "P-01" odaberemo sa LEFT/RIGHT zeljeni preset i samo jednom pritisnemo SW button na rotary encoderu i ucita se spremljeno vrijeme na displeyu sa odabranog preseta (P na displeyu oznacava PRESET). I onda kada je vrijeme ocitano sa EEPROMa klikom na SW button krece START za countdown mode, pritiskom opet na SW button radimo PAUSE i brojac se zaustavi (dvotocke ne blinkaju samo sve znamenke svijetle).
Ako zelimo sa displeya koji pokazuje vrijeme npr. 00:11 postaviti na npr: 12:34 onda samo napravimo DOUBLE CLICK na SW button rotary encodera i pocinje blinkati sec1 znamenka, sa LEFT/RIGHT mjenjamo od 0-9, dalji pritisak na SW blinka sec10 znamenka i sa LEFT/RIGHT biramo od 0-5, dalji pritisak na SW blinka min1 biramo sa LEFT/RIGHT 0-9, dalji pritisak na SW blinka min10 LEFT/RIGHT biramo 0-9, dalji pritisak SW rotary encodera sve znamenke svijetle i timer pokrecemo sa SW rotary encoder pritiskom i timer pocinje odbrojavati.
Eto, time sam rotary encoder savrseno zamjenio umjesto 3 ili 4 buttona i sve se radi kao kod iPHONE smartphone sa jednim rotary encoderom
Sada gledam "safety switch" i koliko vidim imam primjer sa reed switch i magnetom, tu mi je plan kad budem crtao kuciste da kada se ladica otvori a timer radi i UV LED svijetle, da automatski zaustavi timer (sve digit i dvotocka zmigaju i tako daju do znanja korisniku da je FORSIRANA PAUSA), i kad se zatvori ladica timer normalno odbrojava i UV LED se upale normalno.
Kod svakog prvog paljenja timera u struju iscitava se automatski P-01 memorirano vrijeme.
Da bi to mogao da postignem, unutar kucista cu postaviti reed stakleni switch i na policu koja se otvara ide magnet, tako je reed switch otvoreni kada je ladica otvorena, a kada se ladica zatvori magnet na ladici magnetizira reed switch unutat staklenog kucista i daje arduino signal da je ladica zatvorena i da moze da se pokrene timer i upale UV LED.
Evo ovaj primjer gledam, ima i modul sa komparatorom i reed switchem, pa pitanje koji da odaberem...navodno reed modul ima komparator i daje cisti kvadratni signal, pa neznam dali to sto je bolje ili ne za ovo sto mi treba.
https://create.arduino.cc/projecthub/muc...ino-81f6d2
I da napomenem da u kodu nema ni jednog delay ni millis i loop() petlja je prazna...a najduzi interrupt za multiplexiranje traje 3ms...to ne utjece na rad timera i savrseno je tocan, mada u zadnjoj fazi kad dodjem do nje cu jos tu malo kod skratiti i time skratiti i naravno digitalWrite overwrite funkcije posto ona dosta u pozadini provjerava pinove registre itd...pa da se i to ubrza...
- podesi se zeljeno vrijeme (LEFT/RIGHT rotary encoder) onda se drzi LONG CLICK na rotary encoderu i pojavi se na displeyu "P-01" tu onda sa LEFT/RIGHT biramo preset broj od 01 do 09 i opet LONG PRESS prikazuje na displeyu "donE" sto znaci da je uspjesno upisalo u EEPROM na taj preset broj zeljeno vrijeme, i nakon nestanka struje i ponovnog paljenja citamo zeljeno vrijeme sa LONG PRESS pojavi se "P-01" odaberemo sa LEFT/RIGHT zeljeni preset i samo jednom pritisnemo SW button na rotary encoderu i ucita se spremljeno vrijeme na displeyu sa odabranog preseta (P na displeyu oznacava PRESET). I onda kada je vrijeme ocitano sa EEPROMa klikom na SW button krece START za countdown mode, pritiskom opet na SW button radimo PAUSE i brojac se zaustavi (dvotocke ne blinkaju samo sve znamenke svijetle).
Ako zelimo sa displeya koji pokazuje vrijeme npr. 00:11 postaviti na npr: 12:34 onda samo napravimo DOUBLE CLICK na SW button rotary encodera i pocinje blinkati sec1 znamenka, sa LEFT/RIGHT mjenjamo od 0-9, dalji pritisak na SW blinka sec10 znamenka i sa LEFT/RIGHT biramo od 0-5, dalji pritisak na SW blinka min1 biramo sa LEFT/RIGHT 0-9, dalji pritisak na SW blinka min10 LEFT/RIGHT biramo 0-9, dalji pritisak SW rotary encodera sve znamenke svijetle i timer pokrecemo sa SW rotary encoder pritiskom i timer pocinje odbrojavati.
Eto, time sam rotary encoder savrseno zamjenio umjesto 3 ili 4 buttona i sve se radi kao kod iPHONE smartphone sa jednim rotary encoderom
Sada gledam "safety switch" i koliko vidim imam primjer sa reed switch i magnetom, tu mi je plan kad budem crtao kuciste da kada se ladica otvori a timer radi i UV LED svijetle, da automatski zaustavi timer (sve digit i dvotocka zmigaju i tako daju do znanja korisniku da je FORSIRANA PAUSA), i kad se zatvori ladica timer normalno odbrojava i UV LED se upale normalno.
Kod svakog prvog paljenja timera u struju iscitava se automatski P-01 memorirano vrijeme.
Da bi to mogao da postignem, unutar kucista cu postaviti reed stakleni switch i na policu koja se otvara ide magnet, tako je reed switch otvoreni kada je ladica otvorena, a kada se ladica zatvori magnet na ladici magnetizira reed switch unutat staklenog kucista i daje arduino signal da je ladica zatvorena i da moze da se pokrene timer i upale UV LED.
Evo ovaj primjer gledam, ima i modul sa komparatorom i reed switchem, pa pitanje koji da odaberem...navodno reed modul ima komparator i daje cisti kvadratni signal, pa neznam dali to sto je bolje ili ne za ovo sto mi treba.
https://create.arduino.cc/projecthub/muc...ino-81f6d2
I da napomenem da u kodu nema ni jednog delay ni millis i loop() petlja je prazna...a najduzi interrupt za multiplexiranje traje 3ms...to ne utjece na rad timera i savrseno je tocan, mada u zadnjoj fazi kad dodjem do nje cu jos tu malo kod skratiti i time skratiti i naravno digitalWrite overwrite funkcije posto ona dosta u pozadini provjerava pinove registre itd...pa da se i to ubrza...