|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Pet Nov 27, 2020 6:00 pm Naslov sporočila: |
|
|
Mogoče sem pravilno ugotovil, zakaj pride do tega.
Ko pritisnem tipko A, je koda tipke (65), se ta koda vpiše in ostane tudi, ko spustim tipko A.
Če pravilno sklepam, ko spustim tipko bi ta koda morala biti 0.
Koda se zamenja šele, ko pritisnem drugo tipko npr. B.
Ali je to kaj povezano s knjižnico Keypad.h ? ali obstaja še kaka druga knjižnica?
Oziroma kako to napraviti, ko spustim tipko, da je stanje koda tipke nič (0).
Zato spodnja koda ne deluje, ker je koda vedno 65.
lp,
Koda: |
if(key ==65) digitalWrite(Rele_mv_odpri, LOW); // turn on relay
while (key == 65){}
digitalWrite(Rele_mv_odpri, HIGH); // turn off relay
|
|
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 611 Aktiv.: 4.46 Kraj: Vrhnika
|
Objavljeno: Pet Nov 27, 2020 9:40 pm Naslov sporočila: |
|
|
Kot sem nahitro pogledal v knjiznico, bi se morala vracati '\0', ko ni pritisnjena nobena tipka. '\0' ni isto kot '0' zato ti jo ne izpise kot karakter niti kot desetisko vrednost.
Ta koda ne deluje tudi zato ker v while zanki ne skeniras tipkovnice... |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Pet Nov 27, 2020 9:54 pm Naslov sporočila: |
|
|
Tudi ta koda ne deluje, smo že včeraj probali.
Koda: |
if(key == 'A') digitalWrite(Rele_mv_odpri, LOW); // turn on relay
while (key == "A"){ //Krozi dokler imas pritisnjeno tipko A
key = keypad.getKey(); //Skeniraj tipkovnico
}
digitalWrite(Rele_mv_odpri, HIGH); // turn off relay
|
|
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 611 Aktiv.: 4.46 Kraj: Vrhnika
|
Objavljeno: Pet Nov 27, 2020 11:06 pm Naslov sporočila: |
|
|
Nisem prej opazil da je pri while napisano "A". Sem popravil tudi pri svojem prispevku.
Probaj in while (key == "A") zamenjaj z while (key == 'A') |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Sob Nov 28, 2020 12:29 am Naslov sporočila: |
|
|
To sem jaz že takoj popravil, pa ne deluje.
Ko pritisnem tipko A rele se vklopi in izklopi.
Ali obstaja še kakšna druga knjižnica, sem iskal pa ne najdem?
LP. |
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 611 Aktiv.: 4.46 Kraj: Vrhnika
|
Objavljeno: Sob Nov 28, 2020 2:55 am Naslov sporočila: |
|
|
Probaj se tole:
Koda: |
if(key == 'A') digitalWrite(Rele_mv_odpri, LOW); // turn on relay
while ((keypad.getState() == PRESSED) || (keypad.getState() == HOLD)){} //Krozi dokler imas pritisnjeno tipko
digitalWrite(Rele_mv_odpri, HIGH); // turn off relay
|
|
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Sob Nov 28, 2020 3:56 pm Naslov sporočila: |
|
|
mato1111 je napisal/a: |
Probaj se tole:
Koda: |
if(key == 'A') digitalWrite(Rele_mv_odpri, LOW); // turn on relay
while ((keypad.getState() == PRESSED) || (keypad.getState() == HOLD)){} //Krozi dokler imas pritisnjeno tipko
digitalWrite(Rele_mv_odpri, HIGH); // turn off relay
|
|
Ko pritisnem in spustim tipko, rele ostane vključen ves čas.
Vse ostalo ne deluje, ker se program verjetno zacikla v while zanki, verjetno misli, da skoz držim tipko in da je še vedno (key == 'A').
lp, |
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 611 Aktiv.: 4.46 Kraj: Vrhnika
|
Objavljeno: Sob Nov 28, 2020 7:23 pm Naslov sporočila: |
|
|
Daj v while se skeniranje tipkovnice. Ce tudi to ne dela potem ti ne znam pomagat. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|