In questo tutorial svilupperemo una sorgente di tensione variabile 5V da Arduino Uno. Per questo utilizzeremo la funzione ADC (conversione da analogico a digitale) e PWM (modulazione di larghezza di impulso).
Alcuni moduli elettronici digitali come l'accelerometro funzionano con una tensione di 3,3 V e alcuni funzionano con 2,2 V. Alcuni funzionano anche con tensioni inferiori. Con questo non possiamo ottenere un regolatore per ognuno di loro. Quindi qui faremo un semplice circuito che fornirà un'uscita di tensione da 0-5 volt con una risoluzione di 0,05 V. Quindi con questo possiamo fornire tensioni accuratamente per gli altri moduli.
Questo circuito può fornire correnti fino a 100 mA, quindi possiamo utilizzare questo alimentatore per la maggior parte dei moduli sensore senza problemi. Questa uscita del circuito può essere utilizzata anche per caricare batterie ricaricabili AA o AAA. Con il display in posizione possiamo facilmente vedere le fluttuazioni di potenza nel sistema. Questo alimentatore variabile contiene l'interfaccia a pulsanti per la programmazione della tensione. Di seguito viene spiegato il funzionamento e il circuito.
Hardware: Arduino Uno, alimentatore (5v), condensatore 100uF (2 pezzi), pulsante (2 pezzi), resistore 1KΩ (3 pezzi), LCD 16 * 2 caratteri, transistor 2N2222.
Software: Atmel studio 6.2 o AURDINO ogni notte.
Schema del circuito e spiegazione del funzionamento
Il circuito per l'unità di tensione variabile che utilizza arduino è mostrato nel diagramma sottostante.
La tensione all'uscita non è completamente lineare; sarà rumoroso. Per filtrare il rumore, i condensatori sono posizionati sui terminali di uscita come mostrato in figura. I due pulsanti qui sono per l'incremento e il decremento della tensione. Il display mostra la tensione ai terminali OUTPUT.
Prima di iniziare a lavorare, dobbiamo esaminare le funzionalità ADC e PWM di Arduino UNO.
Qui prenderemo la tensione fornita al terminale OUTPUT e la inseriremo in uno dei canali ADC di Arduino. Dopo la conversione prenderemo quel valore DIGITALE e lo metteremo in relazione con la tensione e mostreremo il risultato nel display 16 * 2. Questo valore visualizzato rappresenta il valore della tensione variabile.
ARDUINO ha sei canali ADC, come mostrato in figura. In questi uno o tutti possono essere utilizzati come ingressi per la tensione analogica. L'ADC UNO ha una risoluzione di 10 bit (quindi i valori interi da (0- (2 ^ 10) 1023)). Ciò significa che mapperà le tensioni di ingresso tra 0 e 5 volt in valori interi compresi tra 0 e 1023. Quindi per ogni (5/1024 = 4,9 mV) per unità.
Qui useremo A0 di UNO.
|
Prima di tutto i canali UNO ADC hanno un valore di riferimento predefinito di 5V. Ciò significa che possiamo fornire una tensione di ingresso massima di 5 V per la conversione ADC su qualsiasi canale di ingresso. Poiché alcuni sensori forniscono tensioni da 0-2,5 V, con un riferimento di 5 V otteniamo una minore precisione, quindi abbiamo un'istruzione che ci consente di modificare questo valore di riferimento. Quindi per cambiare il valore di riferimento abbiamo (“analogReference ();”) Per ora lo lasciamo come.
Come impostazione predefinita, otteniamo la massima risoluzione dell'ADC della scheda che è 10 bit, questa risoluzione può essere modificata utilizzando l'istruzione ("analogReadResolution (bits);"). Questa modifica alla risoluzione può tornare utile in alcuni casi. Per ora lo lasciamo come.
Ora se le condizioni di cui sopra sono impostate come predefinite, possiamo leggere il valore dall'ADC del canale '0' chiamando direttamente la funzione "analogRead (pin);", qui "pin" rappresenta il pin dove abbiamo collegato il segnale analogico, in questo caso esso sarebbe "A0".
Il valore da ADC può essere preso come numero intero come “float VOLTAGEVALUE = analogRead (A0); ", Con questa istruzione il valore dopo l'ADC viene memorizzato nell'intero" VOLTAGEVALUE ".
Il PWM di UNO può essere ottenuto su uno qualsiasi dei pin contrassegnati come "~" sulla scheda PCB. Ci sono sei canali PWM in UNO. Utilizzeremo il PIN3 per il nostro scopo.
analogWrite (3, VALUE); |
Dalla condizione di cui sopra possiamo ottenere direttamente il segnale PWM sul pin corrispondente. Il primo parametro tra parentesi è per la scelta del numero di pin del segnale PWM. Il secondo parametro è per il rapporto di lavoro di scrittura.
Il valore PWM di UNO può essere modificato da 0 a 255. Con "0" come minimo, "255" come massimo. Con 255 come rapporto di lavoro avremo 5V a PIN3. Se il rapporto di servizio è di 125, otterremo 2,5 V a PIN3
Come detto in precedenza ci sono due pulsanti collegati al PIN4 e al PIN5 di UNO. Alla pressione il valore del rapporto di lavoro del PWM aumenterà. Quando si preme un altro pulsante, il valore del rapporto di lavoro di PWM diminuisce. Quindi stiamo variando il rapporto di lavoro del segnale PWM su PIN3.
Questo segnale PWM al PIN3 viene inviato alla base del transistor NPN. Questo transistor fornisce una tensione variabile al suo emettitore, mentre funge da dispositivo di commutazione.
Con il rapporto di lavoro variabile PWM alla base ci sarà una tensione variabile all'uscita dell'emettitore. Con questo abbiamo una sorgente di tensione variabile a portata di mano.
L'uscita di tensione viene inviata a UNO ADC, in modo che l'utente possa vedere l'uscita di tensione.