luni, 21 septembrie 2015

Termostat cu afisaj LED (5)

   Fata de termostatul din articolul precedent unde folosisem un senzor digital DS18B20, acum am (re)folosit un LM35 in configuratia extinsa, pentru a putea masura si temperaturi negative. Schema folosita este:
   Am folosit partea principala din sketch-ul anterior, dar adaptat pentru LM35 si, in plus, pot face corectie la masurarea temperaturii, pe langa reglajul pragului de temperatura, histerezis temperatura, tip termostat (sistem incalzire sau racire) si timp intre masuratori.
   Pe ecran, am urmatoarele indicatii:
- temperatura curenta:
- prag temperatura:
- histerezis temperatura:
- termostat pentru racire
- termostat pentru incalzire
- interval de timp intre masuratori:
- procent corectie temperatura la citire folosind si multiplexare:
 
   Folosind sketch-ul 4dig7segm_cc_LM35_thermostat_ver4m8.ino am facut 2 filmulete:

  Pentru un afisaj cu anod comun se foloseste sketch-ul 4dig7segm_ca_LM35_thermostat_ver4m8.ino, care difera foarte putin de sketch-ul anterior:
fata de:


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:

miercuri, 16 septembrie 2015

Termostat cu afisaj LED (3)

   Fata de articolul anterior unde am folosit ca senzor de temperatura unul analogic, de tipul LM35, acum am folosit unul digital DS18B20:
schema devine:
   Sketch-ul modificat pentru DS18B20, in loc de LM35 este 18B20_termostat_eeprom_ver4m4.ino, iar in filmuletul termostat si pentru temperaturi negative cu Arduino (4)
17.09.2015
   Am adaugat optiunea de alegere a tipului de termostat, adica pentru incalzire sau racire, conform sketch-ului 18B20_termostat_eeprom_ver4m5.ino, dupa cum se vede in filmuletul termostat si pentru temperaturi negative cu Arduino (5)
   In meniu, dupa reglaj prag temperatura si histerezis, apar optiunile de termostat:
- sistem incalzire
- sistem racire
   Deoarece in timpul citirii temperaturii transmise de senzorul digital DS18B20 apare o stingere scurta a afisajului, care poate deranja, se poate creste timpul dintre citiri; acum pentru teste este cam 13 secunde (5000 de afisari multiplexate, deci cam 384 pe secunda, atat am determinat eu prim mai multe masuratori...), daca doriti sa se faca citrea la 3 secunde variabila numere trebuie sa aiba valoarea de 1150 (= 3 x 384).
18.09.2015
   Am zis sa pot regla si timpul dintre citiri, asa ca in meniu am mai pus si reglajul acestui timp, la 10 secunde aratand asa:
   Sketch-ul modificat este 18B20_termostat_eeprom_ver4m6.ino, iar in filmuletul termostat si pentru temperaturi negative cu Arduino (6) se vede modul de reglaj:
  

marți, 15 septembrie 2015

Termostat cu afisaj LED (2)

   Intr-un articol din mai 2015 am prezentat un termostat in care foloseam un senzor de temperatura LM35 si un afisaj cu 4 cifre led din 7 segmente cu catod comun (cod KW4-563ASA), o placa de dezvoltare Arduino si 3 butoane pentru selectie valoare (valori) prag, cu memorare sau nu in EEPROM-ul microntrolerului (in functie de sketch-ul / programul folosit):
   Am primit un mail de la un cititor al blogului (din pacate am sters emailul), in care mi se spunea ca la temperaturi negative, pe afisaj apar ciudatenii... deoarece eu il gandisem ca termostat pentru temperaturi pozitive, pentru a comanda o centrala sau un radiator.. 
   Am folosit alt afisaj, care are diferit sistemul punctelor, deoarece e facut sa arate mai bine si pentru ceas (nu se mai aprinde primul punct zecimal ci al doilea, iar in loc de al doilea se aprind "secundele", acest afisaj are codul CL5642BH-33 si despre el gasiti informatii suficiente pe net.
si primele teste facute sunt acelea prezentate in articolul Afisaje LED cu 7 segmente si.. Arduino si, mai ales, in Afisaje LED cu 7 segmente si.. Arduino (II)
obtinand:
 
 
 
   Revenind la termostat, am realizat schema si am modificat initial sketch-ul fara memorare date in EEPROM (sketch-ul modificat este LM35_termostat_ver4m1.ino) incat sa am indicatii corecte:
- temperatura pozitiva, mai mare de 100C
- temperatura pozitiva, mai mica de 100C
- temperatura de 00C
- temperatura negativa, mai mare de -100C
- temperatura negativa, mai mica de -100C
- prag temperatura pozitiva, mai mare de 100C
- prag temperatura pozitiva, mai mic de 100C
- prag la 00C
- prag temperatura negativa, mai mare de -100C
- prag temperatura negativa, mai mic de -100C
- histerezis temperatura
   Pentru a fi mai usor de inteles modul de functionare si reglaj, am facut filmuletul termostat si pentru temperaturi negative cu Arduino
   Dupa asta, am modificat si sketch-ul cu memorare date in EEPROM (sketch-ul este LM35_termostat_eeprom_ver4m2.ino) si am facut filmuletul termostat si pentru temperaturi negative cu Arduino (2)
   Am realizat ca LM35 este montat in configuratia de baza, care masoara doar temperaturi pozitive, asa ca am modificat schema, dupa cum prezentasem si intr-un articol mai vechi:
   Schema completa devine:
   Dupa cum se observa, am mutat tasta de "-" de la A1 la A5, renuntand la LED-ul de supraincalzire, iar la A1 se masoara caderea de tensiune de pe cele 2 diode, modificand totodata si sketch-ul, care devine LM35_termostat_eeprom_ver4m3.ino.
   Am facut si cateva poze, cu montajul modificat: