duminică, 29 ianuarie 2023

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:

- ora de iarna
   Am facut 2 filmulete:

marți, 24 ianuarie 2023

Ceas animat NTP si termometru/higrometru pe afisaj led din 4 caractere a 14 segmente fiecare cu interfata i2c (HT16K33)

    Dupa ce am testat mai mult de o saptamana stabilitatea ceasului NTP cu termometru/higrometru am lucrat la o animatie: "intrare" rapida informatie (numar/txt) dinspre dreapta, ramanerea pe loc o periorada si apoi "iesirea"  rapida in stanga. 

    Informatiile sunt: ora (cu "batere" secunda), temperatura si umiditate, alese aleatoriu (folosind functia random) dupa cum se vede in filmuletele:

pseudo ceas animat cu termometru, higrometru pe afisaj led HT16K33 cu 14 segmente si 4 caractere

animated pseudo clock, thermometer and hygrometer on HT16K33 14-segment 4 digit led display

in care programul (sketch-ul) folosit este example_scrolltext_2c.ino., iar schema de conectare (minima) este aceeasi, ca a ceasului NTP

    Am mai lucrat la program, sa acopar toate cazurile (pentru a depista erorile de afisare, folosind valori predefinite), iar prezentarea informatiilor sunt exact cum am prezentat in articolele anterioare
- ora in format de 24 ore
- temperaturi de la -990C la +990C
- umiditate relativa
   Programul modifcat este example_scrolltext_2d.ino si modul de prezentare animat al informatiilor este cel din filmuletele:
   A urmat un nou mod de codare a programului pentru a afisa un text deplasabil, cum e numele zilei (alternativ in engleza si romana), rezultand programul dayweek_scrolltext1.ino
   A urmat realizarea unui pseudo ceas cu informatii animate: ceas (text si valoare), nume zi, temperatura (text si valoare) si umiditate (text si valoare), programul rezultat este example_scrolltext_2f.ino
pseudo ceas animat cu termometru, higrometru pe afisaj led HT16K33 cu 14 segmente si 4 caractere (3)
    Dupa cum se observa, cand ora este dintr-o singura cifra, nu se mai afiseaza 05:47, ci 5:47.
    Pasul urmator a fost introducerea animatiei in programul de ceas cu termometru/higrometru, asa ca a rezultat programul NTP_clock_on_HT16K33_v5.ino in care apare urmatoarele informatii, unele mai animate, altele nu: ora, nume zi, data (text + valoare), temperatura si umiditate.
   Schema pentru ceas cu termometru/higrometru, este
iar o parte din informatiile prezentate sunt:
- ora (text si ora.minut)
- data (text, zi.luna, an)

luni, 23 ianuarie 2023

Ceas NTP si termometru/higrometru (senzor DHT22/11) pe afisaj led din 4 caractere a 14 segmente fiecare cu interfata i2c (HT16K33)

    Bazandu-ma pe ce am testat cu ceasul NTP si termometrul/higrometrul ce folosesc un modul cu afisaj led din 4 caractere a 14 segmente fiecare , am realizat un "ceas NTP si termometru/higrometru".

   Schema este aceasi cu cea a termometrului/higrometrului

si, in prima faza, indicatiile sunt simple:
- ceas, cu secunda clipitoare (bate secunda)
- numele zilei (o data in engleza, o data in romana), cu text deplasabil din dreapta in stanga
- data (zi si luna)
- an
- temperatura
- umiditatea relativa a aerului
   Programul rezultat este NTP_clock_on_HT16K33_v3.ino ce a folosit in filmuletele
    Ulterior, am mai lucrat la niste animatii, pe care le voi prezenta intr-un articol ulterior.