Se afișează postările cu eticheta catod comun. Afișați toate postările
Se afișează postările cu eticheta catod comun. Afișați toate postările

vineri, 20 septembrie 2024

Comanda afisaj led din 7 segmente cu modul i2c cu PCF8574 pentru afisaj alfanumeric LCD 1602/2004

    Pentru un anumit proiect, am vrut sa controlez un afisaj cu un singur digit de 7-segmente folosind comunicatia i2c si am avut la indemana doar un modul folosit, in mod obisnuit, la afisajele alfanumerice LCD 1602 sau 2004.

   Cautand pe internet, am gasit schema modulului la protosupplies.com:

din care se observa ca P3 nu este conectata direct, ci la comanda prin tranzistor a ledului de fundal, asa ca am testat pe un breadboard (2 de fapt) un mic montaj cu niste leduri
   Am facut un test folosind informatiile din articolul 7-Segment LED Display PCF8574 I2C Arduino
 doar ca eu am conectat singurul afisaj led gasit, unul de 1.2" cu catod comun direct, inseriind ledurile cu rezistente de 470Ω tinand cont si de informatiile de aici


  Pentru afisajul cu catod comun, ledurile se aprind cand pe iesirea PCF-ului sunt 5V (iesire in HIGH), asa ca am transformat informatia in numar hexazecimal, folosind un calculator online, pentru a putea transmite informatia cu Arduino:

   Pentru afisaje cu anod comun, alimentat din +5V, ledurile din segmente inseriate cu rezistente de limitare curent se conecteaza la iesirile PCF-ului si se aprind cand iesire corespunzatoare sunt in 0V (iesire in LOW), iar informatia in hexazecimal este
   Dupa cum se constata, am pus iesirea P3 mereu in LOW (0), deoarece nu am acces direct fara o interventie pe placuta si programelul meu de test, este countdown_test1.ino
   Am facut si 2 filmulete:

21.09.2024
   Pentru a depista adresa i2c a intefetei cu PCF8574 am folosit programiorul numit i2c_scanner (puteti gasi mai multe informatii in articolul de pe arduino.cc), gasind adresa 0x27.

   Am facut "punte" (strap) la A0 si acum adresa este 0x26.

si am modificat programul, acesta devenind, countdown_test2.ino in care se defineste adresa la inceput si apoi este ca variabila.
22.09.2024
   Am desenat schema de conectare pentru un afisaj
- cu catod comun (cum am testat eu)
- cu anod comun

duminică, 3 octombrie 2021

Ceas NTP cu date meteo de la senzor DHT22 pe afisaj led multiplexat (catod comun)

    Am inceput testele pentru un ceas cu 6 tuburi VFD IV-11 primit de la dl.Janos Baricz, dar, desi montajul este intr-o cutie de lemn, cu geam de protectie, montajul este mult prea sensibil si greu de mutat, comparativ cu un afisaj LED multiplexat cu cateva rezistente pe un breadboard  😁

asa ca am trecut la un afisaj led multiplexat cu 4 digiti (cifre din 7 segmente si punct).

   M-am inspirat de articolul IV-18 Clock


unde se comanda un afisaj VFD IV-18, dupa cum spune si titlul. 

   Am pastrat registrele de deplasare, dar am inlocuit placa Arduino cu un ESP8266 pentru a avea un ceas cu informatii preluate de la un server NTP, la care sa am acces al reglaj din pagina de configurare locala. Dupa ce voi fi multumit de testele cu afisajul cu catod comun, voi modifica programul pentru ceasul cu tuburi VFD.

   Modificarile sunt minore, deoarece modul de comanda e multiplexat, asa ca pentru VFD, se dau comenzi HIGH atat la grila, cat si la digit, iar la afisajul led cu catod comun, se da comanda HIGH pe segment si LOW pe digit, respectiv LOW la segment si HIGH la digit, la afiajul led cu anod comun.

   Pentru inceput am conceput o schema de baza, dupa care dl. Georgel mi-a redesenat-o concepand si un cablaj, dupa care mi l-a realizand si fizic:

   Aceasta versiune de cablaj este una de test universala, nefiind cablajul final al viitorului ceas, dar ma ajuta mult la teste de functionare de lunga durata, din care reies mici erori de program.

   Pentru moment, nu am pus modul RTC, ora fiind luata doar de la la server NTP prin intermediul retelei locale Wi-Fi, nici fotorezistenta nu a fost montata... 


   Bun, eu am trecut la teste de durata pe un afisaj  LFD080AAG-103-01 cu catod comun,
la care am inseriat rezistente de 220Ω cu segmentele A.G si cu punctul (DP) pe iesirile registrelor de deplasare notate cu A..G si DP, respectiv iesirea 0 la DIG4, 1 la DIG3, 2 la DIG2 si 3 la DIG1.

   Am scris, initial, un program simplu, adaptat din cel prezentat in articolul IV-18 Clock si modul de functionare se vede in filmuletele
   O versiune de program, care include modul de prezentare in format de 12 ore sau 24 ore, masurare temperatura si umiditate relativa aer, este clock_7segled_cc_2_12h_v1.ino.
   Am rescris programul pentru a avea o pagina web de configurare, intai doar una foarte simpla de schimbare ora vara/iarna (sketch: clock_7segled_cc_2_12h_w1.ino)
 Am adaugat o pagina web  de configurare mai complexa, 
din care pot configura ora de vara/iarna (DST), fusul orar si un buton de reimprospatare ora.
   Pe afisaj regasim:
- ora cu "secunde animate". in format de 24 ore
- data (ziua si luna)
- anul
- ora cu "secunde animate". in format de 12 ore
- temperatura
- umiditatea relativa
   Programul clock_7segled_cc_2_12h_w2a.ino are implicat si modul de configurare initiala a retelei Wi-Fi (WiFimanager, despre care am scris in articolul Configurare usoara conectare la retea Wi-Fi pentru microcontrolerele ESP8266/ESP32). 
Configurarea orei de vara/iarna si fusul orar au fost prezentate in articolul Ceas NTP cu date meteo de la senzor DHT22 pe afisaj VFD (Datecs DPD-201)
   Ultima versiune se vede in filmuletele:


sâmbătă, 19 septembrie 2015

Termostat cu afisaj LED (4)

    In articolul precedent am realizat un termostat, care foloseste un senzor de temperatura DS18B20, iar afisarea se facea pe un afisaj cu leduri cu anod comun din 4 cifre, care avea punctele putin diferit (exista unele ppuse special pentru secunde), de data asta am pus un afisaj cu leduri avand catod comun si sistemul de virgule (puncte) clasic.
    Afisajul se numeste LFD080AAG-103 si a fost achizitionat de la TME. El are inaltimea cifrelor de 20mm (0.8") si culoarea segmentelor este verde.
   Pozitionarea pinilor, cifrelor si schema interna sunt:
 


asa ca am modificat schema anteriora, care devine:
   Am modificat si sketch-ul si l-am mai "curatat", el fiind 4dig7segm_ac_18b20_thermostat_ver4m7.ino. Un releu, pentru comanda unei centrale sau sistem de racire, se poate conecta la iesirea A5 (led-ul rosu).
   Situatiile care se gasesc pe ecran sunt:
- indiare temperatura curenta:
- temperatura dorita:
- histerezis temperatura (cu cat poate scadea temperatura fata de cea dorita):
 
- tip termostat (sistem de incalzire)
- tip termostat (sistem racire)
- timpul in secunde dintre citirile senzorului de temperatura (in timpul accesarii datelor de la senzorul DS18B20 apare o scurta stingere a afisajului):
   Am facut 2 filmulete:
- termostat si pentru temperaturi negative cu Arduino (7)
- Arduino thermostat for negative and positive temperature (4)
   Deoarece am vrut sa fie usor de schimbat pentru afisaje cu anod comun sau catod comun, clasice, avem doar mici modificari in sketch:
- pentru afisaj cu catod comun:
- pentru afisaj cu anod comun: