Forum » Programiranje » pomoc: pritisk gumba po zaporedju prizge luc
pomoc: pritisk gumba po zaporedju prizge luc
freesty ::
Delam en domači projekt in sicer bi rad naredil, da ko pritisnem gumb v naprej dolocenem zaporedju se prižge ledica.
Delam z arduino UNO.
Trenutno imam narejeno, da preverja kadar je gumb pritisnjen in prizge luc.
Sem se igral tudi z millis().
Primer:
omejitev = millis()
stevilo pritiskov=0
if gumb=1
stevilo pritiskov++
if stevilo pritiskov=1
timer1=millis()
if stevilo pritiskov=2
timer2=millis()
if stevilo pritiskov=3
timer3=millis()
if timer1=dolocenemu casu & timer2=dolocenemu casu2 & timer3 = dolocenemu casu3
LED = 1
if omejitev > 5000
stevilo pritiskov = 0
Rad bi naredil pa, da ne rabi tocno 500ms drzat ampak je lahko malo pogreska. In pa se, da steje tudi pauze med pritiski. Tu se pa malo zgubim.
Delam z arduino UNO.
Trenutno imam narejeno, da preverja kadar je gumb pritisnjen in prizge luc.
Sem se igral tudi z millis().
Primer:
omejitev = millis()
stevilo pritiskov=0
if gumb=1
stevilo pritiskov++
if stevilo pritiskov=1
timer1=millis()
if stevilo pritiskov=2
timer2=millis()
if stevilo pritiskov=3
timer3=millis()
if timer1=dolocenemu casu & timer2=dolocenemu casu2 & timer3 = dolocenemu casu3
LED = 1
if omejitev > 5000
stevilo pritiskov = 0
Rad bi naredil pa, da ne rabi tocno 500ms drzat ampak je lahko malo pogreska. In pa se, da steje tudi pauze med pritiski. Tu se pa malo zgubim.
http://www.youtube.com/watch?v=5hfYJsQAhl0
fifapanter ::
Obstaja več načinov.
En primer je z prekinitvami timera, ki bi jih nastavil npr na vsakih 500ms in preverjal vrednost gumba. Pač moral bi si omejiti, koliko klikov te zanima in kdaj sprožit prvega.
Druga možnost je povezava gumb na interrupt pin in potem gledaš, kdaj se je sprožilo prekinitev in katera (high, low).
Tretji način je verjetno bolj "programerski":
zanka: (koliko dogodkov te zanima)
a = preberi vrednost (če je 1 povečaš vrednost pritisnjenih, če je 0, pa spuščenih)
delay(400);
b = preberi vrednost
if(b == a)//če uporabnik še mogoče ni spustil tipke (pogreška), mu damo še 200ms časa
delay(200);
end zanka
To sem sedaj na hitro spisal. Probaj, če ti bo delovalo pravilno :) če ne, pa da si dobil kakšno idejo
En primer je z prekinitvami timera, ki bi jih nastavil npr na vsakih 500ms in preverjal vrednost gumba. Pač moral bi si omejiti, koliko klikov te zanima in kdaj sprožit prvega.
Druga možnost je povezava gumb na interrupt pin in potem gledaš, kdaj se je sprožilo prekinitev in katera (high, low).
Tretji način je verjetno bolj "programerski":
zanka: (koliko dogodkov te zanima)
a = preberi vrednost (če je 1 povečaš vrednost pritisnjenih, če je 0, pa spuščenih)
delay(400);
b = preberi vrednost
if(b == a)//če uporabnik še mogoče ni spustil tipke (pogreška), mu damo še 200ms časa
delay(200);
end zanka
To sem sedaj na hitro spisal. Probaj, če ti bo delovalo pravilno :) če ne, pa da si dobil kakšno idejo
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Diagnostika pc-jaOddelek: Strojna oprema | 1577 (1170) | legice |
» | Arduino kot časovni releOddelek: Pomoč in nasveti | 1617 (1203) | davor92 |
» | Daljinec preneha delovati po nekaj sekundahOddelek: Zvok in slika | 1546 (1484) | s6c-gEL |
» | Program za štetje miškinih klikov..Oddelek: Programska oprema | 1387 (1147) | dadooo |
» | interupti in merjenje frekvence v picuOddelek: Elektrotehnika in elektronika | 2196 (1952) | neoto |