spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Robotica di base > Arduino

Rispondi
 
Strumenti discussione Modalità  visualizzazioe
  #1  
Vecchio 11-03-2016, 20.11.52
michelozzo michelozzo non è collegato
Nuovo robottaro
 
Data registrazione: 03-03-2014
Residenza: Piombino
Età : 54
Messaggi: 27
Potenza reputazione: 0
michelozzo E' per ora ancora un mistero
Predefinito Alimentare arduino con batteria lipo e contemporaneamente misurarne il valore

Salve a tutti, chiedo umilmente che qualcuno mi dia una risposta perché proprio IO NON CI RIESCO. Premetto che sono alle prime armi con arduino quindi spero di capire e superare anche questa difficoltà. Ho realizzato una board utilizzando una scheda arduino nano che necessariamente deve essere alimentata con una piccola batteria lipo a una cella con tensione 3,7 volts. Quando la batteria è carica la sua tensione è di circa 4 volts. Ho fatto dei test strumentali con un alimentatore e ho notato che la scheda arduino alimentandola esternamente al punto vin funziona senza problemi fino ad una tensione minima di 3,6 volt; Visto che il mio circuito assorbe pochi milliampere questo piccolo range di tensione mi basta per avere un’autonomia di decine e decine di ore. Dopo un po’ di utilizzo del mio apparecchio con grande soddisfazione, cercando di migliorarlo ulteriormente ho pensato di monitorare la batteria con dei led di segnalazione tensione; ho fatto i dovuti calcoli per i range numerici che aduino trasforma in base alla lettura analogica sui pin A0…A5 e ho modificato il firmware con degli IF e ho attivato il serial monitor…e qui è arrivato il problema. Se collego un alimentatore esterno al pin analogico e vario la tensione applicata simulando una batteria collegata esternamente, funziona tutto correttamente ovvero per la tensione che arduino riceve viene riportata in numero corretto sul monitor seriale e il firmware fa quello che deve fare accendendo i led correttamente; se invece collego la batteria lipo sia al pin vin che al pin A0 (quello adoperato per la lettura analogica) il sistema va in crisi dandomi dei valori assolutamente sballati. Misurando la tensione con un multimetro sul pin A0 di 3,7Volts corrispondente alla tensione esatta della batteria, anziché rendermi sul monitor seriale il valore di circa 757, il monitor seriale mi rende un valore di 860…inspiegabile! Si invece ricollego l’alimentatore e lo metto al valore di 3,7 volts esatti il valore sul monitor seriale torna esatto. Deduco che non è possibile alimentare arduino con una batteria esterna e contemporaneamente controllare il suo valore di carica. Aiutatemi per favore più che altro per farmi capire il perché visto che non riesco a trovare il bandolo della matassa. Grazie infinite a tutti
Rispondi citando
  #2  
Vecchio 12-03-2016, 06.17.58
L'avatar di guiott
guiott guiott non è collegato
Robottaro sostenitore
 
Data registrazione: 23-04-2004
Residenza: Roma
Età : 67
Messaggi: 1,418
Potenza reputazione: 350
guiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua fama
Invia un messaggio via AIM a guiott Invia un messaggio via MSN a guiott Invia un messaggio via Yahoo a guiott Send a message via Skype™ to guiott
Predefinito

Nei microcontrollori, a default, l'ADC (analogRead) usa come tensione di riferimento (Vref) la stessa tensione di alimentazione. Con opportune configurazioni questa può essere spostata su alcuni pin particolari offrendo maggiore flessibilità.
Nel caso di default il valore ritornato dall'analogRead è relativo ad una frazione della tensione di alimentazione. Mi spiego meglio, se la Vcc = Vref = 5V e la tensione su A0 è 3,7V la lettura sarà circa 3,7/5*1024 = 757

Se la Vref = A0 il riferimento varia con la stessa legge del valore da misurare. In teoria dovresti misurare sempre 1024 -> Vbat/Vbat*1024=1*1024

In parole povere... è un cane che si morde la coda

La Vref, quindi la tensione di alimentazione, deve essere stabilizzata per poter usare l'ADC.

P.S.
Dimenticavo, se usi il monitor seriale la scheda dovrebbe essere alimentata a 5V tramite l'USB, quindi cambiano molte cose
__________________
Guido
------
www.guiott.com

Ultima modifica di guiott : 12-03-2016 alle ore 06.21.42
Rispondi citando
  #3  
Vecchio 12-03-2016, 12.50.29
L'avatar di aldofad
aldofad aldofad non è collegato
Robottaro sostenitore
 
Data registrazione: 22-01-2007
Residenza: Treviso
Età : 46
Messaggi: 936
Potenza reputazione: 100
aldofad Il suo nome è noto a tutti
Invia un messaggio via MSN a aldofad Send a message via Skype™ to aldofad
Predefinito

Qui di seguito i miei "trucchi e segreti" per Arduino via LiPo e consumi ridottissimi. Un piacere condividere con voi, cosi' vediamo se saltano fuori soluzioni migliori

INTERNAL1V1 e' la vref interna a 1.1V, io la uso proprio per monitorare la tensione batteria, ricordo ancora che me lo consiglio' Astrobeed anni fa

[se la LiPo e' in serie, quindi sopra i 5V (e' ovvio l'uso di un regolatore buck-boost]
Partitore resistivo con R2 sui 10 mega ohm, per consumare pochissimo, entrambe le R all'1%, letture dal micro ovviamente non continue

Riconfigurare (o disabilitare) il watchdog di autoreset per calo di tensione (per Arduino Uno e altri a 5V) abbassando possibilmente la frequenza di clock.
Leggere il datasheet del micro, sono indicati i valori minimi di tensione per frequenza

Usare l'ibernazione e il risveglio a intervalli (max 8 secs) se possibile

Accendere tutta l'elettronica tramite pulsante a rilascio che manualmente chiude un relay SSR, una volta acceso il micro, il relay viene tenuto attivo dal micro, se la battera scende troppo allora il micro molla il relay e si autospegne tutto, evitando la distruzione della LiPO

Disabilitare quante piu' funzioni possibili del micro, come l'ADC, ecc... Poi, se ne parliamo, quando vado sul pc indico un link utilissimo per questo

Saluti

Ultima modifica di aldofad : 12-03-2016 alle ore 13.29.53
Rispondi citando
  #4  
Vecchio 12-03-2016, 16.40.02
L'avatar di landyandy
landyandy landyandy non è collegato
Robottaro sostenitore
 
Data registrazione: 07-02-2010
Residenza: Abruzzo - Teramo
Età : 48
Messaggi: 2,330
Potenza reputazione: 346
landyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua fama
Predefinito

da quello che ho capito, il tuo è un problema, "non problema", nel senso che anche se il monitor seriale ti da dei valori non congrui, la tensione è comunque quella di batteria...

Più che altro mi chiedo, quanti LED vuoi usare per creare la scala di misura?

se con un rosso siamo a circa 1,6 (?), con 2, sei a più di 3V e l'assorbimento totale (10mA+10mA) è maggiore dell'utilizzatore che vai ad usare.

morale della favola la batteria che adesso ti alimenta il circuito per ore, credo che durerà molto meno..

pure deduzioni ma tant'è



saluti
Andy
__________________
------------------------------------------------




-----------------------------------------------
Rispondi citando
  #5  
Vecchio 12-03-2016, 16.57.35
michelozzo michelozzo non è collegato
Nuovo robottaro
 
Data registrazione: 03-03-2014
Residenza: Piombino
Età : 54
Messaggi: 27
Potenza reputazione: 0
michelozzo E' per ora ancora un mistero
Predefinito

No, io ho delle mire ben più semplici. Mi basterebbe un led che sta sempre buono e spento e mi si accende quando la vbatt è circa 3,6. Io lo vedo e rimetto tutto in carica. Potrei anche utilizzare dei componenti esterni tipo questo: TC54VN3002EZB che ho riusato qualche volta e mi fa accendere un led ad un valore di tensione prefissato ma ho pochissimo posto nel contenitore e mi piaceva far fare tutto ad arduino ma purtroppo sono abbastanza "capra" in questo campo. Grazie comunque per il tuo interessamento. Michele
Rispondi citando
  #6  
Vecchio 12-03-2016, 17.13.58
michelozzo michelozzo non è collegato
Nuovo robottaro
 
Data registrazione: 03-03-2014
Residenza: Piombino
Età : 54
Messaggi: 27
Potenza reputazione: 0
michelozzo E' per ora ancora un mistero
Predefinito

Citazione:
Orginalmente inviato da aldofad Visualizza messaggio
Qui di seguito i miei "trucchi e segreti" per Arduino via LiPo e consumi ridottissimi. Un piacere condividere con voi, cosi' vediamo se saltano fuori soluzioni migliori

INTERNAL1V1 e' la vref interna a 1.1V, io la uso proprio per monitorare la tensione batteria, ricordo ancora che me lo consiglio' Astrobeed anni fa

[se la LiPo e' in serie, quindi sopra i 5V (e' ovvio l'uso di un regolatore buck-boost]
Partitore resistivo con R2 sui 10 mega ohm, per consumare pochissimo, entrambe le R all'1%, letture dal micro ovviamente non continue

Riconfigurare (o disabilitare) il watchdog di autoreset per calo di tensione (per Arduino Uno e altri a 5V) abbassando possibilmente la frequenza di clock.
Leggere il datasheet del micro, sono indicati i valori minimi di tensione per frequenza

Usare l'ibernazione e il risveglio a intervalli (max 8 secs) se possibile

Accendere tutta l'elettronica tramite pulsante a rilascio che manualmente chiude un relay SSR, una volta acceso il micro, il relay viene tenuto attivo dal micro, se la battera scende troppo allora il micro molla il relay e si autospegne tutto, evitando la distruzione della LiPO

Disabilitare quante piu' funzioni possibili del micro, come l'ADC, ecc... Poi, se ne parliamo, quando vado sul pc indico un link utilissimo per questo

Saluti
Ciao Aldofab. Come ho già detto sono davvero un pivello in materia e, ho capito che il problema sta nella tensione di alimentazione dell'adc che non può essere uguale alla tensione da misurare ma non ho capito tutto quello che hai scritto. Scusa se parlo ad un linguaggio più elementare ma è proprio questa differenza di preparazione in materia il gap tra me e te ovvero io sono uno smanettone alle prime armi e tu sicuramente un super expert.
Da quello che ho capito esiste una soluzione "segreta"? . allora partiamo dalla batteria lipo 1 cella 3,7 volt 500 ma di quelle che utilizzano i droni giocattolo. Tale batteria è collegata al pin VI e alimenta un circuito che serve a rilevare l'inquinamento dell'aria per una persona di famiglia con dei problemetti. Tale sensore è il sensore SHARP GP2Y1010. L'ho comprato, ho scopiazzato le poche righe di codice che fornisce il costruttore, ho scritto tutto il mio firmware, ho acceso tutto e tale sensore funziona egregiamente con degli assorbimenti molto bassi ottenendo un'autonomia di oltre 50 ore. Poi ho voluto fare il fenomeno volendo inserire il controllo della batteria aggiungendo un semplice led che mi si accendesse quando la vbatt si avvicinava alla tensione di 3,6v ed è venuto fuori il problema. Mi dici quindi che sarebbe possibile fare tale controllo senza adoperare componenti esterni? Sono tutt'orecchi. Grazie infinite amici davvero a tutti voi per l'aiuto e il tempo che perdete.
Rispondi citando
  #7  
Vecchio 12-03-2016, 18.09.33
L'avatar di landyandy
landyandy landyandy non è collegato
Robottaro sostenitore
 
Data registrazione: 07-02-2010
Residenza: Abruzzo - Teramo
Età : 48
Messaggi: 2,330
Potenza reputazione: 346
landyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da michelozzo Visualizza messaggio
...ma non ho capito tutto quello che hai scritto.
Aldo ti sta dando delle dritte a livello di gestione dell'alimentazione su come ottimizzare al massimo la tua batteria, tu prima però devi far accendere questo benedetto LED Giusto??


Innanzi tutto puoi usare il LED interno dell'Arduino quello sul PIN 13??

Fai un po di test e cerca di trovare quel valore (reale) ovvero con la tua lipo connessa al Vin e ad A0 e tramite serial, verifica qual è il valore risultante senza pensare se sia giusto o meno.

Codice:
void loop() {
  int sensorValue = analogRead(A0);
  Serial.println(sensorValue, DEC);


Quel valore lo passerai al tuo IF dicendo poi di accendere il LED (pinMode(13, OUTPUT); )



hai gia provato a fare questo ???

Codice:
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

così ti rendi conto se con quella batteria il LED si accende.


La cosa è detta un po frettolosa ma visto che gia sai qualcosa, fai tu le dovute correzzioni.


byez
andy
__________________
------------------------------------------------




-----------------------------------------------
Rispondi citando
  #8  
Vecchio 13-03-2016, 07.09.49
L'avatar di guiott
guiott guiott non è collegato
Robottaro sostenitore
 
Data registrazione: 23-04-2004
Residenza: Roma
Età : 67
Messaggi: 1,418
Potenza reputazione: 350
guiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua fama
Invia un messaggio via AIM a guiott Invia un messaggio via MSN a guiott Invia un messaggio via Yahoo a guiott Send a message via Skype™ to guiott
Predefinito

Il problema non è come far accendere il LED è come leggere la tensione. Non si può leggere la stessa tensione che si sta usando come riferimento. Come dicevo questa deve essere stabilizzata altrimenti... non è più un riferimento

Il giustissimo suggerimento di Aldo è quello di usare una Vref costante ed affidabile come quella interna alla MCU di Arduino.

In questa pagina è spiegato come fare.

A quel punto sei indipendente dalla tensione di alimentazione ed otterrai lo stesso risultato sia con la batteria che con l'alimentazione USB.
__________________
Guido
------
www.guiott.com
Rispondi citando
  #9  
Vecchio 13-03-2016, 08.20.39
L'avatar di guiott
guiott guiott non è collegato
Robottaro sostenitore
 
Data registrazione: 23-04-2004
Residenza: Roma
Età : 67
Messaggi: 1,418
Potenza reputazione: 350
guiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua fama
Invia un messaggio via AIM a guiott Invia un messaggio via MSN a guiott Invia un messaggio via Yahoo a guiott Send a message via Skype™ to guiott
Predefinito

Sempre riferendosi ai saggi consigli di Aldo riguardo l'auto-shutdown, si può guardare questo schema nel quale si usa il relè in autoritenuta controllato da Arduino.

Per diminuire la corrente assorbita e quindi la scarica della batteria il relè deve essere, come suggerito, a stato solido.
__________________
Guido
------
www.guiott.com
Rispondi citando
  #10  
Vecchio 13-03-2016, 11.57.28
L'avatar di landyandy
landyandy landyandy non è collegato
Robottaro sostenitore
 
Data registrazione: 07-02-2010
Residenza: Abruzzo - Teramo
Età : 48
Messaggi: 2,330
Potenza reputazione: 346
landyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua famalandyandy La sua reputazione è oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da guiott Visualizza messaggio
In parole povere... è un cane che si morde la coda
In effetti rileggendo, sono andato un po troppo veloce e davo per scontato un po di cose.
Diciamo che mi ero ispirato a questo articolo https://www.mysensors.org/build/battery


saluti
Andy
__________________
------------------------------------------------




-----------------------------------------------
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalità  visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code è Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Alimentare Raspberry PI + Arduino UNO + Motori JayBot Forum generale 4 11-11-2014 09.56.16
Valore analogico. Alan100 Arduino 0 18-07-2014 15.56.08
Batteria consigliata per alimentare 4 motoriduttori Iko82 Batterie e alimentazione 15 18-04-2014 13.48.35
Alimentare arduino con una batteria ricaricabile!!! totonno87 Arduino 11 18-01-2013 13.24.20
Batteria Lipo & Servo blueice80 Batterie e alimentazione 4 02-02-2010 13.51.23


Tutti gli orari sono GMT. Adesso sono le: 05.46.57.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB