duminică, 7 ianuarie 2018

Modificare sursa ATX pentru incarcare acumulatori auto

Am modificat o sursa ATX ceva mai serioasa ce foloseste la comanda circuitul 2005B, cu scopul de a o transforma in incarcator auto. Google m-a ajutat sa gasesc data sheet-ul circuitului si de aici a fost relativ simplu.
Initial am masurat tensiunile de pe pinii 3, 4 si 5.
Am folosit o placuta de test pe care am lipit 2 potentiometri multitur la care capetele le-am legat intre masa si +5V de pe firul violet (aceasta tensiune este permanenta pe sursa), dupa care am reglat 3,3V si respectiv 4V.
Pe cablajul sursei am sectionat traseele de la pinii 3, 4, 5 si am legat +5V de la firul violet la pinul4, apoi 3,3V la pinul 3 si 4V la pinul 5, in felul acesta am pacalit sursa ca are toate tensiunile corespunzatoare.
Am scos condensatorul de 2200/16 de pe bara de 12V fir galben si l-am pus in locul celui de pe bara de 5V fir rosu, iar pe bara de 12V am pus un condensator de 2200/25V. In rest nu am modificat nimic.
Pinul 2 al lui 2005B este responsabil cu reglajul tensiunilor de iesire. Dupa ce am identificat rezistoarele de placa  corespunzatoare divizorului de pe pinul 2 am constatat ca suma rezistentelor este de cca 10K, asa ca am luat un potentiometru de 50K la care mijlocul l-am dus la pin 2 un capat la masa si un capat la firul rosu +5V, Am inceput sa testez sa vad intre ce limite se poate regla tensiunea de iesire, si a rezultat o variatie stabila intre 9 si 19V. Astfel pe capatul legat la 5V am inseriat un rezistor de 5,6K, iar pe capatul de la masa 2,2K. Rezistentele din divizorul original nu au fost scoate afara, potentiometrul venind suprapus peste acestea.
Protectia la scurtcircuit o face pinul 6,  caz in care la disparitia tensiunilor blocheaza oscilatiile de pe tranzistorii de putere.
Initial am testat incarcarea unei baterii auto cu un indicator tensiune/curent cu 7 segmente chinezesc, care a cedat foarte repede. Asa ca am facut indicatorul cu arduino si un oled I2C cu rezolutia de 128/32, caruia ulterior i-am adaugat si functia de deconectare automata .
In paralel cu contactul NO al releului am mai pus un push buton care apasat porneste sursa si se regleaza tensiunea de iesire/incarcare la 13,9V, la eliberarea butonului sursa intra pe standby., insa arduino ramine alimentat.
Acum se poate cupla bateria, arduino va detecta tensiunea acesteia, si daca este mai mica de 13,8V va cupla releul care de fapt pune la masa firul verde, si astfel poneste sursa. Cind bateria va fi incarcata tensiune la ajunge la 13,8V si va decupla releul, situatie in care arduino monitorizeaza bateria.
Teste am facut deocamdata cu un acumulator mai mic ca sa pot vedea repede cum se comporta.

Aici se poate vedea placuta cu semireglabilii ccu care am pacalit-o.
Asta este sursa ce am modificat-o
Tensiunea minima rezultata:
Tensiunea maxima:
Legaturile cu arduino:
Iar acum la lucru:


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



Stabilizator reglabil 14V/1A de la 50V-300V cu IR2153

 Cu mult timp în urma am testat un stabilizator în comutație, reglabil cu IR2153 conform notei de aplicație din datasheet. Am reluat din nou...