vineri, 3 martie 2017

Sursa de alimentare cu Arduino (1)


Salutare prieteni !

In sfarsit e gata. Ma rog, in proportie de 80%, dar functioneaza. Mi-a mancat ceva timp pana am pus totul cap la cap, dar in final sunt multumit: am construit prima mea sursa de alimentare digitala

Dap. Am facut-o si sunt tare mandru de rezultat. Asadar, puteti vedea rezultatul provizoriu in clipul de mai jos:





Functionarea...


Mai jos aveti schema electronica: 

Schema electronica

    Dupa cum se observa stabilizarea se invarte in jurul "batranului" LM317, doar ca este parte buclei de reactie negativa a amplificatorului operational OPA 241A. La randul sau amplificatorul operational primeste tensiunea pe intrarea neinversoare de la potentiometrul digital MCP4251. 
Rezistentele din bucla de reactie R5 si R6  determina amplificarea. Cum? Sa facem putina matematica.

Se stie ca impedanta de intrare a amplificatoarelor operationale este foarte, foarte mare, si din acest motiv curentii care circula la intrari pot fi aproximativ cu zero. De asemenea se mai cunoaste si faptul ca tensiunea aplicata oricarei intrari se regaseste identic si la cea de-a doua.

Asadar, caderea de tensiune pe rezistenta R6, sa ii zicem U1, va fi exact tensiunea aplicata la intrarea neinversoare. Curentul prin acesta rezistenta va fi:

I=U1/R6.

Cum curentul care circula prin intrarea inversoare este ffff mic poate fi aproximat cu zero. Astfel acelasi curent I va circula si prin R5. Caderea de tensiune pe aceasta va fi - U2: 

U2=I x R5=(U1/R6) x R5

aranjand un pic avem:

U2=U1 x (R5/R6)

Asadar tensiunea de la iesirea stabilizatorului de tensiune, Ue,  va fi U1+U2, adica 

Ue = U1+U1(R5/R6) sau, dupa factor comun :)))

Ue=U1+(1+R5/R6) Ta-dam !!!

Deci, dupa cum se  observa, tensiunea de la iesirea stabilizatorului nu depinde decat de valoarea tensiunii de la intrarea neinversoare si de raportul rezistetelor R5 si R6. In cazul de fata valoarea tensiunii de iesire va fi  U1x3.13V. 

Buuuun! Tensiunea U1 este furnizata de potentiometrul digital U3 pe pinul 9 (cursorul potentiometrului). Dar cum functioneaza acest potentiometru? 

In estenta nu este altceva decat o retea de rezistoare:


      In imaginea de mai sus se observa modul in care este aranjata reteaua : rezistenta totala, intre punctele A-B este 10 Kohmi. Cum rezolutia este de 8 biti rezulta un numar maxim de 256 de valori, incluzand valoarea de 0 ohmi . In cazul de fata "pasul" este de aproximativ 39ohmi, neincluzand Rw (rezistenta cursorului).

      Programarea potentiometrului se face utilizand protocolul SPI si in esenta este foarte simpla: se transmite adresa potentiometrului pe care dorim sa il controlam si valoarea la care vrem sa il setam (0=0V si 255=5V).

    Dupa cum ziceam, cursorul potentiometrului este conectat direct la intrarea neinversoare a amplificatorului operational, deci putem amplifica o tensiune cuprinsa intre 0 si 5v. Valoarea maxima a tensiunii de iesire, Ue, (in aceasta configuratie) fiind 5x3.13=15.65V.

Controlul intregii "improvizatii" se realizeaza cu ajutorul "minunatului" convertor ADC ADS1115. Acesta are rolul de a "citi" valorile tensiunilor in urmatoarele puncte:
  • Tensiunea Vcc (5V) de la alimentarea potentiometrului - A3;
  • Tensiunea de la intrarea neinversoare - A0;
  • Tensiunea de la intrarea inversoare - A1;
  • Tensiunea de iesiere, prin intermediul divizorului de tensiune R2-R4 - A2.
In functie de valorile citite se seteaza tensiunea de iesiere ceruta.

    Un ultim cuvant aici: curentul prin stabilizator, LM317, este limitat la aproximativ 70 de mA. Cand curentul prin rezistorul R1 depaseste aceasta valoare tranzistorul Q1 se deschide comportandu-se ca un generator de curent.


Realizarea practica...

Montajul l-am realizat sub forma unui shield pentru Arduino Uno. Cum a iesit (mai bine sau mai rau :) ) puteti vedea in pozele de mai jos:












Controlul...

Pentru partea de control am scris un program in Python. Nu este prea mult de zis aici poza vorbeste de la sine:


    In esenta programul va scana toate porturile seriale disponibile dupa care utilizatorul se va conecta la portul lui Arduino. Dupa conectare se pot alege valori standard ale tensiuni 4.5, 5 etc sau se pot introduce manual in caseta de text "Custom Voltage". Programul va trimite datele luiArduino care la randul sau va trece la a seta tensiunea in mod corespunzator. Dupa setare Arduino va transmite in mod constant valorile tensiunilor citite de catre ADC.

To do list...

Dupa cum am zis si la inceputul articolului proiectul nu este 100% terminat. Mai trebuie facuta partea de alimentare: traf, punte, filtru, partea de putere: introdus tranzistorul in circuit si in sfarsit partea cea mai grea: o carcasa.


Cam atat pentru azi. Sa auzim de bine. Nu va sfiiti sa lasati un comentariu!





Niciun comentariu:

Trimiteți un comentariu