Solar Charger Shield per Arduino o Solar Shield

La Solar Charger Shield o simpaticamente chiamata Solar Shield per arduino è una delle schede presenti nel mio ultimo ordine di materiale da provare.

solar shield arduino

Chiamarla solo solar Shield, sebbene sia più intuitivo e facile da ricordare, non è del tutto corretto ed anzi sminuisce una caratteristica che questa shield possiede: ricaricare la tua batteria a ioni di litio.
Da quì avrai più chiaro il nome: Solar Charger Shield ( Shield di ricarica solare ).

Caratteristiche della Solar Charger Shield

Senza perderci in inutili giri vediamo le caratteristiche principali di questa shield così come riportate sul sito ufficiale:

  • puoi collegare batterie da 2.7V a 4.2V;
  • ottieni in output sempre una tensione di 5V;
  • puoi connettere una batteria a ioni di litio ed un pannello solare;
  • la corrente massima che può erogare è 700mA;
  • presenta un connettore mini-usb con cui puoi caricare la batteria in assenza del pannello solare;
  • è protetta contro i corto circuiti accidentali;
  • ha un indicatore a led dello stato della batteria ( Rosso: in carica, Verde Caricata );
  • La porta Usb a 5V puoi utilizzarla per accendere una pampada usb o una piccola ventolina funzionante a 5v;
  • le sue dimensioni sono: 70.6 mm x 57 mm.
Sul Wiki ufficiale trovi tutte le caratteristiche dettagliate, di cui ti ho riportato il solo estratto di quelle principali.
Avrai notato che tra le caratteristiche ci sono la prima e la seconda che sembrano indicare un opposta informazione, ossia posso collegare una batteria da 3,7v, ad esempio, e ottendo 5v in uscita ( output ).
Ha dell’incredibile questa caratteristica, in realtà il concetto per quanto complesso si fonda su un componente presente sulla solar charger shield: LM3224.
Come indicato nel suo Datasheet ufficiale si tratta di uno Step-up PWM DC/DC Converter ossia di un convertitore DC-DC di tipo Step-Up ( letteralmente: passo-su ) di tipo PWM.
Il suo compito è di prelevare una tensione di ingresso ( INPUT ) di 3,3v e di elevarla fino a 8v, -8v e 23v, per farlo sfrutta il principio degli alimentatori switch di tipo boost.

Uso della Solar Charger Shield

La shield può essere impiegata in tutti i tuoi progetti destinati ad un uso esterno, quindi in presenza di sole, in cui vuoi rendere autonomo il progetto alimentandolo ad energia solare:

  • sensori di movimento esterni
  • centraline meteo
  • robot da esterno tipo il nostro Leo-Wi Rover5
  • il Robot Beghinner

Collegamenti

la solar charger shield dispone di una porta mini-usb a cui puoi collegare un cavo di alimentazione esterno per caricare la tua batteria, un connettore per la batteria da 3,7v 2Ah o superiore ( fino a un max di 4,2v ):

batteria Li-Po

batteria Li-Po 3,7v 2A

ed un connettore per un pannello solare da 5,5v 1w, io ho ordinato questo tipo:

pannello solare

pannello solare 5,5v 1w

Ed ecco come si presentano i connettori sulla solar charger shield:

solar charger shield

il verso di inserimento è obligato dal tipo di connettore e quindi molto difficile invertire i collegamenti.

Lo sketch di esempio

dal sito ufficiale ho preso questo esempio:

/*
Solar charger shield voltage measurement example.
Connect VBAT pin to analog pin A0.
The pin measures 2.0 V when not under direct exposre to sunlight and 
5V when exposed to sunlight.
This example code is in the public domain.
*/

const int analogInPin = A0;

int BatteryValue = 0;
float outputValue = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  BatteryValue = analogRead(analogInPin);            

  outputValue = (BatteryValue*5)/1023;

  Serial.print("Analog value = " );
  Serial.print(BatteryValue);
  Serial.print("\t voltage = ");
  Serial.println(outputValue);
  Serial.println("V \n");  

  delay(10);
}

siccome ritengo sia adeguatamente semplice per comprendere facilmente come posso leggere da Arduino lo stato di carica della mia Solar Charger Shield ho deciso di non scriverne uno io, ma di utilizzarlo.

Non mi soffermo su tutte le linee se qualcuna non ti è chiara puoi:

  1. leggere nella sezione corsi un po’ di articoli base su arduino e chiarirti le idee;
  2. commentare questo articolo ed io proverò a risponderti prima possibile;

La linea 9 identifica il pin di comunicazione tra la solar charger shield e arduino, se inserisci la schield su arduino ottieni che l’unico pin con cui puoi comunicare è A0, se invece effettui le connessioni cone dei cavi tra la shield e arduino puoi scegliere a quale pin collegare l’A0 della solar charger shield ed uno dei pin analogici arduino;

linea 11: definisci una variabile di tipo integer in cui memorizzerai il valore letto sul pin A0;

linea 12: definisci una variabile di tipo float ossia che può contenere valori con la virgola in cui ci metterai il valore in tensione della batteria calcolato;

linea 15: attiva la comunicazione seriale a 9600 baud;

linea 19: mediante il comando analogRead( pin ) leggi il valore analogico presente sul pin A0;

linea 21: esegui il calcolo di conversione tra il valore letto e l’effettivo voltaggio della batteria, il calcolo è semplicemente una proporzione partendo da alcuni punti conosciuti: sai che la shield eroga al massimo 5v, sai che il valore analogico convertito da arduino a 5v è 1023 ( 10bit ), infine, conosci il valore letto sul pin A0 ( BatteryValue ). La proporzione è 5v : 1023 = X : BatteryValue da cui segue che X = (5 * BatteryValue) / 1023 che è esattamente la formula scitta in questa linea;

linee 23-27: scrivi sul Monitor Seriale dell’IDE i valori letti sia l’effettivo valore analogico da 0 a 1023, sia il valore calcolato alla linea 21.

Ora ti è tutto chiaro, puoi aggiungere la tua solar charger shield al progetto che stai realizzando.

Buon divertimento !!!

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/solar-charger-shield-arduino.html

34 comments

Skip to comment form

    • Francesco on 10 marzo 2013 at 11:07
    • Reply

    salve, volevo sapere se il pin A0 invia ad arduino il valore della tensione proveniente dal pannello solare o della batteria che sta caricando? e l’interruttore ON-OFF a cosa serve? Grazie

    1. Ciao Francesco,
      se non ricordo male invia il valore della tensione proveniente dalla batteria, puoi verificare sul datasheet del produttore per conferma.
      L’interruttore interrompe l’alimentazione dal pannello.

      Mauro

    • Thomas on 5 luglio 2013 at 01:01
    • Reply

    Salve, visto che anche io l’ho ordinato, mi sono accorto che 700ma sono pochi per un rover, il mio è un 4×4 piccolo ma facendo i conti consuma quasi 800ma solo i motori, per non parlare se vanno in stallo perchè si arriva a 4a, come posso ovviare al problema?
    Mi vengono in mente 2 soluzioni, o uso una batteria separata per i motori ma non verrebbe ricaricata dal pannello, o prendo un altro solarshield e lo metto in parallelo in modo da avere 1,4 a…
    Vedi altre soluzioni?
    Grazie mille

    1. Ciao Thomas,
      La seconda soluzione mi sembra quella più adatta ad ottenere il tuo scopo: un rover alimentato ad energia solare.

      Mauro

    • Giuseppe on 4 novembre 2013 at 07:12
    • Reply

    Gentile Mauro,
    seguo da tempo il tuo blog che mi è servito tantissimo per realizzare molti progetti, anche complessi, questo del pannello solare è una dritta eccezionale. La domanda è dove li compri? Vorrei realizzare un progetto per un camper e quindi ovviare all’utilizzo della batteria dello stesso.
    Saluti
    Giuseppe

    1. Ciao Giuseppe,
      i componenti e le shield le acquisto sul sito http://www.robot-domestici.it per quanto riguarda i pannelli solari ne ho riciclati alcuni da una fornitura di un amico e un paio li ho acquistati in una fiera dell’elettronica.

      Mauro

    • Calo on 16 agosto 2014 at 19:00
    • Reply

    Salve,
    sono molto interessato a questa scheda e credo che la acquisterò. Sai dirmi se oltre alle batterie agli Ioni di Litio è possibile utilizzare anche le più convenzionali stilo ricaricabili Ni-Mh? Il monitoraggio della tensione sarebbe sempre possibile?

    Un saluto e complimenti per il sito
    Carlo

    1. Ciao Carlo,
      non ho mai provato con batterie differenti ma suppongo che se il produttore ha usato le LiPo è per sfruttare il loro potenziale di carica rapida e privo di elettronica di controllo sulla carica. Le Ni-Mh hanno caratteristiche differenti e dovresti consultare il produttore o provare.

    • Michele on 19 novembre 2014 at 08:08
    • Reply

    Come la posso usare per mantenere carico il mio arduino in una serra cosa dovrei cambiare e aggiustare di codice?

    1. Ciao Michele,
      questo articolo presenta solo come funziona la shield.
      Come leggi nella descrizione dello sketch quest’ultimo serve a farti visualizzare i dati sul monitor seriale.
      La parte di carica ed alimentazione è a cura della shield stessa che fa tutto da sola.

      Certo se vuoi realizzare una serra dovrai calcolarti i pannelli da usare in funzione della superficie irradiata, le ore di luce ed il consumo della serra stessa.

  1. Ciao. Ho acquistato questa shield per alimentare la mia postazione meteo realizzata con Arduino. Purtroppo ho anche la shield wifi che mangia parecchio e anche facendola connettere per circa un minuto ogni ora, la batteria da 2200 mAh mi è durata circa 17 ore (in una giornata di nebbia).
    E’ possibile collegare piú pannelli solari o hai qualche consiglio per aumentarne la durata?
    Ho visto che c’è una batteria da 6600 mAh ma penso che non risolverebbe il problema poichè un pannellino come quello non caricherebbe abbastanza.
    Grazie 🙂

    1. Ciao Simone,
      io opterei per un pannello di maggiori dimensioni ed un caricatore per pannelli solari dimensionato opportunamente.
      Questa shield è il primo passo per realizzare un progetto con l’energia solare ma di certo, come ti sei presto reso conto, non è in grado di supportare shield esose, dal punto di vista energetico, come la wifi.

      1. Ma vedendo le specifiche la shield può gestire (se non sbaglio) 700mA. Ognuno dei pannelli ha un picco di corrente di 170mA. Quindi con 4 pannelli in parallelo dovrei star sotto i 700mA (arrivando a 680), starei sempre sulla stessa tensione di circa 5V e magari mettendo un diodo in serie in ciascun pannello eviterei inversioni di corrente se un pannello si trova ad una tensione superiore rispetto ad un altro (con una perdita di 0.7 V ma penso non sia un problema).
        In linea teorica mi sembra un procedimento corretto.
        Ovviamente non ho ancora misurato con un amperometro quanta corrente occorre al mip circuito ma facendo un calcolo approssimativo se la batteria è da 2200mAh ed è durata circa 17ore senza praticamente ricaricarsi allora il circuito usa circa 130mAh. Potrei dimezzare i tempi di connessione della shield wifi e avrei forse un piccolo guadagno ma con i 4 pannelli e magari una batteria da 6600mAh secondo me risolverei il problema di durata (con la batteria piú grande e di caricacon i 4 pannelli orientati ad angolature differenti). Che ne dici?

        1. Ciao Simone,
          il tuo ragionamento mi sembra corretto, non ricordavo che la shield potesse gestire 700mA di pannelli.
          Qualche dubbio nel calcolo che hai eseguito è quello della durata e dell’assorbimento del circuito in quanto:
          1. se il circuito è in carica ed il pannello fornisce 170mA ( max ) di carica è vero che la batteria supporta il circuito ma è pur vero che intanto qualcosina carica, per essere certo del consumo dovresti eseguire una misurazione per un tempo significativo;
          2. la batteria al termine delle 17 ore che carica possiede? Il pannello non è irradiato per 17 ore continue per cui se 8 sono le ore di luce 9 sono le ore di buio in cui la sola batteria alimenta il progetto;
          3. se il pannello produce 170mA di max e diciamo 130mA in giornata nuvolosa ed il circuito assorbisse realmente 130mA avresti auto sufficienza del circuito nelle ore diurne e poca o nessuna carica della batteria.
          4. infine il circuito non assorbirà sempre il massimo in quanto il picco immagino arriverà solo in presenza di ricerca e connessione wifi, certo questo dipende da come hai scritto lo sketch in quanto se mantieni costantemente attiva la connessione il risparmio tra 1,2 o 3 invii di dati è irrisorio.

          Se ti va di eseguire qualche test potresti:
          – attivare il tutto con una carica minima della batteria, giusto per lo spunto, e misurare la durata di attività del progetto;
          – sulla shield mi sembra esista un VBAT pin per controllare la carica della batteria con lo sketch che ho pubblicato, tale pin va connesso al pin analogico da cui vuoi leggere il valore di carica, prova a monitorare anche questo valore durante il normale funzionamento.

            • Simone on 28 dicembre 2014 at 17:01

            Certo. Tengo sott’occhio tutto. Provo e ti dico. Intanto grazie delle dritte 🙂

            • Simone on 26 gennaio 2015 at 22:55

            Ciao sono poi riuscito a fare tutto. Con 4 pannelli, 4 diodi e 1 batteria da 6 A. Però ho anche aggiunto un relè, altrimenti non sarebbe durata a sufficienza la carica 🙂

            Ho messo tutto qui 🙂 http://www…..it/simo/meteo_simo.php

          1. Ciao Simone,
            bellissimo progetto.
            Ho oscurato il link perché nel tuo sito hai messo il logo Arduino che è marchio registrato e non penso si possa usare senza autorizzazone.
            Poiché il mio Blog è molto visitato e controllato anche da Team ufficiale Arduino cerco di evitare querele e segnalazioni di difformità.

            Se vorrai pubblicare il tuo progetto sul blog sarò felice di farlo con un articolo dedicato al tuo progetto, con tanto di link e riferimenti all’autore, ma devi essere sicuro di non infrangere nessun regolamento e legge.

          2. Ciao Simone,
            bellissimo progetto.
            Ho oscurato il link perché nel tuo sito hai messo il logo Arduino che è marchio registrato e non penso si possa usare senza autorizzazione.
            Poiché il mio Blog è molto visitato e controllato anche da Team ufficiale Arduino cerco di evitare querele e segnalazioni di difformità.

            Se vorrai pubblicare il tuo progetto sul blog sarò felice di farlo con un articolo dedicato al tuo progetto, con tanto di link e riferimenti all’autore, ma devi essere sicuro di non infrangere nessun regolamento e legge.

            • Simone on 27 gennaio 2015 at 11:52

            Hai ragione e ho provveduto a toglierlo.
            Grazie della tua offerta. Ci penserò 🙂

          3. Pubblicato oggi 🙂

  2. Ciao, ho preso la solar shield ma non riesco ad alimentarci arduino…ho messo l’interruttore su on ho caricato la batteria usando l’ingresso usb e un caricatore da parete ma noto che non si accende la spia verde di batteria carica e arduino non si accende…ho misurato con un tester la tensione in uscita (sulla +5v dello shield) ma mi segna 4v esatti… cosa sbaglio?

    1. Ciao Salvatore,
      se la batteria è carica dal +5v devono uscire 5v o al massimo 4,9v altrimenti arduino non riuscirai ad alimentarlo.
      Potrebbe essere danneggiata la shield, prova a contattare il venditore segnalando la misura che esegui.

      1. Ti ringrazio, io ho preso il kit solar large da robotdomestici, oggi li ho contattati speriamo che mi risolvano il problema, il 2 luglio devo presentarlo per gli esami di maturità che ho fatto un inseguitore solare a 2 assi sfruttando il tuo tutorial. Posso “ingannare il sistema” usando un power bank che nasconderò e fingerò di usare la carica solare

        1. Ottimo Salvatore, attendiamo cosa ti rispondono.

    • Nicolò on 30 giugno 2016 at 22:43
    • Reply

    Ciao Mauro.
    Scusami io ho una domanda. Io vorrei utilizzare la shield per alimentare arduino sia di giorno che di notte. Pertanto io penserei di utilizzare la porta USB per alimentarlo di giorno, caricando intanto la batteria per poi utilizzarla di notte. E’ possibile farlo? Perché non ho capito se la shield alimenta arduino con il pin Vin oppure no. Inoltre la batteria può essere utilizzata in automatico quando non c’è il sole? Grazie e complimenti!

    1. Ciao Nicolò,
      esistono delle shield o simili che possono fare questa funzione.
      Anche questa stessa dovrebbe essere in grado di farlo, verifica sulla pagina del produttore se rilasciano delle informazioni in merito.

    • Gianluca on 26 maggio 2017 at 10:21
    • Reply

    Ciao Mauro,
    avrei una domanda. Per caso c’è qualche limitazione nella corrente massima delle batterie?
    Mi spiego meglio, ho collegato una batteria 18650, 3,7V 3400mAh e il CN3083 si è bruciato. Non capisco se ci sia stato qualche corto circuito accidentale o se la batteria era “troppo” per lui. In realtà la mia idea era collegarne tre in parallelo in modo da creare un power bank da 10000mAh.
    Ti ringrazio in anticipo per la risposta
    Gianluca

    1. Ciao Gianluca,
      sull’amperaggio della batteria che puoi collegare devi controllare il datasheet del produttore ( link nella descrizione della shield ) al fine di verificare se esistano dei limiti di amperaggio.
      Devi inoltre considerare il valore di amperaggio erogato dal chip di ricarica che deve essere adatto al tipo di LiPo che intendi caricare.
      Sul web ci sono molti articoli dedicati alle LiPo ed al loro corretto uso.

    • Riccardo on 4 novembre 2017 at 07:23
    • Reply

    Ciao Mauro,

    Ho intenzione di realizzare un progetto, caricare una batteria ai polimeri di lito grazie a un panello solare. Si potrebbe utilizzare questo modulo come battery charger? https://www.dfrobot.com/product-851.html o è meglio questo? https://www.dfrobot.com/product-1139.html
    Grazie del tuo tempo
    Rick

    1. Ciao Riccardo,
      premetto che non possiedo/conosco nessuno dei due prodotti di cui ha inserito il link, per cui il mio giudizio è solo basato sulla descrizione del produttore.
      Per l’applicazione che scrivi il secondo ha caratteristiche più adatte ma in entrambi i casi leggi bene il datasheet pubblicato per capire che tipo di batteria puoi utilizzare.

      P.S. rimuovo gli altri commenti identici che hai inserito.

    • Paolo on 21 marzo 2018 at 23:24
    • Reply

    Buonasera Mauro,
    forse sarà una domanda scontata.
    Siccome sto cercando di utilizzare la solar charger shield v2.2 in un mio progetto, mi trovo con il problema che un pannello solare da 6v 3,5W (circa 500mah) non riesce a caricare per niente la batteria, cosi ho pensato di collegarne due/tre in parallelo (1500mah teorici), sempre tenendo conto del fatto che non sara. La shield carica massimo fino a 900mah, ma, secondo la mia supposizione, avere qualche mah in più non fa male e non dovrebbe danneggiare la scheda, poichè la tensione resta invariata.
    Il mio dubbio è proprio questo, può danneggiare la scheda o no?
    Grazie mille.
    -Paolo

    1. Ciao Paolo,
      questa domanda sarebbe meglio porla al produttore della scheda se non è già indicato un warning nella documentazione che ti ha fornito o che trovi sul suo sito.
      Io non ho mai provato a caricare batterie con più pannelli connessi, i test che ho eseguito e mostrato caricano correttamente la batteria con il pannello in dotazione.

        • Paolo on 22 marzo 2018 at 13:51
        • Reply

        Io uso due 18650 da 2560mah l’una, sarà per questo che fa fatica.
        Nelle documentazioni sul sito parlano di un limite di tensionendi input.
        Inoltre parla di un massimo di corrente che può erogare (max 900mah) pero, ma non un massimo di corrente di input.
        L’assistenza sostiene che potrebbe danneggiare la scheda. Ma basandomi ulsu una risposta precedente, prendono le loro risposte con le pinze.
        Mi toccherà provare e sperare che non si sciogli tutto

        1. Ciao Paolo,
          si penso che la scelta della sperimentazione sia la migliore se vuoi toglierti dei dubbi. Tuttavia considera che la corrente di output max è di 900mAh per cui per caricare due celle da 2560mah co vorranno 6ore alla massima potenza erogabile.
          Inoltre io non ci caricherei due celle LiPo senza un adeguato circuito di bilanciamento delle celle, vedi i miei articoli sulle LiPo se non sai perché.

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.