vineri, 20 iulie 2018

Ceas reglabil pe afisaj LCD12864 (ST7920)

   Avand de gand sa folosesc afisajul monocrom cu rezolutie de 128x64 cu driver ST7920 (l-am mai prezentat pe blog - http://nicuflorica.blogspot.com/search?q=st7920) la un sistem gen cronostat pe mai multe zone, am zis ca intai sa fac partea de ceas cu reglaj al datei si orei.
   M-am folosit de articolele cu afisajul, de articolul Arduino Astronomical Clock (or Arduino Pond Pump Controller!) si ale mele http://nicuflorica.blogspot.com/search?q=andydoz. Schema de conectare este
   iar configurarea in program (sketch) este
(se foloseste libraria u8glib)
   Am adaptat sketch-ul gasit in articolul Analog LCD clock - Arduino LCD combinandu-l cu cel al lui Andy, initial avand prezentarea asta
   Deoarece libraria RTClib nu are posibilitatea de a regla si ziua din luna (se poate face altfel, cum e prezentat in articolul Tronixstuff – Using DS1307 and DS3231 Real-time Clock Modules with Arduino, dar nu am timp prea mult de teste, asa ca am renuntat la aceasta facilitate momentan).
   Initial, am pus doar partea de afisare, dupa cum se vede in filmuletele:
programul utilizat fiind u8glib_RTC_clock1.ino, apoi am implementat si partea de reglaj,
     Daca se apasa scurt butonul de epe encoder apare un mesaj cu date despre program
iar daca se apasa lung intra in meniul de reglaj, la modificarea anului
prin rotirea encoderului se modifica valoarea (minimul fiind 2018, vorba lui Andy, asta nu e masina timpului sa trec in anii anteriori) apoi la paasare scurtaa  butonului se ajunge in meniul de reglaj al lunii
apoi se trece in reglajul zilei din luna
   Dupa apasarea butonului se intra in partea de reglaj a ceasului, la ore
si apoi la minute
Apasand din nou butonul se revine la modul de functionare normala, ca ceas
  In filmuletele de mai jos s evedem modul de functionare si reglare
ceas pe afisaj 128x64 cu ST7920 (3)
RTC clock on 128x64 display with ST7290 (3)
   Am constatat ca programul ocupa foarte mult spatiu (97%) si nu o sa imi incapa tot ce aveam de gand, asa ca voiam sa renunt si sa trec pe afisaj alfanumeric LCD2004 (20x4), dar dupa ce am discutat cu Vlad si mi-a zis ca fonturile folosite de mine consuma multa memorie, m-am mai jucat cu fonturile si am redus mult memoria ocupata (67%), dupa cum se vede in filmuletele
ceas pe afisaj 128x64 cu ST7920 (4)
RTC clock on 128x64 display with ST7290 (4)
   Sketch-ul optimizat este u8glib_RTC_clock2.ino.

5 comentarii:

  1. Hi,
    how to connect encoder module KY-040 with pins: - + SW DT CLK?

    RăspundețiȘtergere
    Răspunsuri
    1. you connect encoder as in schematic and sketch, but is not clear for you: + fron encoder to +5V from Arduino, SW to D4, DT to D3, CLK to D2, GND to GND

      Ștergere
    2. pins are defined in lines 14 and 84 sn sketch: https://github.com/tehniq3/u8glib_ST7290_clock/blob/master/u8glib_RTC_clock2.ino

      Ștergere
  2. Acest comentariu a fost eliminat de autor.

    RăspundețiȘtergere