sâmbătă, 23 septembrie 2017

Sursa 0-20V/3A comandata de arduino cu afisare pe OLED 128x32

Am refacut sursa din articolul anterior adaugind un al doilea AO, pentru ca in varianta initila reactia negativa nu functiona corespunzator, producind mici variatii ale tensiunii de iesire functie de consum. 
Asa ca primul AO se ocupa de furnizarea referintei, iar al doilea AO de stabilizare si reglaj tensiune.
Am gasit prin sertar un display OLEd cu rezolutie de 128/32 si am adaptat codul pentru a afisa pe acesta. 
Deocamdata am pastrat afisarea pasilor ca sa pot regla amplificarea primului AO. (La final voi afisa cind este scurt pe iesire, mai este A2 liber si voi monitoriza starea colectorului lui BC107 care se ocupa de preotectia la scurt.)
Reglajul porneste din 0V pina la 20V, iar pina la 3A tensiunea de iesire este constanta, dupa care BC107 blocheaza comanda.
Reglajul curentului de iesire nu m-a interesat in acest moment. (mai sint necesare inca 2 AO, si e posibil sa nu-mi incapa cablajul in cutia ce urmeaza sa soseasca).
Schema a devenit:
Mai jos sint citeva imagini de la teste:

 Temperatura radiatorului fara ventilatie nu a depasit 40 grade la 2,5A, si 3,2V cu 28V pe intrarea in colectorul lui 2N3055 (IPRS Baneasa).


In curind si cablajul imprimat, dar astept carcasa ca sa-l pot adapta la gaurile de fixare ale cutiei.

miercuri, 20 septembrie 2017

Sursa LM317 cu controlul digital al tensiunii

Dupa testele din articolele anterioare  am finalizat primul pas (reglajul digital al tensiunii de iesire) conform schemei de mai jos ( teoretic functioneaza pe orice varianta de sursa de laborator cu LM317): ceva similar cu modulul chinezesc

Pentru a se misca mai repede am mai adaugat 2 butoane pentru incrementare cu pas de 10, era foarte lung timpul de parcurgere de la minim la maxim. Pe display am mai afisat in partea de jos numarul de pasi pentru a regla reactia negativa de pe primul AO (detalii experimentate sint in link). Din semireglabilul de 10K de pe pinul ADJ al lui LM317 reglam tensiunea minima, in cazul meu am reusit s-o duc la 1,82V fara a suprasolicita tranzistorul de comanda  caruia nu i-am mai pus protectie. (Am incins 2 bucati si am topit 2 semiglabili multitur de 10K).
Tensiunea de -5V am facut-o conform schemei:
Asa cum am scris in articolul anterior rolul celui de-al doile AO este descris de Nicu Florica la el pe blog.
Im plus am adaugat 3 regulatoare: 7824 pentru AO, 7812 pentru ventilator, si 7805 pentru Arduino.
Transformatorul folosit este destul de generos si nu simte consumul suplimentar la  iesirea de 18Vca.
Eu am folosit un AO rusesc dublu K157YD2 care era disponibil in sertar, dar se poate folosi orice AO.
Codul este pe github.
Ca traductor de temperatura am folosit tot LM35.
Imagini din timpul testelor finale mai jos:
Aici am reglat reactia negativa
Radiatorul tranzistorului regulator este temporar ca sa nu se incinga accidental  la reglajul tensiunii minime.


 Aici are si consumator un bec auto de frina. Din cele 5 butoane (recuperate e la un copiator) sint folosite momentan doar 4. primele 2 + - din 10 in 10 pasi si urmatoarele + - cu pas ce 1. (Avem 8biti iar plaja de reglaj este de la 0 la 256, cu pas ce 60mV)
Tensiune minima. 
Pe radiatorul de AMD am lipit puntea redresoare (recuperata de la o sursa PC), cele trei stabilizatoare, si LM-ul 317. Aici am facut montajul in aer pentru erau prea multe fire de tras la placuta. In acest moment ventilatorul nu este alimentat pentru ca nu a fost nevoie desi aveam un consum de cca 12W pe becul de sarcina.
Diferenta de afisaj de TFT e din cauza tensiunii de 5V a lui Arduino, in cod este setata valoarea ce mi-o furniza  USB-ul laptopului.
 Tensiune maxima

luni, 18 septembrie 2017

Test LM317 comandat cu Arduino

In articolul anterior am testat comanda cu Arduino a unei surse cu tranzistori, dar m-am gindit si la fanii lui LM317 si am testat si comanda acestuia. Schema a devenit in acest caz urmatoarea:


Restul ramine ca in articolul anterior, din semireglabilul de 1Kohm din pinul de reglaj al lui LM317 se ajusteaza tensiunea minima, dar atentie sa nu intre in limitare BC107. In cazul testat rezistenta poate avea o valoare intre 120 si 180Ohm. La teste am obtinut o plaja de reglare de la  1,6V la 20V.
Tensiunea negativa de pe AO poate fi si de -3V, caz in care putem creste tensiunea pozitiva la 27V, situatie in care la iesire obtinem un maxim de 23,8V


20-sep-2017

Dupa ce am incercat sa fac teste cu un transformator am observat ca variaza tensiunea de iesire functie de consum in ambele variante si cea cu tranzistor simplu si cea cu LM317 datorita reactiei negative pe un lant prea lung. Asa ca am separat partea de referinta data de arduino de partea de stabilizator. Schema a devenit:
Detalii despre al doilea AO aveti pe blogul lui Nicu
O poza de la testele cu transformator:
-5V i-am scos ca aici obtinuti la capatul lui R3


duminică, 17 septembrie 2017

Test sursa 0-20V 3A comandata cu arduino

Am testat o sursa de tensiune comandata de Aduino si afisare pe TFT 1,44"
Schema de pina acum este:

Initial am testat varianta pe 16 biti ce oferea o rezolutie de 0,000076V/pas, iar la iesirea din AO pentru o amplificare de 3 rezulta 0,00023V/pas.
Din butoanele de pe D4 si D5 se regleaza tensiunea de iesire pas cu pas. La pas de 1 dureaza exagerat de mult sa parcurgi cei 65535 pasi.
Apoi am testat varianta clasica pe 8 biti adica 255 pasi. Aceasta ofera o rezolutie de 20mV/pas iar la iesirea di AO cu amplificare de 3 rezulta 60mV/pas. Aici s-a scurtat considerabil timpul de parcurgere pas cu pas de la 0 la 255.
Spre  final am ramas la aceasta veriune pe 8 biti care este un reglaj usor, iar precizia de 60mV/pas mi s-a parut deocamdata acceptabila.

Eu am folosit un Arduino micro alimentat la 5V, si un BA741 alimentat la +24V si -5V ( tensiune maxima de 30V pentru AO). Din semireglabilul de 4k7 se regleaza reactia.( la pasul 255 vom avea 5V pe intrarea cu + a AO, la iesire trebuie sa avem 15V. La pasul 127 com avea 2,5V deci iesirea trebuie sa fie 7,5V.
La teste  am crescut reactia negativa astfel incit la pasul 255 sa am la iesire 20V, pentru asta mi-au trebuit 28V pe colectorul tranzistorului regulator. Pasii se pot monitoriza cu serial monitorul lui Arduino IDE.
Valorile pasilor sint memorate imediat ce se efectueaza un reglaj din butoanele + sau -..
Ca senzor de tensiune/curent am folosit un modul chinezesc cu MAX471, care are o tensiune maxima de 25V si curent de 3A, asa ca rezistenta de limitare am ales-o la 0,33Ohm (asta am gasit intr-o cutie) ceea ce inseamna un curent de maxim 2A.

Se poate masura si adaptind varianta lui Nicu Florica  descrisa la el pe blog.

Urmeaza sa inlocuiesc butoanele cu un encoder, si sa-i fac un preset la tensiune si curent. In aceasta faza daca se doreste reglarea curentului maxim se poate pune in paralel cu rezistenta de 0,33Ohm cu potentiometru de 500Ohm conform schemei suplimentare din coltul din dreapta sus.

Codul de pina acum este pe github.
 La cit am apucat sa testez s-a comportat super bine. La teste am folosit 4 surse de tensiune 28V/5A,24V/1A, -5V/1A, 5V/1A. Spre final pentru AO este nesesara o sursa bine stabilizata care sa nu fie influentata de consumul total. La scurt pe iesire sau limitare la 2A cu 12V reglati, pe bara  de 28V curentul este de 3,7A.
In faza de teste arata cam asa:



miercuri, 13 septembrie 2017

Modificare sursa ATX pentru utlizare de atelier

Avind mai multe surse ATX cu condensatori umflati, m-am hotarit sa le modific pentru utilizare in atelier, ca sa elimin transformatorul de retea care la curenti mari este destul de voluminos si greu.
Dupa ceva studiu pe internet m-am oprit la cele ce utilizau un circuit marcat 2003, acesta fiind foarte utilizat, regasindu-se in foarte multe surse.
Nu am descoperit nici aici roata caci am pornit de la un articol rusesc. Aici cea mai utila informatie a fost in schema de utilizare a lui 2003, pentru datasheet-ul nu pare de gasit.
Schema lui nu se potriveste cu nici una din sursele mele, insa am pornit de la ideea descrisa de individ.
Avind ceva experienta anterioara ( stiam ca pe bara de 12V poate scoate in jur de 30V, iar pe bara de 5V in jur de 15V, m-am apucat sa elimin condensatorii de pe iesire mai putin partea de 3,3V care in cazul placii mele avea un oscilator separat.
Am facut  modificarile din schema rusului, mai putin partea de reglaj tensiune, (aici din experientele anterioare, daca se intrerupe potentiometrul se prajesc tranzistorii Q1, si Q2 - din ce am apucat sa vad pe osciloscop in acel moment a crescut factorul de umplere al impulsurilor din pinii 7 si 8 ai circuitului integrat creste peste 80%). Se pare ca reglajul tensiunii de iesire se face prin modificarea factorului de umplere. Frecventa este de 35KHz. Asa ca am lasat rezistentele din pinul 14 ca in schema de mai jos.

Sursa aferenta tranformatorului T3, scoate 5V/2A si este pe firul violet (purple).
Aici am intilnit mai multe variante, ideea este ca pe violet sint 5V si tot pe acelasi transformator la cealalte iesire pe +-ul altei diode avem 17V. Din aceste 2 tensiuni facem 3,3V cu ajutorul unui semireglabil si-l ducem la pinul 3, 5V la pinul 4 si 12V (care eu i-am facut cu o rezistenta si un DZ12) la pinul 6. In acest moment ar trebui sa avem pe bara de 12V cca. 30V iar pe bara de 5V cca. 15V. Eu am folosit 4700/35 pe bara de 12V si 2200/25 pe bara de 5V oricum suprdimensionati tinind cont ca o sursa de 600W mai bunicica are 1500/16V si 1000/10V
Am ales aceasta solutie deorece este greu de facut si fixat pe radiator o punte de diode schottky , iar diodele de pe sursa de regula sint OK.
Radiatorul cu tranzistorii trebuie neaparat ventilat pentru ca se incalzeste la 40 grade fara sarcina, asta datorita factorului de umplere de cca. 60% pentru 30V pe bara de 12V. 
Testat  30 minute cu un bec de far( cca 6A) pe noua bara de 15V radiatorul cu diodele s-a mentinut rece.
Trebuie sa aveti mare grija la lucru deoarece tensiunea retelei este foarte aproape, TREBUIE neaparat descarcati cei doi condensatori de 470/200 ( se descarca foarte greu prin degete si o sa rideti un timp indelungat). La teste recomand inlocuirea sigurantei cu un bec de 220V cu filament daca mai aveti sau daca nu, utilizati o rezistenta de 50Ohmi/20W.
Atentie ca in aceasta varianta nu are protectie la scurt sau suprasarcina, daca adaptati ceva in acest sens circuitul ar trebui sa intrerupa alimentarea cu 5V a circuitului integrat pinul 1. Eu de regula de folosesc cu un step-down la care inlocuies semireglabilii cu potentiometri ce sint scosi pe cutie.


O schema cu modificari univesal valabila este dificil de facut, pentru ca aceste surse sint diferite de la un model la altul. Trebuie ceva rabdare si multa atentie, de luat in calcul cele 2 scheme.

 Tensiunea pe bara de 12 fara a interveni pe divizorul din pin 14
 Tensiunea pe bara de 5V
Aici o varianta care munceste de mai bine de un an

O alta idee a colegilor este sa alimentati la 17V sau 5V (functie de cum e oscilatorul de pe placa voastra, cel cu transformatorul T3) dintr-o sursa externa, si va jucati si masurati pina faceti circuitul 2003 sa oscileze singur, Astfel evitati contactul accidental cu reteaua de 220V. Daca oscileaza singur 2003-ul, puteti reconecta circuitele de forta. Ideea este sa identificati pinii de reactie 3,5,12V, si sa reusiti sa modificati frecventa sau factorul de umplere al impulsurilor din bazele celor 2 tranzistori q5 si Q6 din schema de referinta de mai sus. Daca reusiti sa le modificati pe amindoua se regleaza si tensiunea si curentul.

marți, 12 septembrie 2017

Ceas cu alarma si reglaj cu arduino micro, DS3231, UTFT

Am gasit un alt proiect mai vechi adaptat dupa articolul lui Nicu Florica.
La acea vreme aveam mai multe display-uri cu ILI9225-240/320, la care nu am gasit un library finalizat. Asa ca am folosit UTFT, care e cumva universala, avind o gama variata de display-uri ce le poate adresa, dar are un mod diferit de programare. Asa ca am adaptat codul la aceasta biblioteca. 

Cerinta era ca orele sa fie afisate cu un font de tipul 7 segmente. Singurele poze din faza de teste sint mai jos.

Acesta foloseste  senzorul intern al lui DS3231, pentru afisarea  temperaturii. 
A  fost casetat intre 2 placi de plastic transparent si avea suficient spatiu de ventilatie pentru a lua o temperatura corecta.
La "caseta" m-am inspirat de aici, dar nu mai am pozele respective.


Codul si biblioteca se afla pe github, iar ideea este ca trebuie copiat fontul SevenSegNumFontPlusPlus.c in acealasi folder cu _9225-alarm-ds3132-nicu-utft.ino si apoi se compileaza. Pe github am arhivat si biblioteca utilizata de mine  fiind singura care a mers cu ILI9225. Ulterior am testat si cu alte display-uri SPI ( cele ce au 5 pini de conectare, DC, CS, RST, MOSI, SCK) si au functionat si cu un UTFT mai nou.

luni, 11 septembrie 2017

Ceas cu reglaj folosind Arduino, DS3131/DS1307, DH11, afisare cu fonturi

Ideea acestui proiect a fost sa scot un ceas cu afisare cit mai mare (nu patratoasa) pe TFT de 2,2" shield pentru Arduino UNO.

M-am inspirat de pe blogul lui Nicu Florica pentru ca avea realizata foarte bine partea de reglaj.

Am taiat pinul RST de la display si l-am legat cu un fir la RST-ul lui Arduino, am mai mai taiat pinii de pe TFT utlizati pentru SDcard. 
RST-ul ma incurca ca aveam nevoie de A5 pentru RTC, iar pinii de la SDcard imi trebuiau pentru butoanele de reglaj si senzorul DHT11
Codul si biblioteca utilizata se afla pe github

Initial am folosit un DS3231, iar ulterior pentru a minimiza costurile am testat si cu DS1307, care a ramas definitiv.
#define meniu 10
#define minus 12 #define plus 11 #define DHTPIN 13 #A4/A5 i2c RTC care poate fi fara nici o modificare la cod DS3231 sau DS1307

 Placa de dezvoltare avea un rind de gauri suplimentare nefolosite, si le-am atasat cite un soclu
pentru a fixa placa ce o facusem cu RTC-ul, DHT11, si butoanele



Ulterior s-au dezvoltat http://nicuflorica.blogspot.ro/2017/02/ceas-cu-termometru-cu-arduino-due-si.html https://plus.google.com/u/0/+VladGheorghe/posts/aayXR7oFVf5 https://plus.google.com/u/0/+VladGheorghe/posts/fmzrS453Y9h https://plus.google.com/u/0/+VladGheorghe/posts/Jzjp3sCHESV https://plus.google.com/u/0/+VladGheorghe/posts/6iZezjbp2CX



Ceas cu arduino, DS1307, TFT 2,2" ILI9225, DHT11, encoder

Am reusit sa gasesc informatille despre un proiect mai vechi :

Este adaptat dupa informatiile lui Nicu de unde am preluat ideea de reglaj cu ajutorul unui encoder. Asta deoarece mi-a fost lene sa adaptez cutia pentru butoane de reglaj, Dupa cum se vede aveam cutia de la o chestie "similara" decedata, si am vrut sa-i scot encoderul in spate.In interior am "inghesuit" toate modulele. Am folosit un Arduino ProMini.
Tot pe spate i-am aplicat o baterie de telefon mobil cu un incarcator chinezesc, toate alimentate dintr-un alimentator ramas tot de la vreun telefon mobil.

Modul de conectare se poate deduce din cod unde este comentat. Codul si bibliotecile folosite sint pe github
Pentru display am folosit UTFT-ul incarcat pe github fiind singura arhiva ce avea suport pentru ILI9225. Daca folositi alt tip de display posibil sa mearga cu o versiune curenta de UTFT
Functionarea encoderul-ului se poate vedea tot din studiul codului, si e relativ simpla, la o apasare lunga intra in modul reglaj, rotire dreapta/stinga incrementeaza/decrementeaza , apoi la fiecare apasare scurta trece la pasul urmator, data, zi, an, ora, .... la finalul ciclului revine in ecranul de afisare curenta.

vineri, 8 septembrie 2017

Ceas cu alarma si termometru cu Arduino ProMini TFT 2,2"-ILI9163 , DS3231, DS18B20

In articolul anterior am adaptat codul lui Nicu Florica pentru un display de 2" cu ILI9163 care functiona pe STM32. 
M-am gindit sa fac un test si pe un Arduino ProMini avind ca scop sa folosesc un font elegant pentru afisarea orei (fara utilizarea fontului afisarea este foarte "patratoasa" si deranjanta la dimensiuni mari afisate de display mare). Problema e ca aceste fonturi ocupa foarte multa memorie.
Pinul LED al display-ului l-am legat la Vcc printr-o rezistenta de 470Ohm, pentru ca Arduino este alimentat in cazul meu la 5V. Biblioteca este cea folosita in cazul lui STM si este aici.
Dupa mai multe teste de fonturi m-am oprit la ceea ce se vede mai jos:
S-au pastrat toate functionalitatile descrise de Nicu la el pe blog, numai ca s-au micsorat dimensiunile proportional cu acest display care are rezolutia de 128/160
Pe viitor intentionez sa-i fac si un cablaj imprimat. Aceste display-uri au un pret decent pentru 1,8", 2", 2,2" si sint suficient de vizibile (mai putin pentru mine care imi trebuie 4").
Schema este aici.




Schema de legaturi se poate deduce foarte usor din cod care este curatat de modificarile anterioare.
Codul ocupa aproape toata memoria disponibila

Deasemenea se poate folosi si display cu ILI9143 cu alimentare la 3,3V cu definirea in cod a noii biblioteci, Arduino alimentindu-se la 3,3V in acest caz.

I-am minimizat costurile inlocuind DS3231 CU DS1307, si am mai facut mici corectii la cod. Am inlocuit LED-ul de la alarma cu un difuzor piezo, si am scos fontul de la afisarea datei care depasea ecranul.
Pregatit de o caseta eleganta.






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 "...