#17 házi feladat megoldása

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
pappelektronika
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2019. december 8. vasárnap, 17:39

#17 házi feladat megoldása

HozzászólásSzerző: pappelektronika » 2019. december 19. csütörtök, 23:20

#include"LiquidCrystal.h" //LCD könyvtár betöltése
LiquidCrystal lcd(4,5,6,7,8,9); // LCD bekötése
int mp=-1;
int perc=0;
int ora=12; // idő változók deklarálása
byte bekapcsolasH;
byte bekapcsolasL;
word bekapcsolas=1; // belső változók
#include"EEPROM.h" // EEPROM könyyvtár betöltése
void timeprint(){ //idő kiírás blokk
lcd.setCursor(0,1) ;
lcd.print(ora);
lcd.print("o ");
lcd.print(perc);
lcd.print("p ");
lcd.print(mp);
lcd.print(" mp");
}
void setup() {
lcd.begin(16,2); //LCD típus beállítása
bekapcsolasH=EEPROM.read(2); //magas helyiérték olvasása EEPROM-ból
bekapcsolasL=EEPROM.read(1); //alacsony helyiérték olvasása EEPROM-ból
bekapcsolas=word(bekapcsolasH,bekapcsolasL); //word-dé alakítás
lcd.print("Pappelektronika"); //kiírás
delay(2000); // 2 másodperc késleltetés
lcd.clear(); //LCD törlés
lcd.setCursor(0,0); // LCD Kuryor beállítás
lcd.print(bekapcsolas);
lcd.print(" inditas"); // bekapcsolások kiírása
bekapcsolas=bekapcsolas+1; //bekapcsolás számláló növelése
bekapcsolasH=bekapcsolas/256;
bekapcsolasL=bekapcsolas%256; //modulo alkalmazása
EEPROM.write(1,bekapcsolasL);
EEPROM.write(2,bekapcsolasH); //mentés EEPROM-ba
}
void loop() //program
{
mp=mp+1; //másodperc növelése
delay(1000); // 1 másodperc késleltetés
if (mp==60) //
{
mp=0; // Ha 60 akkor visszírás 0-nak és
perc=perc+1; // perc növelése
}
if (perc==60){ // Ha 60 akkor visszírás 0-nak és
perc=0;
ora=ora+1; // óra növelése
}
if (ora==24){ // Ha 24 akkor visszírás 0-nak és
ora=0;
}
timeprint(); // idő kiírás blokk hívása
}


Sziasztok !
Én így oldottam meg , kezdő vagyok szeretném kikérni a véleményeteket.
Előre is köszönöm ay építő hozzászólásokat!

Avatar
Verjoz
SzínkódFestő
Hozzászólások: 99
Csatlakozott: 2018. március 13. kedd, 7:18

Re: #17 házi feladat megoldása

HozzászólásSzerző: Verjoz » 2019. december 20. péntek, 10:59

Tisztelt pappelektronika!

A loop részben nem így csináld a léptetést!
A delay() esetében egy másodpercig nem fut semmi! Csak toporog a proci egyhelyben.
A tavír lecke is leírja miért nem jó ez a megoldás.
Időzítés használj.... millis() erre a legjobb.
De ha a legpontosabb órát akarod akkor külső chip használata elengedhetetlen.
A kódod elméletileg léptet, csak soha nem lesz pontos.

pappelektronika
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2019. december 8. vasárnap, 17:39

Re: #17 házi feladat megoldása

HozzászólásSzerző: pappelektronika » 2019. december 20. péntek, 21:40

Tisztelt Verjoz!%
Nagyon köszönöm a tanácsot!
Számomra igen hasznosnak bizonyult, mert épp az idő beállításán törtem a fejem és ez a (delay) ,bizony akadályt jelent...
dolgozom rajta...


Vissza: “60 nap alatt Arduino - Házi feladatok”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 0 vendég