|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 610 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Čet Nov 19, 2020 9:04 pm Naslov sporočila: |
|
|
Tudi jaz sem prej delal (beri metal skupaj dokler ni cudezno zacelo delat ) v Bascomu pa sem zaradi vecjega stevila knjiznic presel na Arduino.
Ali ti utripanje "bele pike" v podprogramu sedaj deluje?
Tukaj imas opis in tvorjenje if-else stavka -> if-else
Tukaj pa imas opis vseh struktur (cisto spodaj na strani) -> strukture |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Pet Nov 20, 2020 2:11 pm Naslov sporočila: |
|
|
Hi
Zanima me, če so kakšne omejitve vpisa kode v chip? Kolikokrat lahko vpisujem, jaz sem morda že vpisoval več kot 100-krat. Imam Mega2560.
lp, |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5327 Aktiv.: 24.78 Kraj: Domzale
|
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Ned Nov 22, 2020 12:48 pm Naslov sporočila: |
|
|
Jaka57 je napisal/a: |
Vidim, da si za branje tipkovnice uporabil neko knjižnjico, ne da se mi gledati in iskati, katera knjižmjica je to, vendar najlepše se tipke berejo s pomočjo prekinitve.
Za 4X4 tipkovnico poišči na Netu knjižnjico, ki uporablja prekinitev (interupt), da bo program takoj odreagiral na pritisk tipke.
|
Hi
Oprosti, ali mi lahko vsaj poveš pod kaj naj v googlu iščem? Katera je ta čarobna beseda v ang.?
Lp, |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Tor Nov 24, 2020 7:11 pm Naslov sporočila: |
|
|
Pozdrav
Ko pridem v program_2, bi se moral pobrisati zaslon, ter za 5 sekund izpisati besedilo.
Po 5 sekundah pa zopet pobrisat zaslon in skok v program_1.
Pri meni pa se vse to zgodi v sekundi. Kje sem naredil napako?
Koda: |
unsigned long millisOld_navodila=0;
void setup(){
millisOld_navodila=millis();
}
void program_2(){
myGLCD.clrScr(); //briši zaslon
if ((millis()-millisOld_navodila) >= 5000){
myGLCD.setFont(BigFont);
myGLCD.setBackColor(VGA_RED);
myGLCD.setColor(VGA_WHITE);
myGLCD.print(" * NAVODILA ZA PROGRAM 2 * ", 60, 22);
millisOld_navodila = millis();
}
myGLCD.clrScr(); //Počistite zaslon
inputInt=1; //gre v program_1
}
|
lp, |
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 610 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Tor Nov 24, 2020 8:11 pm Naslov sporočila: |
|
|
Iz tega se vidi samo to da ko skocis v program_2 pobrises zaslon, preveris ce je minilo 5s od zadnjega branja millis in izpises text drugace ga ne in ga nato takoj pobrises ter nato izhod iz programa2 |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Tor Nov 24, 2020 8:31 pm Naslov sporočila: |
|
|
Marko, if stavek
Koda: |
if ((millis()-millisOld_navodila) >= 5000) |
se ne izvrši, saj nikjer ne čaka 5s.
5 sekund je ogromno za kontroler, zato v tvojem primeru, kot je napisal @mato1111, samo pobriše LCD in se vrne nazaj od koder je bil program_2 klican..
Ta del bi lahko napisal:
Koda: |
void setup(){
}
void program_2(){
myGLCD.clrScr(); //briši zaslon
myGLCD.setFont(BigFont);
myGLCD.setBackColor(VGA_RED);
myGLCD.setColor(VGA_WHITE);
myGLCD.print(" * NAVODILA ZA PROGRAM 2 * ", 60, 22);
delay(5000):
myGLCD.clrScr(); //Počistite zaslon
goto program_1;
}
|
Mogoče ti bo lažje z goto.
Opis za goto v Arduinu najdeš tukaj. _________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Čet Nov 26, 2020 6:12 pm Naslov sporočila: |
|
|
Oj
Nov problem.
Ko pritisnem tipko A se rele vklopi, ko pa jo spustim bi se moral rele odklopiti, pri meni pa vedno ostane vklopljen.
Kaj moram napisati, da se rele izklopi, ko spustim tipko A?
Koda: |
if(key == 'A') digitalWrite(Rele_mv_odpri, LOW); // turn on relay
// digitalWrite(Rele_mv_odpri, HIGH); // turn off relay
|
lp, |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Čet Nov 26, 2020 7:48 pm Naslov sporočila: |
|
|
Mogoče takole:
Koda: |
if(key == 'A') digitalWrite(Rele_mv_odpri, LOW); // turn on relay
while (key == "A"){}
digitalWrite(Rele_mv_odpri, HIGH); // turn off relay |
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Čet Nov 26, 2020 8:01 pm Naslov sporočila: |
|
|
Jaka57, isto kot prej.
Ko pritisnem tipko A rele pritegne, spusti pane, ko spustim tipko.
lp. |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Čet Nov 26, 2020 8:43 pm Naslov sporočila: |
|
|
Daj za if stavkom delay(500). _________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Čet Nov 26, 2020 8:51 pm Naslov sporočila: |
|
|
Rele ne izklopi tudi pri tej varianti...
Koda: |
if(key == 'A') digitalWrite(Rele_mv_odpri, LOW); // turn on relay
delay(500);
while (key == 'A'){}
digitalWrite(Rele_mv_odpri, HIGH); // turn off relay
|
|
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 610 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Čet Nov 26, 2020 9:24 pm Naslov sporočila: |
|
|
Ne izklopi ker vmes ne skeniras tipkovnice in osvezujes vrednost v key spremenljivki...
Probaj tako:
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
|
Nazadnje urejal/a mato1111 Pet Nov 27, 2020 11:04 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Čet Nov 26, 2020 9:29 pm Naslov sporočila: |
|
|
Ja, nisem pomislil, da uporablja keyboard library. _________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.90 Kraj: Dobrepolje
|
Objavljeno: Čet Nov 26, 2020 9:46 pm Naslov sporočila: |
|
|
Zdaj pa cca za desetinko sek. vklopi rele, ko držim tipko.
Še nekaj ni dobro.
lp, |
|
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: 47 dni
Powered by phpBB © 2001, 2005 phpBB Group
|