În acest tutorial vom dezvolta o sursă de tensiune variabilă de 5V de la Arduino Uno. Pentru aceasta, vom folosi caracteristicile ADC (Conversie analogică la digitală) și PWM (Pulse Width Modulation).
Unele module electronice digitale, cum ar fi accelerometrul, funcționează la tensiunea de 3,3V și unele funcționează la 2,2V. Unii chiar funcționează la tensiuni mai mici. Cu aceasta nu putem obține un regulator pentru fiecare dintre ele. Deci, aici vom face un circuit simplu care va oferi o tensiune de ieșire de la 0-5 volți la o rezoluție de 0,05V. Deci, cu aceasta putem furniza tensiuni cu precizie pentru celelalte module.
Acest circuit poate furniza curenți de până la 100mA, deci putem folosi această unitate de putere pentru majoritatea modulelor senzorului fără probleme. Această ieșire de circuit poate fi utilizată și pentru încărcarea bateriilor reîncărcabile AA sau AAA. Cu afișajul în poziție, putem vedea cu ușurință fluctuațiile de putere din sistem. Această unitate de alimentare variabilă conține interfață cu butoane pentru programarea tensiunii. Lucrul și circuitul sunt explicate mai jos.
Hardware: Arduino Uno, sursă de alimentare (5v), condensator 100uF (2 bucăți), buton (2 bucăți), rezistor de 1KΩ (3 bucăți), LCD de 16 * 2 caractere, tranzistor 2N2222.
Software: Atmel studio 6.2 sau AURDINO pe noapte.
Diagrama circuitului și explicația de lucru
Circuitul pentru unitatea de tensiune variabilă folosind Arduino este prezentată în diagrama de mai jos.
Tensiunea pe ieșire nu este complet liniară; va fi unul zgomotos. Pentru a filtra condensatorii de zgomot sunt așezați pe bornele de ieșire, așa cum se arată în figură. Cele două butoane de aici sunt pentru creșterea și descreșterea tensiunii. Unitatea de afișare arată tensiunea la bornele OUTPUT.
Înainte de a merge pentru muncă, trebuie să analizăm caracteristicile ADC și PWM ale Arduino UNO.
Aici vom lua tensiunea furnizată la terminalul OUTPUT și o vom alimenta într-unul dintre canalele ADC ale Arduino. După conversie, vom lua acea valoare DIGITALĂ și o vom raporta la tensiune și vom arăta rezultatul în afișajul 16 * 2. Această valoare afișată reprezintă valoarea tensiunii variabile.
ARDUINO are șase canale ADC, așa cum se arată în figură. În acestea, oricare dintre ele sau toate pot fi utilizate ca intrări pentru tensiunea analogică. UNO ADC are o rezoluție de 10 biți (deci valorile întregi de la (0- (2 ^ 10) 1023)). Aceasta înseamnă că va mapa tensiunile de intrare între 0 și 5 volți în valori între 0 și 1023. Deci, pentru fiecare (5/1024 = 4,9mV) pe unitate.
Aici vom folosi A0 al UNO.
|
În primul rând, canalele UNO ADC au o valoare de referință implicită de 5V. Aceasta înseamnă că putem oferi o tensiune maximă de intrare de 5V pentru conversia ADC la orice canal de intrare. Deoarece unii senzori furnizează tensiuni de la 0-2,5V, cu o referință de 5V obținem o precizie mai mică, deci avem o instrucțiune care ne permite să schimbăm această valoare de referință. Deci, pentru schimbarea valorii de referință pe care o avem („analogReference ();”) Deocamdată o lăsăm ca.
În mod implicit, obținem rezoluția maximă ADC a plăcii, care este de 10 biți, această rezoluție poate fi modificată folosind instrucțiuni („analogReadResolution (biți);”). Această modificare a rezoluției poate fi utilă în unele cazuri. Deocamdată o lăsăm așa.
Acum, dacă condițiile de mai sus sunt setate la valorile implicite, putem citi valoarea de la ADC a canalului '0' apelând direct funcția „analogRead (pin);”, aici „pin” reprezintă pinul unde am conectat semnalul analogic, în acest caz acesta ar fi „A0”.
Valoarea din ADC poate fi luată într-un număr întreg ca „float VOLTAGEVALUE = analogRead (A0); ”, Prin această instrucțiune, valoarea după ce ADC este stocată în întregul„ VOLTAGEVALUE ”.
PWM al UNO poate fi realizat la oricare dintre pinii simbolizați ca „~” pe placa PCB. Există șase canale PWM în UNO. Vom folosi PIN3 pentru scopul nostru.
analogWrite (3, VALUE); |
Din condițiile de mai sus putem obține direct semnalul PWM la pinul corespunzător. Primul parametru dintre paranteze este pentru alegerea numărului pin al semnalului PWM. Al doilea parametru este pentru raportul de scriere.
Valoarea PWM a UNO poate fi modificată de la 0 la 255. Cu „0” cel mai mic la „255” cel mai mare. Având 255 ca raport de taxă, vom obține 5V la PIN3. În cazul în care raportul taxelor este de 125, vom obține 2,5V la PIN3
Așa cum am spus mai devreme, există două butoane conectate la PIN4 și PIN5 ale UNO. La apăsare, valoarea raportului de funcționare a PWM va crește. Când este apăsat alt buton, valoarea raportului de funcționare a PWM scade. Deci, modificăm raportul de sarcină al semnalului PWM la PIN3.
Acest semnal PWM la PIN3 este alimentat la baza tranzistorului NPN. Acest tranzistor oferă o tensiune variabilă la emițător, acționând în același timp ca un dispozitiv de comutare.
Cu raportul de sarcină variabil PWM la bază, va exista o tensiune variabilă la ieșirea emițătorului. Cu aceasta avem la îndemână o sursă de tensiune variabilă.
Ieșirea de tensiune este alimentată către UNO ADC, pentru ca utilizatorul să vadă ieșirea de tensiune.