La Solar Charger Shield o simpaticamente chiamata Solar Shield per arduino è una delle schede presenti nel mio ultimo ordine di materiale da provare.
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.
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 ):
ed un connettore per un pannello solare da 5,5v 1w, io ho ordinato questo tipo:
Ed ecco come si presentano i connettori sulla 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:
- leggere nella sezione corsi un po’ di articoli base su arduino e chiarirti le idee;
- 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 !!!
38 commenti
Vai al modulo dei commenti
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
Autore
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
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
Autore
Ciao Thomas,
La seconda soluzione mi sembra quella più adatta ad ottenere il tuo scopo: un rover alimentato ad energia solare.
Mauro
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
Autore
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
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
Autore
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.
Come la posso usare per mantenere carico il mio arduino in una serra cosa dovrei cambiare e aggiustare di codice?
Autore
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.
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 🙂
Autore
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.
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?
Autore
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.
Certo. Tengo sott’occhio tutto. Provo e ti dico. Intanto grazie delle dritte 🙂
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
Autore
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.
Autore
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.
Hai ragione e ho provveduto a toglierlo.
Grazie della tua offerta. Ci penserò 🙂
Autore
Pubblicato oggi 🙂
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?
Autore
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.
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
Autore
Ottimo Salvatore, attendiamo cosa ti rispondono.
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!
Autore
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.
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
Autore
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.
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
Autore
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.
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
Autore
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.
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
Autore
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é.
Ciao Mauro, complimenti per il blog :))
Ho una domanda sul solar shield, se la batteria che collego è 3,7 watt e Arduino gira a 5 watt, la batteria si scarica busito oppure ho il mio solar shield fulminato?
Autore
Ciao Air,
quelli a cui ti riferisci sono volt non watt, 3,7v è la batteria e 5v l’alimentazione di Arduino Uno.
La solar shield è realizzata in modo da funzionare sia come carica della batteria singola cella da 3,7v sia di erogare i 5v; va precisato, come hai letto, che la shield eroga al max 700mAh, da cui puoi calcolarti quanto durerà la batteria stessa.
Ciao Mauro,
Poi lo stech è rotto
Autore
Ciao Air,
mi specifichi dove ti risulta non funzionate lo sketch ?
Mauro