#10 – Alimentazione Arduino

Forti delle conoscenze base di elettronica che abbiamo acquisito, possiamo andare a parlare di alimentazione per Arduino.

È importante sottolineare che ogni dispositivo elettronico, a corrente continua, ha bisogno di una differenza di potenziale ben definita come alimentazione. E come abbiamo visto, nella differenza di potenziale conta anche la direzione.

Molti dispositivi elettronici, come anche Arduino (su VIN e 5V), non hanno protezione contro l’inversione di polarità: se sbagliamo il segno della differenza di potenziale tra i pin di alimentazione, rendiamo la scheda inutilizzabile.

Prima di parlare di alimentazioni, dobbiamo affrontare un nuovo argomento, che è utile anche fuori dal mondo Arduino: la potenza.

Potenza Assorbita e Generata

Per esperienza, sappiamo che ogni dispositivo elettronico ha bisogno di una certa energia, in una certa unità di tempo, per funzionare. Specifichiamo quindi una grandezza chiamata Potenza (P) e misurata in Watt (W) .

$latex P_{media} = \frac{\Delta E}{\Delta t} $

Una generica lampadina (non led) ne consuma parecchi. Prendiamone una da 40W. Ora che siamo “esperti” di tensioni e correnti, ci chiediamo che relazione vi sia tra potenza assorbita (+40W) e queste due grandezze.

La legge è molto semplice, ed è la seguente:

$latex P_{assorbita} = I * V $

La potenza assorbita è calcolata utilizzando la convenzione degli utilizzatori, mentre per quella generata la formula è la stessa, solo che bisogna utilizzare la convenzione dei generatori.

Conservazione della Potenza

Il teorema afferma che:

Dato un circuito qualsiasi, la potenza assorbita da un certo numero di componenti del circuito è uguale alla potenza generata dai restanti componenti.

Per restanti componenti, noi intenderemo la potenza erogata dall’alimentazione del nostro circuito, dato che utilizziamo solo componenti passivi.

La potenza assorbita dal circuito è la somma delle potenze assorbite da ogni componente, indipendentemente dalla sua disposizione nel circuito.

Riprendiamo ad esempio il circuito della guida #8:

Circuito con generatore di tensione e tre resistenze

Abbiamo risolto il circuito, e trovato per ogni resistenza la corrente e la tensione a cui sono sottoposte, con la convenzione degli utilizzatori. In particolare:

  • Per il resistore 1 e 2, abbiamo una tensione di 1.5V e una corrente di 1.5A: in totale 4.5W
  • Per il resistore 3, una tensione di 0V e una corrente di 0A: 0W

Se la legge è valida, la batteria dovrebbe fornire 4.5W di potenza: poiché sappiamo che la corrente che passa dalla batteria è 1.5A (KCL), e abbiamo una tensione di 3V, la legge è verificata (ovviamente).

In realtà utilizzare la tipologia di batteria della figura con una tale corrente, rovinerà immediatamente la batteria. L’esempio è solo a scopo teorico.

Inoltre vale sempre:

$latex P_{assorbita} = – P_{generata} $

Il nostro Arduino, ha bisogno di al massimo 250mA a 5V, per un totale di 1.25W

Pin di alimentazione di Arduino (UNO)

Abbiamo già avuto modo di vedere lo schema dei pin in una precedente guida di programmazione. Lo riporto qui:

Pinout Arduino UNO. www.pighixxx.com CC BY-SA 4.0, Link

Per funzionare, la nostra scheda ha bisogno di una differenza di potenziale tra i pin GND, neri, (che sono tutti connessi insieme, e rappresentano il polo negativo di alimentazione), e un pin di potenza, rosso (5V, 3.3V, VIN).

In particolare, abbiamo quattro differenti modalità di alimentazione:

  1. Imponiamo una tensione di +5V tra il pin GND e il pin 5V. Questa tensione però deve essere esatta. Se supera i 5.5V, brucerete la vostra scheda, sotto i 4.5V non la farà funzionare correttamente.
  2. Imponiamo una tensione tra i +6V e +12V tra il pin GND e il pin VIN.
  3. Colleghiamo il cavo USB (che ovviamente ha già all’interno una tensione di 5V)
  4. Colleghiamo un alimentatore tramite il Jack, ad una tensione tra i +7V e i +12V. Attenzione che la polarizzazione del Jack sia quella corretta indicata in figura.
Alimentazione Arduino Uno. Crediti

Alimentazione Arduino tramite batterie

Giunti a questo punto, dovreste essere esperti di batterie.

Sappiamo che esistono varie batterie che sono adatte al nostro scopo:

  • Se utilizziamo delle batterie AA, ne possiamo collegare 4 in serie. Attenzione però che siano ricaricabili, con una una tensione di 1.2V ciascuna (standard). Otterremo così una tensione nominale di 5V (e una massima inferiore a 5.5V).
Schema di alimentazione con batterie AA ricaricabili. Polo positivo in rosso, negativo in nero.

Utilizzare delle batterie normali da 1.5V, ci porterebbe a oltre 6V quando pienamente cariche, e bruceremmo la scheda utilizzando il pin 5V.

La scheda possiede però un regolatore di tensione collegato al pin VIN e al Jack.

Se proprio si vogliono utilizzare batterie da 1.5V, bisogna quindi metterne 5/6, per restare nel range della porta VIN (almeno 6V) anche quando le batterie sono quasi scariche:

Schema di alimentazione con batterie AA normali. Polo positivo in rosso, negativo in nero.

Avremo una capacità corrispondente a quella di una singola batteria (ad esempio di 2400mAh), perché le batterie sono in serie.

Poiché la nostra scheda normalmente consuma 50mA (senza collegarci nulla), possiamo alimentare la nostra scheda per 48 ore (trascurando la dispersione di parte della capacità in calore).

Vedremo più avanti tecniche per aumentare considerevolmente questa durata.

  • Se utilizziamo una batteria da 9V, colleghiamola tra GND e VIN
Schema di alimentazione con batteria da 9V
  • Se vogliamo utilizzare una batteria LiPo, assicuriamoci di usarne una a due celle (7.4V), sempre collegata tra GND e VIN.

Alimentazione tramite Jack

Come anticipato, grazie al regolatore di tensione, possiamo utilizzare un alimentatore esterno, da 7V a 12V:

Fare sempre attenzione alla polarità del Jack, che deve essere positiva all’interno e negativa all’esterno.

Se avete possibilità di scegliere la tensione, state verso i 7.5V.

Se il vostro alimentatore è in grado di fornire una tensione di 5V stabili, allora utilizzate l’ingresso a 5V!

Alimentazione tramite caricatore USB

Per alimentare la scheda tramite cavetto USB, basta utilizzare un cavetto con una estremità di tipo B (lo stesso che utilizzate per programmare la scheda):

Collegandolo ad una normale porta USB di un computer, otterremo massimo 500mA, che sono più del doppio necessari.

Se vogliamo però utilizzare questa energia anche per alimentare altri dispositivi, come vedremo in seguito, diventa il collegamento diretto non è il più appropriato.

Dobbiamo prestare attenzione a dove e come preleviamo la corrente dalla scheda, per alimentare dispositivi esterni.

Valgono infatti le seguenti limitazioni di corrente per Arduino UNO (e tutta la famiglia di Arduino che utilizza il microcontrollore ATmega328):

  • Massimo 40mA per pin. Se la corrente supera questo valore, il microcontrollore si rompe. È però altamente consigliato di non superare i 20mA per pin.
  • La corrente che in totale esce da tutti pin (comandabili) deve essere minore di 200mA.
  • Se alimentate Arduino tramite Jack o VIN, la massima corrente prelevabile dal pin 5V è 900mA (se alimentate a 7V). Verrà prodotto molto calore per una corrente così elevata, e la situazione peggiorerà se aumentate la tensione di alimentazione. Se aumentate la tensione di alimentazione, avrete meno corrente disponibile.

Se avete necessità di utilizzare più corrente, è opportuno prelevarla a monte della scheda Arduino.

Nel caso di alimentazione USB (perché magari state utilizzando un vecchio alimentatore per smartphone), se è necessario è possibile prelevare la corrente tagliando il cavo.

Basta infatti prendere un cavetto USB che non usate più (meglio se versione 1 o 2), e tagliarlo. Noterete 4 fili:

USB A, versione 2

Isolate con del nastro isolante i terminali Data+ e Data-, e collegate il GND al pin GND di Arduino, mentre il VCC al pin 5V (se l’alimentatore è a 5V!).

Fate gli stessi collegamenti con gli altri dispositivi che volete alimentare.

Se i colori non corrispondono con il vostro cavo, cercate prima in rete!

Alimentazione con tensioni differenti

Se avete necessità di alimentare la scheda con valori di tensioni differenti da quelli visti (5V, 6-12V), avrete bisogno di appositi regolatori di tensione.

A questo proposito, per i meno esperti, è giusto fare una precisazione: mai utilizzare resistenze ohmiche per diminuire una tensione di alimentazione. Questo perché come abbiamo visto, il partitore di tensione funziona solo se non preleviamo corrente dal nodo in mezzo alle resistenze (cosa assolutamente non vera in questo caso).

Per convertire valori di tensione, nel caso di correnti non così piccole, occorre sfruttare proprietà di altri componenti che non abbiamo visto. Infatti, sfruttando opportuni componenti, è possibile ottenere un’efficienza superiore al 95%.

In particolare, per tensioni simili a quelle di Arduino (dai 3V ai 24V), esistono dei piccoli regolatori di tensione chiamati “step-up” e “step-down”.

Poiché in ogni caso i trasformatori reali non sono al 100% efficienti, parte dell’energia viene comunque dissipata in calore.

Maggiore la differenza di potenziale da togliere, maggiore il calore generato. Maggiore la corrente che prelevate, maggiore il calore generato.

Con i regolatori step-down/step-up, attenzione quando la corrente supera l’ampere: potrebbe essere necessaria una ventola a causa del forte calore generato.

Adesso che abbiamo parlato di alimentazione per Arduino, proseguiamo con alcuni accorgimenti sull’utilizzo dei pin della scheda.