Tutti i modi per alimentare Arduino

Scrivo questo post che può sembrare banale, ma serve per fare un po' di chiarezza sui vari modi di alimentare Arduino, soprattutto nel caso vogliate realizzare un prodotto finito.
E' ora di ragionare un po' sulla potenza!




Capita spesso di avere dubbi sui vari modi per alimentare Arduino (da pc, da un alimentatore, con una batteria, etc.) e su come collegare la nostra fonte di energia alla nostra scheda (connettore, pin vin, pin 5V) quindi cercherò di mettere un po' di ordine per semplificare le cose e per realizzare i nostri progetti perdendo meno tempo possibile.

Per quanto riguarda Arduino Uno tenete presente che:

Il suo cuore (l'Atmega328) funziona ad una tensione compresa tra 4.5 e 5.5 Volt (è possibile arrivare a 6 volt ma è sconsigliato)
La corrente massima che può passare (in ingresso o in uscita) da un pin è di 40 mA.
La corrente massima che può passare dai pin Vcc o Gnd è 200 mA (fate la somma delle correnti che entrano o escono dai pin).
queste specifiche derivano dal datasheet dell'Atmega328 (pag 313)

Considerate però che l'Atmega non è da solo, ma Arduino è dotato di altri componenti che permettono di alimentarlo anche con una tensione più alta.
Ecco i modi per alimentare Arduino facendo riferimento in particolare all'Arduino Uno R3, ma questa guida va bene praticamente per tutte le versioni.
Modo 1: Partiamo dal modo più ovvio: alimentazione da pc con cavo usb.

Nulla da dire, Arduino prende 5volt dalla porta usb del nostro PC, la corrente massima fornibile dalla porta USB è in genere 500mA.
Potete collegare alla porta usb anche un power bank, in modo da alimentare Arduino a batteria in un modo molto semplice e veloce (se già non ne avete uno, su eBay ne trovate migliaia).
Se oltre al cavo usb alimentiamo Arduino anche tramite un connettore o dal pin Vin, verrà bypassata automaticamente l'alimentazione da usb e verrà utilizzata quella esterna.


Modo 2: connettore di alimentazione:

La tensione che forniamo da qui deve essere compresa tra 7 e 12 Volt.
Questa tensione passa attraverso un diodo di protezione (nel caso invertiste accidentalmente le polarità) e poi viene portata a 5 volt (tensione di funzionamento dell'Atmega328) dal regolatore di tensione NCP1117 (datasheet).
Questo regolatore ha una corrente massima in uscita di 800mA, è preferibile però stare più vicini possibile ai 7 volt, perchè il resto della tensione non porta nessun beneficio, ma anzi fa aumentare la temperatura del regolatore.
Ricordatevi che il regolatore deve fornire corrente non solo ad Arduino, ma anche ai dispositivi collegati al pin 5V, quindi non attaccateci direttamente la lavatrice! :)


Modo 3: collegamento diretto al pin Vin


Questo metodo è molto simile al metodo con connettore, infatti anche da qui la tensione passa dal regolatore di tensione prima di arrivare ad Arduino.

L'unica differenza sta nel fatto che questo pin non è protetto con il diodo, quindi fate attenzione ad non invertire le polarità!
Grazie al fatto che non c'è il diodo però la tensione minima può essere un pochino inferiore,
quindi compresa tra 6.5 e 12 Volt.


Modo 4: Collegamento diretto al pin 5V.

Questo metodo me lo sono tenuto per ultimo, perchè è quello che uso più spesso ma è anche il più rischioso (amo il rischio XD)
Si tratta di collegare direttamente una tensione stabilizzata di 5Volt ad Arduino.
La tensione deve assolutamente stare tra i 4.5 e i 5.5 Volt (pena la cottura della vostra amata scheda). Idem per l'inversione accidentale delle polarità.

La cosa positiva è che non dovete tenere sotto controllo il regolatore si tensione per vedere se scalda troppo (di fatto così è bypassato) e alimenterete in modo diretto i dispositivi a 5volt (ad esempio dei servomotori).

inoltre nel caso di uso di batterie viene comodo perchè:
le batterie stilo ricaricabili hanno una tensione nominale di 1.2Volt, quindi se avete un porta batterie tipo questo:


Ottenete una tensione di circa 4.8 Volt (la tensione delle batterie in serie si somma quindi 1.2+1.2+1.2+1.2)
tensione perfetta per essere utilizzata direttamente sul pin 5V.
Con le pile non ricaricabili può diventare più problematico (sono da 1.5 Volt) infatti se ne usiamo 4 arriviamo teoricamente a 6 Volt.
Un trucchetto per perdere il mezzo volt in eccesso è collegare un diodo in serie al cavo positivo (il rosso) del pacco batterie, così facendo dovremmo arrivare a circa 5.4 Volt, valore accettabile per alimentare Arduino (in ogni caso prima di collegarle ad Arduino misurate la tensione con un Voltmetro!).

Spero di aver detto tutto, se avete dubbi o altro scrivete qui sotto, Ciao!!

Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

60 commenti:

  1. Hi, nice read, but I'm wondering about your ideas on using two power sources (I read Italian, but will spare you and not write it!).

    I made a line follower: line sensor, distance sensor on 5V, 6 x 1.5V batteries on Vin that also go to a motor shield driving 2 motors. This did not give optimal results however for driving capabilities. So I ended up ALSO adding a 9V battery to the power in. Things were working better then.
    Any ideas on the why of that? I suppose the two 9V setups were able to give more power? With the 6x1.5V giving the Amps needed for the motor, and the 9V helping with the Uno and the sensors?

    RispondiElimina
    Risposte
    1. Is strange. the courrent can't be the problem. Try to test the voltage on the battery pack, if when connected go down it's possibile that you must replace the battery.

      Elimina
    2. Salve scusate parliamo sempre di corrente continua ciò una batteria di una macchina omoto

      Elimina
  2. Ciao Daniele,
    io vorrei collegare il mio telecomando luci del giardino all'Arduino UNO, in modo da poter accendere e spegnere da remoto. Il telecomando funziona con due batterie a bottone da 3 V, quindi 6 V in tutto, il suo assorbimento medio è di 14 mA.
    I pin digitali di Arduino hanno ciascuno un output di 5 V e 40 mA. Per quel Volt di differenza, posso collegare DIRETTAMENTE il telecomando al pin (quindi SENZA usare le batterie del telecomando) o si deve per forza usare un mosfet per controllare l'alimentazione del telecomando?
    Ciao e grazie!
    Fabiano

    RispondiElimina
    Risposte
    1. Prova ad alimentarlo col pin 5v di Arduino, se si accende e se l'assorbimento è quello che hai detto, vai tranquillo e collegato pure al pin.

      Elimina
    2. Questo commento è stato eliminato dall'autore.

      Elimina
    3. Grazie per la risposta. Però stavo pensando se non ci fosse proprio bisogno di alimentare in modo permanente il telecomando. Mi spiego meglio, io vorrei mantenere sempre premuto con un morsetto il pulsantino del telecomando ed agire, tramite Arduino, sulla sua alimentazione per accendere/spegnere le luci. in tal caso l'alimentazione arriverebbe direttamente dal pin digitale (sono sempre 5 V, no?), che comanderei da remoto. Se sto dicendo qualche castroneria... non aver pietà :)

      Elimina
    4. Si certo sono sempre 5 volt, ti dicevo per fare una prova ed essere sicuro che funziona collegati prima al pin 5V. Poi quando sei sicuro usa il pin digitale. Ciao!

      Elimina
    5. Ok, provo e poi farò sapere.
      Grazie ancora.
      Fabiano

      Elimina
  3. Ciao Daniele,
    tempo fa ho, del tutto accidentalmente, collegato l'uscita +5V ad una alimentazione esterna di quasi 8 V. In pratica dovevo provare un circuitino sulla breadboard alimentandolo con con una batteria esterna e mi sono dimenticato di scollegare la breadboard da Arduino. Mi sono accorto subito della stupidata e ho scollegato il tutto immediatamente. La scheda continua a funzionare correttamente (utilizzo tutti i pin digitali e analogici, e non ho notato alcun malfunzionamento da allora ad oggi. Posso considerarmi fortunato ? Ho salvato la scheda perchè la sovratensione è durata solo pochissimi secondi ?

    Ciao e grazie !
    Federico

    RispondiElimina
    Risposte
    1. Ciao Federico,
      Si è stata solo una questione di tempo, se la scheda fosse rimasta di più con quella alimentazione probabilmente si sarebbe danneggiata!

      Elimina
  4. Ciao Daniele,
    credi sia possibile alimentare arduino via usb, ma tramite il caricatore di un iPad?
    L'uscita del caricabatterie è di 5v a 1000mA, che andrebbe direttamente nell'usb di arduino.
    Potrebbe dare problemi alla scheda?

    RispondiElimina
  5. Grazie Daniele
    Ad ogni domanda che mi faccio hai sempre una risposta
    Ciao
    Tiziano

    RispondiElimina
  6. Buonasera
    ho letto con interesse il suo articolo su come alimentare Arduino .
    Probabilmente per la mia pochezza intellettiva non ho chiaro un punto .
    Alimentando arduino nell'ultimo modo con un alimentatore esterno ( ovviamente stabilizzato a +5V) direttamente sul pin +5V posso continuare a mantenere collegato il PC attraverso la porta USB o si rischia di far danni ( o sulla scheda o peggio sulla porta USB del pc ) , facendomi un giro sulla rete non ho trovato risposta , forse potrebbe aiutarmi lei
    La ringrazio in anticipo
    Stefano

    RispondiElimina
    Risposte
    1. Arduino Uno è provvisto di un componente che in caso di collegamento di un'alimentazione sul jack o sul pin VIN scollega automaticamente l'alimentazione dalla porta USB. Collegando invece la 5v e l'usb non noto niente che discrimini un'ingresso dall'altro quindi si rischia di danneggiare il dispositivo e/o l'usb del PC.

      Elimina
  7. Buongiorno!
    Stavo valutando la possibilità di creare un sistema con Arduino (il mio primo progetto) che debba restare autonomo per molto tempo restando distante da una presa elettrica (giorni, se non mesi). E' fattibile come progetto? Un set di 4/6 batterie al Litio quanto farebbe durare il mio arduino?

    RispondiElimina
    Risposte
    1. ciao, la fattibilità dipende dall'assorbimento che avrà il tuo sistema. Realizza il progetto e misurane l'assorbimento, poi in base a questo dimensiona le batterie. Ciao!

      Elimina
  8. Ciao, volevo sapere se potevo alimentare arduino con un power bank usb visto che ormai se ne trovano di parecchi a buon mercato. Grazie!!!

    RispondiElimina
    Risposte
    1. Certo, collegalo al cavo usb che collegheresti al pc. Fai attenzione che alcuni power bank "sofisticati" rilevano che non stanno caricando un dispositivo e staccano l'alimentazione dopo pochi secondi. Comunque quelli veramente economici non dovresti aver problemi (vedi il "modo 1" nell'articolo) ciao!

      Elimina
  9. Ciao, devo alimentare arduino per dei mesi, utilizzerò una batteria per auto e un dc-dc converter step down tipo lm2596s da cui escono 2A circa.
    credi sia una buona combinazione oppure ho delle controindicazioni?

    RispondiElimina
    Risposte
    1. Ciao, i 2 ampere escono continuamente o è un valore di picco? Presumo sia solo il valore di targa, altrimenti difficilmente durerá mesi la batteria. Ciao

      Elimina
  10. é possibile collegare Arduino a una batteria al piombo (12/18ah) da 6 o 12 v ? se si dove ? devo mantenere alimentato Arduino per circa un mese.

    RispondiElimina
    Risposte
    1. Si certo, se è a 12v la puoi collegare al jack di alimentazione, oppure al pin "Vin". 6volt è un po' al limite, perché il regolatore ti fa perdere un po' di tensione, ma dovrebbe funzionare lo stesso.

      Elimina
  11. Buonasera Daniele,
    è possibile avere una alimentazione principale attraverso il connettore di alimentazione ed avere 4 stilo ricaricabili da 1.2V in modo che in caso di problemi sulla rete elettrica il sistema continui a funzionare a batteria? Avrei bisogno di capire se è possibile creare una sorta di UPS.
    Grazie
    Mirko

    RispondiElimina
    Risposte
    1. Ciao Mirko, la tensione sul connettore di alimentazione é prioritaria rispetto a quella dell'usb, quindi collegando le stilo sull'usb (occhio alla tensione, ti consiglio un Power Bank) dovresti riuscire nel tuo intento. Ciao!

      Elimina
  12. Ciao mircko, dovrei usare un arduino per controllare una piastra riscaldata ,e vorrei alimentare entrambi da un alimentatore da 10A 12volt quelli che vendono i cinesi mica ha problemi l'arduino grazie e scusate ancora

    RispondiElimina
  13. Salve volevo sapere se queste regole valevano pure per l'arduino Nano grazie in anticipo

    RispondiElimina
  14. ciao posso alimentare arduino mega con 6 volt senza bruciare perche' ho provato alimentarlo con alimentatore esterno da 5 volt con hc06 non esegue il comando per accedere led mentre con l'uscta usb del pc funziona.grazie!

    RispondiElimina
  15. Ciao, l'alimentazione sul pin VIN é consigliata sopra i 7 volt, perché passa attraverso il regolatore di Arduino che ha una sua caduta di tensione. Se sei sicuro di avere una alimentazione stabile a 5volt potresti collegarti direttamente al pin 5v. Però devi essere sicuro non superi i 5.5 circa, altrimenti rischi di bruciare il micro.
    Complimenti per il progetto, anche lo schema é molto chiaro, se ti va di condividerlo lo pubblicherei volentieri. Ciao!

    RispondiElimina
  16. Ciao a tutti, scusate, io sto cercando di riparare una cassa portatile da cui si è staccato il pezzo a cui si dovrebbe collegare un cavo di alimentazione da 5v. Provo a spiegarmi meglio , smontando la cassa e dando un'occhia alla scheda, manca proprio il pezzo che dovrebbe permettere l'agganciarsi del cavo, esattamente il pezzettino nero indicato dalla freccia nel "Modo 2". mi sapete dire come si chiama quel pezzo e dove lo posso ordinare ( siti tipo amazon o ebay )

    RispondiElimina
  17. Salve Daniele, vorrei collegare Arduino ad un Raspberry per usarlo come gateway 433mhz per il mio sitema di domotica (openhab), mi domandavo se per alimentare arduino potevo usare il pin 5v del PI zero. Grazie. Saluti Bruno

    RispondiElimina
    Risposte
    1. Salve Bruno, si é possibile, però é sconsigliabile utilizzare il pin 5v di Arduino perché un picco di tensione su quel pin potrebbe danneggiare il micro.
      Daniele

      Elimina
  18. Nel caso di un circuito standalone come descritto nella tua guida "Arduino Standalone, schema e circuito" e alimentato con il metodo 4 è necessario utilizzare altra componentistica? in alcuni schemi ho visto un condensatore da 10 uF inserito a ponte fra positivo e negativo. Grazie.

    RispondiElimina
    Risposte
    1. No i componenti necessari sono quelli, un condensatore tra positivo e negativo stabilizza la tensione di alimentazione, quindi mettilo pure, ciao!

      Elimina
  19. Ma si può alimentare con un "Mini pannello solare" da 5v 1W

    RispondiElimina
    Risposte
    1. Un pannello solare non è molto stabile come alimentazione, soprattutto se la tensione nominale è molto vicina alla tensione necessaria ad Arduino.
      Ti consiglio di alimentare una batteria tampone con il pannello, e con la stessa batteria alimentare Arduino.

      Elimina
  20. ho comprato un arduino uno r3 da Arduino Uno R3 e voglio imparare e usarlo a riguardo. per favore aiutatemi il suo uso di base e siti di tutorial su Arduino Uno R3

    RispondiElimina
  21. Ciao Daniele, vorrei trovare un modo di alimentare arduino con la 220v di casa ma senza usare i classici trasformatori AC/DC, perché vorrei cercare di incassarlo in una cassetta 503.
    Non sono espertone di elettronica, ma questo potrebbe fare al caso mio? https://www.amazon.it/AZDelivery-220-Adattatore-Arduino-Raspberry/dp/B07C53B1GZ/ref=sr_1_9

    Piccola altra domanda... visto che arduino uno è un po' grosso per una 503, in realtà vorrei usare il nano, o meglio ancora qualcosa di molto più piccolo come un adafruit trinket, consigli su come alimentarlo con la 220v?

    RispondiElimina
  22. Ciao Daniele,
    Volevo chiederti se la corrente in ingresso sul pin 5v ha delle limitazioni.
    Mi spiego: ho un impianto HiFi fatto in casa ed è alimentato con un alimentatore in continua che fornisce 5,12 e 24 volts; ho intenzione di comandare l'intero impianto tramite un telecomando IR avendo come ricevitore Arduino UNO e vorrei alimentarlo con i 5v in uscita dall'alimentatore che però eroga 1,5A. Ciò provocherebbe surriscaldamenti/danni alla scheda Arduino? Grazie in anticipo

    RispondiElimina
    Risposte
    1. Ciao, no nessun problema, infatti 1.5 Ampere é la corrente MASSIMA che l'alimentatore può erogare, quella effettivamente erogata dipende dal carico. Assicurati che i 5 volt siano stabili e reali, infatti se superi i 5.5v potresti danneggiare l'Arduino.

      Elimina
  23. Ciao Daniele, grazie per i consigli.
    Io ho già alimentato il mio arduino uno con l'apposito alimentatore (metodo 2). Vorrei però realizzare un sistema che in caso di mancanza di corrente possa continuare ad avere arduino alimentato. Potrei utilizzare un power bank da collegare sul connettore usb? In caso normale funzionerebbe l'alimentazione da alimentatore? e come secondo fonte invece l'USB?
    Grazie in anticipo

    RispondiElimina
  24. Buongiorno
    una domanda che per altri è scontata ,volevo sapere se posso alimentare Arduino con 12 volt dal connettore di alimentazione : e continuare la programmazione tramite USB.


    RispondiElimina
    Risposte
    1. Ciao Paolo, si certo la scheda è studiata appositamente per questo scopo.

      Elimina
  25. Gentilissimo
    Hai notato che alimentando Arduino tramite la "Power Supply" le "cose cambiano?"; ad esempio i tempi di lampeggio di un led tramite lo sketch "Blink" non è più rispettato.
    Strano....

    Cordialità
    Michele D'Occhio

    RispondiElimina
    Risposte
    1. Ciao, si molto strano, potresti avere un problema al regolatore

      Elimina
  26. Ciao Daniele
    ho realizzato una griglia a led rgb utilizzando una strip da 121 led su cui gira Snake il gioco , il circuito si compone anche di un display lcd classic per segnare il punteggio; per alimentarlo utilizzo il connettore Arduino power supply collegato ad un alimentatore da 9v/1a , il tutto funziona ma saltuariamente non si accende la griglia o I comandi non rispondono corettamente, mi è venuto il dubbio possa essere l'alimentazione non corretta. tu cosa ne pensi? grazie

    RispondiElimina
    Risposte
    1. Ciao, non saprei, come alimenti la griglia? Che assorbimento ha?

      Elimina
  27. ciao la griglia è alimentata direttamente dai 5v di Arduino, l'assorbimento varia durante l'evoluzione del gioco (presume che al Massimo arrivi a 20ma x 121 circa 2,4 Ampere

    RispondiElimina
    Risposte
    1. Secondo me è una corrente troppo alta da far passare di lì. dovresti alimentare il tutto esternamente e utilizzare Arduino solo per la logica

      Elimina
  28. effettivamente stavo pensando di alimentare la striscia con un Alim. esterno da 5v 10a magari mettendo un condensatore tra +/- da 1000mf , e una resistenza da 330ohm sul piedino di Arduino e il cavo dati della striscia, e sempre dall'alimentatore esterno alimentare anche Arduino esterno! pensi possa funzionare meglio?
    grazie per il tuo tempo

    RispondiElimina
    Risposte
    1. Non saprei dirti se il problema è dato dall'alimentazione, ma è fortemente probabile, ed in ogni caso fare passare tutta quella corrente attraverso l'arduino potrebbe causare altri problemi in futuro

      Elimina
  29. Scusae l'ignoranza,ma per sicurezza: Nel jack il positivo e' quello centrale,vero?

    RispondiElimina
  30. Ciao Daniele, volevo una informazione più dettagliata perché fino a questo momento nessuno a cui ho chiesto è riuscito a darmi una risposta chiara , semplice e concisa.

    QUESITO: Alimentare esternamente ARDUINO NANO + 6 SERVO MG996r-SG90

    Come posso alimentare il tutto?

    Vorrei alimentare naturalmente Servo e Arduino distintamente
    Andiamo a noi... pensavo di fare cosi

    6 SERVO = 2 Batterie in parallelo Litio 18650 da 3.7v (+ andrà al Vin di Arduino)
    ARDUINO NANO = 1 Batteria Litio 18650 da 3.7v (+ andrà al 5V di Arduino) oppure 4 AA 1.2v ricaricabili.

    Interessa ovviamente che non bruci nulla ne per difetto ne per eccesso, e soprattutto se ritieni la quantità di energia ottima per avere una autonomia di almeno 4 ore sia per arduino che per i servo.

    I servo devono solo aprire dei flaps di una armatura. Niente di più.

    Spero in una tua risposta presto. Grazie mille.



    RispondiElimina
    Risposte
    1. Ciao, io non collegherei il + delle batterie per i servo al Vin, portalo direttamente al + dei servo. Poi 3.7v per quel servo non sono pochi? Infine naturalmente tutti i comuni devono essere collegati tra loro.

      Elimina
  31. Ciao Daniele
    quanto è la corrente massima prelevabile dal pi +5v di arduino nano?Per comodità di alimentazione per altri dispositivi, alimento arduino nano al pin Vin con +12vcc prelevati da un alimentatore con uscita da 7812, poi ho esigenza di alimentare un modulo rele optoisolato che lavora solo a 5v prelevati dal pin +5v di nano con assorbimento di circa 70mA minima su singolo rele e massima con 4 rele di circa 250mA. Ho testato tutto al banco con arduino uno R3 senza problemi ma con arduino nano? sembra che dopo qualche minuto vada in protezione vedo i led di input sui rele che vanno giu e i rele cominciano a fare rumore.
    Grazie per una tua risposta
    Loris

    RispondiElimina
  32. Ciao Daniele!
    Voglio realizzare un impianto di domotica, per fare il quale ho bisogno di 4 mega (ho una cinquantina di ingressi e una cinquantina di uscite). Li ho messi tutti in un quadro, sono uno accanto agli altri, li vorrei alimentare da un unico alimentatore. Posso alimentare uno dei mega con un alimentatore standard (USB/Power supply) e gli altri 3 collegando i pin GND e 5V in parallelo tra i 4 mega e le breadboards? Pensi che possa reggere?

    RispondiElimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post