Jump to content
ELFORUM - Forumul electronistilor

Inca un ceas cu PIC...


bercioiu
 Share

Recommended Posts

Va supun atentiei un ceas realizat integral de mine: Ceasul este compus dintr-un RTC DS1307, un DS 18b20, un Pic 16F877A, un display LCD 16X2si 3 butoane pentru controlul meniului si al functiilor ceasului. Ceasul are urmatoarele functii:- Afiseaza ora in doua moduri: modul 12H respectiv 24H- In modul 12H, intre orele 00:00 si 12:00 afiseaza pe ecran AM , intre 12:00 si 00:00 afiseaza PM- Este prezenta o alarma zilnica, pe care o putem activa sau dezactiva, cu o iesire pe pinul A3.- Alarma odata pornita, se poate amana cu 5 min prin functia snooze.- Masoara temperatura ambianta si o afiseaza in grade Celsius sau Fahrenheit.- Inregistreaza temperatura minima si maxima masurata si o afiseaza intr-un meniu separat.- Afiseaza calendarul Gregorian corectand ultima zi a lunii februarie in anii bisecti.- Afiseaza primele trei litere ale zilei saptamanii (in engl.).- Are o functie de chime, programabila, la ora fixa, la jumatate de ora sau la ora fixa si jumatate de ora, cu o iesire pe pinul A5- Am prevazut in meniu o functie pentru corectarea timpului dupa 24 de ore de la ultima setare a ceasului,in functie de pierderile sau castigurile datorate cristalului de quartz.In arhiva sunt fisierele DSN, hex-ul si o descriere a ceasului.Mai am sa implementez functia de fus orar. Inca nu m-am prins cum sa fac, ma invart intr-un cerc vicios... Orice sfat mi-ar prinde bine.

Link to comment
Share on other sites

Are optiune de ora de vara/iarna?

 

Aia cred ca se poate activa direct in RTC, am sa ma documentez,daca nu, nu-i mare lucru sa mai pun o conditie pe 22 oct (sau cand este) sa adauge o ora si invers. Iti multumesc pentru sugestie!

 

Hex-ul ala e cam maricel, oare din cauza calendarului?

 

Da, hexul este mare pentru ca am scris si epromul si mi-a complectat restul locatiilor libere cu zero

 

Cred ca atat fusul orar cat si ora de vara/iarna sunt niste formatari date doar in momentul afisarii, intern ora trebuie tinuta GMT.

 

Asta este clar, dar nu stiu cum sa fac in momentul cand, spre exemplu, este ora 01:00 AM si vreau sa dau in jos 7 ore, ora va deveni -06:00, trebuie sa adun intai p`acolo 12 ore si dupa aia sa scad fusul orar... Nu ma prind, ma mai gandesc.

Link to comment
Share on other sites

Va supun atentiei un ceas realizat integral de mine: Ceasul este compus dintr-un RTC DS1307, un DS 18b20, un Pic 16F877A, un display LCD 16X2si 3 butoane pentru controlul meniului si al functiilor ceasului....

Poti atasa schema ceasului in format JPEG, sunt tentat de el daca tot am PIC-ul prin sertare.Poate desenez un cablaj pentru el, in functie de timpul liber.Multumesc.
Link to comment
Share on other sites

Daca e vorba de fus orar e complicat rau de tot. Fiecare tara are politica ei in privinta orei oficiale. Insa daca vrei sa implementezi "daylight saving" asta este alta poveste, mai usoara. Am studiat problema mai demult si trebuie sa am undeva ceva liniii de cod in C pentru asa ceva.

Link to comment
Share on other sites

Daca e vorba de fus orar e complicat rau de tot.

Am sa-l fac doar sa scada pana la 12 ore sau sa adauge pana la 12 ore, adica un fus orar generic.

Insa daca vrei sa implementezi "daylight saving" asta este alta poveste, mai usoara. Am studiat problema mai demult si trebuie sa am undeva ceva liniii de cod in C pentru asa ceva.

Mie mi se pare ca asta este mai complicat, deoarece, in fiecare an, ora se schimba in zile diferite, adica in ultima duminica din martie pentru ora de vara si in ultima duminica din oct. pentru ora de iarna. Am sa-l programez pentru "daylight saving" doar pana in 2020, eu zic ca este suficient.
Link to comment
Share on other sites

Pai daca tot afiseaza calendarul, nu cred ca e chiar asa greu - trebuie numai sa "numeri" ciclic zilele saptamanii (de ex. luni = 1, marti = 2... duminica = 7, ) si cand esti in octombrie (luna = 10), e duminica (zi = 7) si pana la 31 mai ai mai putin de 7 zile (31 - data curenta < 7), e cazul sa dai ceasul inapoi (iupii, abia astept :rade: ).

Link to comment
Share on other sites

Sa nu mai vorbim de cazul anului bisect cu ziua de 29 Februarie.Facilitatea ceasului ca se schimba dupa fusul orar nu-i vad rostul. Setezi ceasul si introduci coordonate geografice ????Eu vad in felul urmator : ceasul sa aiba o optiune de genul "Folosire day light DA/NU" care sa influenteze un indicator (flag). Implica cateva linii de cod dar nu este imposibil. Revin mai tarziu cu detalii.PS. Am studiat rapid datasheet-ul DS1307 si vad ca se ocupa el de anul bisect.

Link to comment
Share on other sites

Sa nu mai vorbim de cazul anului bisect cu ziua de 29 Februarie.Facilitatea ceasului ca se schimba dupa fusul orar nu-i vad rostul. Setezi ceasul si introduci coordonate geografice ????Eu vad in felul urmator : ceasul sa aiba o optiune de genul "Folosire day light DA/NU" care sa influenteze un indicator (flag). Implica cateva linii de cod dar nu este imposibil. Revin mai tarziu cu detalii.PS. Am studiat rapid datasheet-ul DS1307 si vad ca se ocupa el de anul bisect.

De anul bisect are grija RTC-ul.Mai trebuie sa-i pun eu niste conditii la introducerea datelor sa nu-ti permita sa introduci date eronate. Intr-adevar vis-a-vis de fusul orar, este o "frunzulita" care nu cred ca o voi folosi vreodata... Era o idee... Ora de iarna/vara am rezolvat-o cu ajutorul lui Liviu M caruia ii multumesc inca odata!
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines