Se afișează postările cu eticheta 4 OLED displays. Afișați toate postările
Se afișează postările cu eticheta 4 OLED displays. Afișați toate postările

miercuri, 29 martie 2023

Alt ceas NTP cu cifre din 7-segmente pe 4 afisaje OLED

    Rasfoind netul, am dat de o biblioteca numita multi_OLED ce poate controla 16 afisaje OLED pe i2c cu numai 5 pini de Wemos D1 (ESP8266). Anterior am realizat un ceas pe 4 afisaje OLED in care am folosit expandorul TCA9548A, asa ca intentia a fost sa il recreez cu cat mai putine piese.

   Initial, am incercat sa controlez 4 afisaje OLED cu o placa Arduino Nano, ce permite doar text, dar pentru inceput e ok. Afisajele au aceeasi adresa i2c si anume 0x3C, asa ca o conectare clasica era imposibila.
   Schema mea de test este
si incarcand programul multiOLED_test_v0.ino pot afisa pe cele 4 afisaje informatii diferite:
   Apoi am schimbat placa Arduino Nano cu un Wemos D1 Mini, schema, ce fi utilizata ulterior si la un ceas NTP cu selectie ora vara/iarna este:
   Dupa un scurt test cu programul anterior, am rescris programul sa am caractere din 7-segmente
Primul program de test afisa doar 0,1,2,3 pe afisaje, dupa cum se vede in filmuletele:
comanda 4 afisaje OLED pe i2c cu aceeasi adresa (0x3C)
apoi cu al doilea program de test, se afiseaza aleatoriu pe fiecare ecran unul din cele 14 caractere create (cifrele 0...9, litera "o", semnul de grad, litera "C", semnul minus)
   Dupa asta am trecut la treburi serioase, adica am adaptat programul sa ma un ceas NTP cu seelctie ora de vara sau de iarna, dar fata de alte proiecte, am folosit intrarea analogica, deoarece alti pini pot avea functionalitati la pornire. A ales sa am ora de iarna cu intrarea la masa (GND) si ora de vara (DST) cu intrarea la 3,3V (maximul pentru acest pin la Wemos D1).
  Primele teste, cu programul NTP_clock_4OLEDS_4.ino, ce are punctul de secunda fix (deoarece informatiile de actualizeaza greu pe ecran) se vad in fimuletele
  Apoi am facut ca ledul intern sa clipeasca, programul devenind NTP_clock_4OLEDS_4a.ino, urmand ca ulterior sa folosesc unu' sau doua leduri intre ore si minute:
    Am in plan, cu ajutorul lui zvonacfirst, sa pun putinele piese pe un cablaj si sa printez o carcasa.
 Schema cu leduri ar trebui sa fie:

duminică, 29 ianuarie 2023

Ceas NTP pe 4 afisaje OLED

    Vazand articolul Guide for TCA9548A I2C Multiplexer: ESP32, ESP8266, Arduino de pe site-ul lui Rui Santos (Random nerd Tutorials) unde prezenta 4 afisaje OLED conectate pe i2c prin intermediul unui distribuitor (TCA9548A), am zis sa il reproduc si eu.

   Am comandat distribuitorul si 4 afisaje si cand au sosit, le-am pus la treaba.

   Mai intai am conectat doar distribuitorul sa vad daca il gasesc cu i2c_scanner-ul (am gasit un periferic la 0x70, cum era de asteptat)

apoi am conectat si unul din afisaje la SDA/SCL-ul placii Wemos D1 cu ESP8266, gasind 2 periferice, unul la 0x70 (TCA9584A) si unul la 0x3C (afisajul OLED)
apoi am conectat cele 4 afisaje OLED la iesirle 2, 3, 4 si 5 ale lui TCA9548A, dupa schema
gasind doar TCA-ul 9548A la adresa 0x70, deoarece doar el este legat direct.
    Am incarcat programul lui Santos si au aparut cifrele pe ecrane:
   Am facut o mica modificare programului introducand niste puncte pentru secunde, in vederea realizarii unui ceas:
    Am adaugat partea de ceas NTP, inclusiv partea de reglaj a orei de vara (DST) sau a orei de iarna (prin comutarea pinului D5 la +3,3V, respectiv la masa GND), programul rezultat este NTP_clock_TCA9548A_4OLEDs_1.ino iar schema este compusa din partea de distribuitor i2c + partea de reglaj ora/vara iarna: