www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Tipkovnica + DS18b20 + grafični
Pojdi na stran Prejšnja  1, 2, 3
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.90
Kraj: Dobrepolje

PrispevekObjavljeno: Pet Nov 27, 2020 6:00 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Pet Nov 27, 2020 9:40 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.90
Kraj: Dobrepolje

PrispevekObjavljeno: Pet Nov 27, 2020 9:54 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Pet Nov 27, 2020 11:06 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.90
Kraj: Dobrepolje

PrispevekObjavljeno: Sob Nov 28, 2020 12:29 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Sob Nov 28, 2020 2:55 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.90
Kraj: Dobrepolje

PrispevekObjavljeno: Sob Nov 28, 2020 3:56 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Sob Nov 28, 2020 7:23 pm    Naslov sporočila:   Odgovori s citatom

Daj v while se skeniranje tipkovnice. Ce tudi to ne dela potem ti ne znam pomagat.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3
Stran 3 od 3

 
Pojdi na:  
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