duminică, 29 ianuarie 2023

Ceas NTP pe afisaj led 16x8 cu TM1640 (2)

    In completarea articolului anterior, am modificat cifrele de la minute s pot afisa ora in format de 24 ore, cu aceasta ocazie, am modifiat si cifra 1 de la ore:

- cifre pentru ore

- cifrele 1 si 2 de la minute

- cifrele 3 si 4 de la minute

- cifrele 5 si 6 de la minute

- cifrele7 si 8 de la minute

- cifrele 9 si 0 de la minute si punctul pentru secunde

   Schema este, la fel ca cea din articolul precedent,
doar programul este modificat, devenind TM1640_clock_v2.ino si modul de afisare este de genul:
- ora 19:34
- ora 20:11
 dar cel mai bine se vede in filmuletele:
   Ulterior, am modificat programul sa fie afisata ora 9:59 in loc de 09:59, acest fiind TM1640_clock_v2a.ino.



Ceas NTP pe afisaj led 16x8 cu TM1640

 

    Din intamplare, am vazut pe net un afisaj led interesant, cu o rezolutie destul de mica (16x8), cod KS0357, dar si mic ca dimensiune






   Din descrierea initiala, parea ca driverul AIP1640 este unul cu interfata i2c, asa ca am conectat corespunzator schemei
 dar la o cautare cu programul i2c_scanner nu am gasit nimic, asa ca am mai sapat pe net si am constatat ca AIP1640 este compatibil cu TM1640, care e un driver cu intrare seriala (date si ceas, adica SDA/SCL)
   Din fericire, am gasit foarte repede, o biblioteca pentru driver-e tip TP16xx, asa ca am facut 2 filmulete, in care am folosit informatiile gasite in sketch-ul din articolul producatorului si unul din librarie:
   Pentru a putea afisa acel pseudoceas, m-am inspirat de informatiile pe care pe scrisesem in articolele Pseudoceas pe 2 matrici de 8x8 leduri (16x8)
si Ceas RTC pe 2 afisaje de 8x8 leduri (16x8)
unde apelasem la calculatorul on-line de o matrice 8x8 la un sir heazecimal sau binar din articolul Online led matrix font generator with binary and hex codes for Arduino
   Din experianta enterioara, stiam ca pot realiza doar un ceas in format de 12 ore, asa ca am creat numere si caractere, pozitionandu-le ca in articolul Ks0357 Keyestudio 8x16 LED Matrix Panel
 
- cifrele 1, 2 si 2 puncte
- cifrele 3 si 4
- cifrele 5 si 6
- cifrele 7 si 8
- cifrele 9 si 0
- semnele - si plus
   Am adaptat programul de l-am gasit in articolul producatorului sa am un ceas NTP, inspirandu-ma din articolul Ceas NTP pe afisaj cu TM1637, rezultand programul (sketch-ul) TM1640_clock_v0.ino.
   Am facut 2 filmulete:
apoi am adaugat si selectarea orei de vara (DST) sau a orei de iarna prin conectarea pinului D5 la +3.3V sau masa (GND), schema devenind
iar programul rezultat fiind TM1640_clock_v1.ino
- ora vara:
- ora iarna:
dar cel mai bine se vede functionare in cele 2 filmuletele:
Ulterior am modificat cifra 5
programul devenind TM1640_clock_v1a.ino.

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: