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)


luni, 20 noiembrie 2017

Step-up 1,5V-5V la 9V

Cerinta consta in obtinerea unei tensiuni de 9V/300mA cit mai stabila avind la intrare intre 0,8V si 5V ce sint furnizati de un mini-panou solar. Nu am vrut sa inventez nici o roata, asa ca l-am pus pe google la treaba.
M-am oprit asupra articolului de aici, si mai exact la schema alaturata:


Desi pare relativ stufoasa, in realitate e foarte usor de realizat. avind ca principla avantaj stabilitatea. Din experienta stiam ca acest tip de oscilator are un curent de mers in gol minim, si este stabil pentru plaja mare a tensiunii de intrare 
Bobina are 25 spire CUEm de 0,4mm pe un tor recuperat de la un bec economic cu gaz. Pentru probe l-am realizat pe o placa de test. Componentele sint recuperate de pe diverse placi. 
Ansamblul R1+VR1 se poate inlocui cu un rezistor de 470K situatie in care rezulta o oscilatie de 60KHz.
Daca vreti mai mult de 9V va jucati din R4, R5. (mie mi s-a cerut 9V). Micsorarea lui R4 scade tensiunea, micsorarea lui R5 creste. Deci daca se doreste 12V in loc de 9V inlocuiti R5 cu un potentiometru de 10K, sau daca e nevoie de o plaja de reglaj mai mare, utilizati un potentiometru de 50K, si in felul, asta se duce de la 5V la 30V.
Pentru a reduce zgomotul de pe iesire la curenti mari, C4 = 470micro in paralel cu 0,1nF.

citeva poze de la teste:




 M-am jucat si cu o baterie de 1,5V, care la mers in gol a rezistat cca 30 ore, dupa care a mai reusit sa tina testerul la 4 masuratori. Mai se poate vedea consumul testerului.si al aparatului de masura



sâmbătă, 18 noiembrie 2017

Termostat/higrostat remote pe 433MHz

Pornind de la articolul anterior am adaptat termostatul lui Nicu Florica.
De data asta in locul lui Arduino mini am folosit o clona de Arduino UNO si un shield LCD 16x2 cu butoane. Initial am testat LCD-ul ca sa vad daca am aceleasi valori la apasarea tastelor.
Studiind codul am vazut ca Nicu folosea D11 pentru o iesire de releu
// define pins for relay or leds
#define temppeste 11
#define umidpeste 12

Si ca sa nu modific biblioteca Virtualware am mutat iesirea de releu pe D2, iar la D11 am legat pinul Data de la receptor.
// define pins for relay or leds
#define temppeste 2
#define umidpeste 12

Codul adaptat este pe github. Detalii despre functionarea termostatului gasiti la Nicu Florica pe blog.
O poza de la teste:

Emitatorul  (acelasi din testele anterioare) este in camera vecina in spatele peretelui la cca 12m.
Update:
La emitator am adaugat un display 7 segmente cu TM1637 ca sa am  afisare locala, si am folosit de data asta  un DHT22.



Remote DHT11 pe 433MHz

S-a ivit necesitatea  transmiterii temperaturii si umiditatii la o distanta de cca 10m fara a avea posibilitatea de pozat cabluri si gaurit pereti.
In acest sens am testat 2 perechi de emitator receptor pe 433MHz ca cele de mai jos:

Pentru teste am abuzat de generozitatea lui Google si m-am oprit la proiectul de aici.
Nu am avut disponibil acel display asa ca am modificat codul pentru un OLED cu I2C.
Concluzia este ca prima pereche testata a dat rezultate bune pina la cca 15m cu antenele din imagine, iar a doua pereche pina la cca 10m printr-un perete de caramida . Antenele le-am facut dintr-un fir recuperat de la un cablu utp cu care am bobinat 15 spire pe un pix de 7mm  grosime.
Pozele cu testele pe birou, fara antene, sint mai jos:
Afisarea nu este foarte eleganta deoarece in final cind voi face si partea de reglare temperatura si umiditate, voi folosi alt display, aici am vrut doar sa ma imprietenesc cu modul de comunicare. Receptorul este pe un Arduino mini, iar transmiterul pe un Arduino nano



miercuri, 8 noiembrie 2017

Ardutester

Inspirat de o postare pe facebook  a lui Nicu si la rugaciunea unui amic ce dorea un tester super ieftin pentru identificat rapid tranzistori, am facut  probe la testerul cu arduino aparut pe un forum rusesc. 
Codul testat de mine este de aici la care eu am modificat pentru un LCD 16x2 cu I2C , iar codul adaptat de mine aici.
Firele arata cam asa:
Schema este ca mai jos:

Intii am incercat sa gasesc cite 3 rezistente de 680Ohm si 470KOhm cit mai apropiate ca valoare, dupa care am cautat liniile :

#define R_L_VAL 6800 // standard value 680 Ohm, multiplied by 10 for 0.1 Ohm resolution
//#define R_L_VAL 6620 // this will be define a 662 Ohm
#define R_H_VAL 47000 // standard value 470000 Ohm, multiplied by 10, divided by 100
//#define R_H_VAL 49500 // this will be define a 495000 Ohm, divided by 100

iar aici inlocuit cu valorile folosite de mine (662 si 495K).

Am procedat apoi la teste comparind ce arata multimetrul, testerul chinezesc ce se vede in poza si testerul cu arduino preluat de pe forumul rusesc.

Concluzii :
  • rezistentele masurate sint OK pina la valori apropiate de 5 Ohm, (sub 5 indica eronat)
  • tranzistorii si diodele testate s-au identificat corect
  • inductantele dau valori diferite dar foarte apropiate
  • condensatorii ceramici sint ok doar intre 2-3 sau 1-2, pe 1-3 e diferita valoara dar foarte apropiata
  • condensatorii electrolitici dau valori aleatorii indiferent intre care pini masor (am avut grija sa-i descarc inainte de fiecare masurare)





Tot pe forum am mai gasit o alta versiune ce foloseste display nokia5110 si display oled I2C
Am testat doar versiunea cu display Nokia in speranta ca va avea simboluri grafice. La versiune pe oled am rasfoit doar codul si am observat ca e similar cu nokia 5110 avind doar adaptarile specifice oled-ului.
Dar afisarea este tot in mod text, iar la partea de limba engleza nu afiseaza corect simbolul omega. Insa lipsind simbolurile grafice am renuntat repede. Partea de afisare se poate remedia folosind bibliotecile ce se gasesc in arhiva.

Amplificator ultra simplu cu MOS 40W/8Ohm la 2x30V

 Am început construcția unui amplificator cu tranzistori MOS după o schemă proiectată de Ionel Epure , care se împacă foarte bine cu boxele ...