marți, 30 octombrie 2018

Ceas RTC cu reglaj si termometru in 2 zone

   Pentru un ceas cu reglaj si afisare temperaturi pentru 2 zone, una fiind temperatura unei camere (rezolutie mare) si una pentru temperatura tur incalzire centrala (rezolutie redusa), am folosit informatiile din articolul Arduino Digital Clock & Thermometer.
   Schema mea este
   Testele au fost facute de Bogdan Argatu, dupa cum se vede in filmuletul clock with 2 thermometers
 si s-a folosit sketch-ul clock_2ds18b20.ino.
    Alte poze de la montajul realizat de Bogdan:

duminică, 28 octombrie 2018

Termostat simplu

   Desi pe parcursul anilor am prezentat diverse modele de termostate, pe diferse afisaje, dupa o discutie cu Tom, am zis sa il ajut sa-si faca un termostat simplu pentru pompa de recirculare a centralei de incalzire pe lemne, asa ca am facut o schema simpla:
unde se foloseste o placa Arduino Uno, dar merge fara modificari si Nano, Micro Pro, Pro Mini, etc. Ca senzor de temperatura e folosit un DS18B20, iar ca parte de comanda cu releu de 5V comandat de un tranzistor (bineinteles ca se poate pune si un releu de 12V, cu alimentarea dintr-o sursa separata sau modul de 5V, dar comenzile sunt inversate, ori se schimba contactele ori se schimba in program (sketch) HIGH cu LOW si LOW cu HIGH... In schema mai apar 2 butoane, care permit cresterea, respectiv scaderea valorii de prag cu cate un grad Celsius (oricum avem si un histerezis de 1 grad Celsius). Valorile sunt memorate in EEPROM-ul microntrolerului de pe placa Arduino.
    Programul (sketch-ul) folosit este DS18B20_thermostat.ino si permite alimentarea pompei la temperaturi mai mari decat cea dorita
respectiv oprirea la scaderea temperaturii
   Dupa cum se observa, Tom si-a modificat modul de afisare fata de ce am eu in sketch, ceea ce e indicat sa faceti si voi, ca de aia e Arduino, sa poti modifica usor prin el... urmariti filmuletul facut de el, Termostat cu Arduino
PS: Daca aveti nevoie de montaje si automatizari, apelati cu incredere la Tom...

Afisaj cu cristale lichide KTM-S1201 (2)

   In articolul Afisaj cu cristale lichide KTM-S1201 am realizat, dupa ce mi-am dat seama cum se comanda, un ceas cu reglaj din encoder, avand si un temometu si higrometru cu datele ofertie de la un DHT22 (AM2302). De data asta, am modificat putin programul sa am un ceas cu reglaj din 2 (3 butoane), un termometru cu date oferite de un senzor DS18B20 si un voltmetru de curent continuu pana la 20V. Afisajul a fost primit de la dl. Baricz János si dansul voia si aceasta a doua versiune de ceas, asa ca mi-am facut timp sa revad programul (sketch-ul) initial si sa-l (re)inteleg.
   Schema de conectare a afisajului nu difera de schema anterioara, doar am scos encoderul punand butoane fara retinere (2 pentru MENIU si PLUS sau MINUS, respectiv 3 pentru MENIU, PLUS si MINUS), am scos senzorul de temperatura si umiditate DHT22 (AM2302) si am pus un senzor digital de temperatura DS18B20, apoi am adaugat un divizor rezistiv pentru a putea masura tensiunea continua pana la 20V.
   De data trecuta am realizat o placuta adaptoare ce are semireglabilul de contrast pe ea, schema ei fiind
   Ceasul este indicat cu ora, minute si secunde, apoi este indicata temperatura si tensiunea, ca si la ceasul anterior:
   Nu am avut la indemana 2 butoane fara retinere, in momentul realizarii celor doua filmulete, dar ar trebui sa fie acelasi comportament pe partea de reglaj data si ora, cand folosim programul KTMS1201_RTC_18B20_voltmeter.ino
ceas cu reglaj, termometru si voltmetru pe afisaj LCD KTM-S1201
clock with adjust, thermometer & voltmeter on KTM-S1201 lcd display
  Pentru a se compila sketch-ul trebuie pus in subdirectorul programului si fisierul KTMS1201.h
PS: am gasit si 2 butoane fara retinere si am consata ca nu trebuie si al 3-lea, deoarece se poate schimba rapid valoarea... dupa cum se vede in filmuletele de mai jos:
ceas cu reglaj, termometru si voltmetru pe afisaj LCD KTM-S1201 (2)
clock with adjust, thermometer & voltmeter on KTM-S1201 lcd display (2)


marți, 23 octombrie 2018

Ceas matriceal cu alarma, termometru si higrometru (3)

english version

articolul initial


    Dupa ce am pus ceasul la teste, am constatat ca modul de afisare la temperaturii este deranjant datorita literei C foarte mici, am rescris partea de afisare a acesteai, in sensul ca pentru temperaturi pozitive, mai mari de 10 grade Celsius, am scos semnul de plus, iar la cele sub -10 grade Celsius, care sunt extrem de rare in casa 😇 am lasat C-ul ingust.
   Acum modurile de afisare ale temperaturii sunt:
- temperaturi mai mari de 10 grade Celsius

- temperaturi pozitive mai mici de 10 grade Celsius
- temperaturi negativa mai mari de -10 grade Celsius
- temperaturi negative sub -10 grade Celsius
restul afisarilor sunt normale:
- ceas
- umiditate relativa
   In filmuletele
ceas matriceal cu alarma, termometru si higrometru (3)
matrix mini clock with alarm, thermometer and hygrometer (3)
se vede modul de afisare (timpul de afisare normal al ceasului e mai scurt, iar pentru temperatura si umiditate mai lung, decat la functionarea normala), dar am refacut filmarile si am si timpii normali;
- ceas matriceal cu alarma, termometru si higrometru (3a)
- matrix mini clock with alarm, thermometer and hygrometer (3a)
PS: sketch-ul este mini_clock_1_3_c.ino !

duminică, 21 octombrie 2018

Ceas matriceal cu alarma, termometru si higrometru (2)

   In completarea articolului anterior, unde am implementat si afisarea temperaturii si umiditatii relative din aer la ceasul cu alarma, de data asta, am modificat sa avem informatia despre temperatura cu virgula:
    Punctele portocalii sunt puse (ulterior) pentru usurinta afisarii, iar caracterele sunt cu galben, initial nu le pusesem la temperatura:
- temperatura negativa cu 2 cifre inainte de virgula:
- temperatura negativa cu o cifra inainte de virgula:
- temperatura pozitiva cu o cifra inainte de virgula:
- temperatura pozitiva cu 2 cifre inainte de virgula:
   Programul, care realizeaza noul mod de afisare al temperaturii, este mini_clock_1_3_b.ino.
   Puteti vedea cum se vad informatiile pe ecranul matricial in filmuletele:
ceas matriceal cu alarma, termometru si higrometru (2)
matrix mini clock with alarm, thermometer and hygrometer (2)



Ceas matriceal cu alarma, termometru si higrometru

   Am gasit un pic de timp pentru a completa proiectul de ceas matricial cu alarma, cu partea de termometru si higrometru. Senzorul folosit de mine este AM2302 (DHT22), dar se poate folosi si versiunea mai putin precisa, DHT11.
   Schema nu difera mult fata de cea din articolul precedent:
   Pentru inceput a trebuit sa simulez modul de afisare a temperaturii si umidittii si am realizat ca nu am caractere pentru procent, semnele +, -, semnul de grad Celsius, asa ca am studiat cum sunt create cele din exemplul functional si am modificat si eu fisierul in care sunt definite. Am constata ca fisierul se numeste FontLEDClock.h si se gaseste in subdirectorul libraries din programul Arduino IDE. pentru a nu aparea probleme am creat si eu un fisier cu nume putin diferit, FontLEDClock1.h si l-am pus in acelasi subdirector.
   Am ales primele 3 litere, scrii intr-un fisier numerele in hexazecimal, corespondenta lor in binar (folosind utilitarul de la https://www.binaryhexconverter.com/hex-to-binary-converter), apoi am desenat corespondenta. Am constatat ca am caractere scrise de sus in jos, si in oglinda, sa zic asa.

   Am desenat si caracterele de aveam nevoie, am trecut numerele in binar si corecpondenta lor in hexazecimal (folosind utilitarul de la https://www.binaryhexconverter.com/binary-to-hex-converter)
   Fisierul meu are modificate doar liniile unor caractere de care nu am nevoie in mod uzual:
    Revenind la chestii utile, in prima faza am simulat umiditatea si temperatura, atat pentru valori negativ, cat si pozitive (numere intregi, fara virgula):
- umiditate dintr-o cifra:
- umiditate din 2 cifre:
- temperatura negativa din 2 cifre:
- temperatura negativa dintr-o cifra:
- temperatura pozitiva dintr-o cifra:
- temperatura din 2 cifre:

    A urmat, firesc, implementarea in programul ceasului cu alarma si reglaj, care devine mini_clock_1_3.ino, dupa cum se vede si in filmuletele:



sâmbătă, 20 octombrie 2018

Sistem de alimentare separata consumatori in masina

    Pentru a alimenta, in masina, anumiti consumatori fara a trebui sa punem mereu contactul, la solicitarea lui Tom, am scris un program ce foloseste o placa Arduino (am desenat Uno ca e mai usor de inteles, dar s-a folosit la teste Nano). Sistemul este alimentat permanent de la baterie, are un buton de comanda, care daca se apasa scurt face ca releul sa fie alimenta si deci si consumatorul. Daca se apasa lung butonul (minim 3 secunde, cum am eu in program), se decupleaz[ consumatorul. De asemenea, avem un divizor rezistiv care, daca e alimentat si bateria nu e prea descarcata, Arduino alimenteaza bobina releului si, implicit, consumatorul este alimentat prin contactul releului. Daca tensiunea pe divizor dispare (contactul este luat), Arduino da comanda intarziata cu 5 secunde de decuplare consumator. Daca se apasa butonul lung, cand este contact pus, alimentarea consumatorului se face ori prin apasarea butonului ori prin luarea contactului si repunerea lui.

   Tom a realizat si teste pe un montaj provizoriu, realizand si filmuletul alimentare comandata pentru anumite "accesorii" in care se foloseste programul (sketch-ul) aux_power_control.ino:
   In curand voi posta un alt filmulet, cu sistemul montat pe masina de catre Tom.

Afisaj lcd cu 6 cifre din 7 segmente cu driver HT1621 controlat de Arduino

   Am aflat de acest afisaj de la Vlad Gheorghe, asa ca mi-am comandat si eu unul de pe Gearbest.
  Am cautat pe net si am dat de cateva articole interesante din care m-am si inspirat;
https://www.instructables.com/id/How-to-Wire-the-6-Digit-7-Segment-24-Inch-Ht1621-L/
http://www.14core.com/wiring-the-6-digit-7-segment-2-4-inch-ht1621-lcd-display-module-on-microcontroller/
http://arduinolearning.com/code/ht1621-6-digit-7-segment-display-example.php
https://macduino.blogspot.com/2015/02/HT1621.html
   In toate testele am folosit aceeasi schema, pentru a nu face modificari in montaj, fiind cea prezentata in primele 2 articile (care sunt aceleasi, de fapt):
    facand mici modificari in programul gasit in primele articole, am afisaj, initial un ceas si un termometru:
test functionare afisaj lcd cu 6 cifre (HT1621)
HT1621 6 digit 7 segment LCD display test
    Dupa ce am rezolvat aprinderea (relativ) usoara a virgulei, am scris un programior (sketch) pentru a arata aleator ora si apoi o temperatura si cu cifra dupa virgula, dupa cum se vede si in filmuletele;
test 2 functionare afisaj lcd cu 6 cifre (HT1621)
HT1621 6 digit 7 segment LCD display - test 2
   Programul pentru prima versiune este HT1621_test.ino, iar cel optimizat este HT1621_test4.ino.
   Primul program prezinta cateva secunde ora 23:45, cu clipirea secundelor:
apoi temperatura de 17 grade Celsius:
    Cel de-al doilea alege aleator ora si minutele ceasului, indicand-o cateva secunde, pastrandu-se partea de animatie la semnul dintre secunde:
apoi alege aleator o temperatura, ce poate fi negativa sau pozitiva: