vineri, 22 decembrie 2017

Indicator tensiune/curent/regulator temperatura radiator cu arduino afisare pe TFT 1,8"

Necesitatea a venit de la existenta unei surse cu L200 cu reglaj tensiune/curent, ce nu avea nici un fel de indicator la care trebuia mereu sa folosesc mereu doua instrumente de masura. (mai ales cind voiam sa incarc sau sa verific acumulatori  atipici).
Astfel m-am orientat la ce am gasit prin sertar, si am folosit un arduino pro mini cu un TFT de 1,8" cu driver ST7735.
La partea de masurare m-am inspirat de la Nicu Florica, iar teoria este foarte pe larg explicata de el si nu mai revin asupra ei.
Ca traductor de curent am folosit o rezistenta SMD R050 preluata de pe un modul chinezesc decedat.
Rezistentele din divizor(68K si 1K) au fost masurate inainte de utilizare pentru a putea introduce valorile in cod.
Initial indicatia tensiunii era constant mai mica cu 0,2V si a curentului cu x2 mai mare. Probabil datorita tensiunii de referinta a lui arduino pro mini care nu are pin pentru Vref scos in exterior, acesta fiind o varianta cu un circuit integrat foarte mic si mi-a fost foarte dificil s-o masor corect. 
Acesta este motivul pentru care in cod apar liniile:

tft.println(tensiune+.2);
tft.println(current/2);

In plus am mai adaugat si un indicator de temperatura cu LM35 ca sa pornesc ventilatia numai cind este necesar.
Deocamdata l-am realizat pe o placa de test, urmind sa-i fac si un cablaj imprimat.
Partea de legaturi electrice este foarte simpla si se poate deduce foarte usor din cod.
Ce mi-a iesit se poate vedea mai jos:
Cablajul sursei impreuna cu transformatorul sint inghesuite intro carcasa de sursa PC. Pentru reglaj folosesc potentiometri multitur, ce asigura o ajustare foarte fina.
Transformatorul este de la UPS defect si are in secundar 2x8,5V/CUEm 2mm, si 1x17V CUEm0,7mm (aceasta din urma am folosit-o pentru alimentarea lui arduino si a ventilatorului). 12V sint scosi dintr-un LM317, care alimenteaza apoi un 7805. Nu este necesar radiator deoarece in situatia mea se mentin destul de reci, caldura abia perceptibila la degete.

 Led-ul de culoare rosie indica pornirea ventilatorului.
 O comparatie fata de un aparat de masura:

Pinout-ul lui arduino si a TFT-ului folosit:
similar cu:






duminică, 10 decembrie 2017

VU-metru analogic pe arduino

La sugestia lui Nicu pornind de la un link timis pe facebook am testat un VU-metru analogic.
Varianta mono pe OLED
Aici am izolat resetul TFT-ului care era legat la A4 si i-am tras o sirma la resetul lui Arduino.
Semnalele analogice sint pe A4 si A5.

sâmbătă, 9 decembrie 2017

Priza WIFI cu ESP8266 pe pagina Cayenne

Pornind de la articolul lui Nicu, am refacut testul lui insa folosind un alt model de placa dar care are la baza tot ESP8266-12. Mai exact placa mea arata ca cea de mai jos:
Cu placa in aceasta forma este dificil de lucrat mai ales ca are pinii la 2mm distanta, asa ca am folosit o placa adaptoare care are si rezistentele pe ea:
Asamblata iese asa:

Pentru programare este necesara schema de mai jos si aici se poate vedea rolul rezistentelor de pe placa adaptoare;
Modulul l-am alimentat separat dintr-o sursa externa reglata la 3,3V, iar pentru programare am folosit un adaptor obisnuit USB-serial unde TX-ul l-am dus la RX-ul lui ESP si RX-ul USB-ului la TX-ul lui ESP fara nici un convertor de nivel. Detalii aici
Pentru a nu esua programarea, se tin apasate ambele butoane (reset si flash), se conecteaza alimentarea de 3,3V dupa care intii se elibereaza reset, apoi flash, apoi upload.
Placa folosita de Nicu are probabil alta schema, motiv pentru care a reusit s-o programeze cu led-ul conectat la GPIO0. De fapt se poate programa cu ledul conectat la GPIO0 insa la reconectarea alimentarii intra automat in mod programare.
Am pornit cu testul lui la care am schimbat pinul LED-ului, si a iesit ceva ca mai jos:
 aici este testul initial cind am pus TX si RX prin convertor de nivel.
Dupa citeva zile de teste am observat ca se comporta foarte bine de pe PC. De pe telefon (Android) aplicatia are o oarece intirziiere. Rezolvarea consta in inchiderea fortata si repornirea ei. De fapt valorile temperaturii si umiditatii pareau sa faca refresh imediat insa actionarea butonului era intirziiata.
Astfel am trecut la ceea ce voiam de fapt sa fac: comanda remote a unei prize de 220Vca.
Pentru asta am creat un proiect nou ce urma sa aiba doar un singur buton:
Pentru asta in partea stinga sus m-am dus la add new-device/widget
si aici am ales custom widgets
dupa care am ales button-ul
l-am configurat (vedeti in dreapta)
si in final am dat add widget
a rezultat butonul (aici apar 2 pentru ca aveam deja unul creat)
In caz ca nu s-au notat la crearea proiectului, informatiile necesare pentru cod, se pot afla de aici
Pentru moment m-a interesat actionarea remote doar a unei singure prize, insa modulul mai are pini disponibili. Pentru asta se poate adauga un buton nou pe un alt canal, iar in cod se adauga definitiile corespunzatoare acestuia.
Prototipul care este deja casetat intr-un jgheab OBO (prizele sint cele specifice fixarii pe jgheab) arata ca mai jos:
 Pentru a face 12V necesari releului initial am vrut sa pun un 7812, dar nu am reusit sa gasesc punga, si am utilizat un modul step-down 360. Transformatorul este 220/14 recuperat de pe undeva. 

 Pentru alimentarea cu 3,3V am folosit un Lm117-3,3 care functioneaza foarte rece: (spre final am repozitionat firele, dar nu mai am poza)


Fake ATX cu WT7520

Zilele astea am fost solicitat sa repar si apoi sa modific sursa de mai jos la tensiunea maxima ce o poate scoate. Cred ca e cea mai "...