«

»

Ott 24

Stampa Articolo

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 !!!

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/solar-charger-shield-arduino.html

30 comments

Vai al modulo dei commenti

  1. Francesco

    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. Mauro Alfieri

      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

  2. Thomas

    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. Mauro Alfieri

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

      Mauro

  3. Giuseppe

    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. Mauro Alfieri

      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

  4. Calo

    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. Mauro Alfieri

      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.

  5. Michele

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

    1. Mauro Alfieri

      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.

  6. Simone

    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. Mauro Alfieri

      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. Simone

        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. Mauro Alfieri

          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.

          1. Simone

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

          2. Simone

            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

          3. Mauro Alfieri

            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.

          4. Mauro Alfieri

            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.

          5. Simone

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

          6. Mauro Alfieri

            Pubblicato oggi 🙂

  7. Salvatore Giannella

    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. Mauro Alfieri

      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. Salvatore Giannella

        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. Mauro Alfieri

          Ottimo Salvatore, attendiamo cosa ti rispondono.

  8. Nicolò

    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. Mauro Alfieri

      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.

  9. Gianluca

    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. Mauro Alfieri

      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.

  10. Riccardo

    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. Mauro Alfieri

      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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>