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  Naslednja
 
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
mato1111
Član
Član



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

PrispevekObjavljeno: Čet Nov 19, 2020 9:04 pm    Naslov sporočila:   Odgovori s citatom

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



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

PrispevekObjavljeno: Pet Nov 20, 2020 2:11 pm    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 4682
Aktiv.: 26.82
Kraj: Ljubljana

PrispevekObjavljeno: Pet Nov 20, 2020 2:23 pm    Naslov sporočila:   Odgovori s citatom

https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf

Write/Erase Cycles:10,000 Flash/100,000 EEPROM

_________________
...lahko pa se tudi motim ...
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: 737
Aktiv.: 4.06
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Nov 22, 2020 12:48 pm    Naslov sporočila:   Odgovori s citatom

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



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

PrispevekObjavljeno: Tor Nov 24, 2020 7:11 pm    Naslov sporočila:   Odgovori s citatom

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
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: 521
Aktiv.: 5.40
Kraj: Vrhnika

PrispevekObjavljeno: Tor Nov 24, 2020 8:11 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5351
Aktiv.: 29.46
Kraj: Grosuplje

PrispevekObjavljeno: Tor Nov 24, 2020 8:31 pm    Naslov sporočila:   Odgovori s citatom

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



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

PrispevekObjavljeno: Čet Nov 26, 2020 6:12 pm    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5351
Aktiv.: 29.46
Kraj: Grosuplje

PrispevekObjavljeno: Čet Nov 26, 2020 7:48 pm    Naslov sporočila:   Odgovori s citatom

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



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

PrispevekObjavljeno: Čet Nov 26, 2020 8:01 pm    Naslov sporočila:   Odgovori s citatom

Jaka57, isto kot prej.

Ko pritisnem tipko A rele pritegne, spusti pane, ko spustim tipko.

lp.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5351
Aktiv.: 29.46
Kraj: Grosuplje

PrispevekObjavljeno: Čet Nov 26, 2020 8:43 pm    Naslov sporočila:   Odgovori s citatom

Daj za if stavkom delay(500).
_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



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

PrispevekObjavljeno: Čet Nov 26, 2020 8:51 pm    Naslov sporočila:   Odgovori s citatom

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
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: 521
Aktiv.: 5.40
Kraj: Vrhnika

PrispevekObjavljeno: Čet Nov 26, 2020 9:24 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5351
Aktiv.: 29.46
Kraj: Grosuplje

PrispevekObjavljeno: Čet Nov 26, 2020 9:29 pm    Naslov sporočila:   Odgovori s citatom

Ja, nisem pomislil, da uporablja keyboard library.
_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



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

PrispevekObjavljeno: Čet Nov 26, 2020 9:46 pm    Naslov sporočila:   Odgovori s citatom

Zdaj pa cca za desetinko sek. vklopi rele, ko držim tipko.

Še nekaj ni dobro.

lp,
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-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  Naslednja
Stran 2 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: 44 dni


Powered by phpBB © 2001, 2005 phpBB Group