avrei bisogno di qualche indicazione di massima su come migliorare l'alimentazione di un Arduino Nano.
Al Nano sono collegati un dht22 e un lcd 16X2 con retroilluminazione normalmente spenta e che viene attivata una decina di volte al giorno per circa due secondi ogni volta, il nano viene alimentato tramite il pin VIN con quattro batterie ricaricabili da 2450 maH che riescono ad alimentarlo per circa 120 ore, passate le quali la leggibilità del display arriva a livelli inutilizzabili.
Vi sembra consono il consumo del Nano?
Come posso prolungare la durata delle batterie?
be se ci sono solo il dht22 e l'lcd.... ci sono pochi controlli da fare, potresti googlare un po e cercare come mettere in sleep il tuo nano per risparmiare un po anche se credo che tra dissipazione del riduttore di tensione e ammenicoli vari non salvi molto...
aspetta che passi qualcun altro, magari ti da qualche idea in più
Vorrei sapere "cosa c'è in mezzo" tra le batterie e tutto il resto.
C'è un riduttore di tensione?
Oppure sono 4 batterie in parallelo da 4,8 Volt ? (?)
Perché se utilizzi un riduttore di tensione allora sviluppi calore che è poi uno spreco e ti conviene usare uno step-down, mentre se vai diretto allora non vedo dove risparmiare...
Steve-cr,
in mezzo non c'è nulla, sono quattro batterie ricaricabili in serie, in un astuccio di plastica. La tensione erogata è di 5,05 volt.
Se cambio il display e ne uso uno oled o e-ink risparmio qualcosa?
Esiste qualche Arduino che faccia al mio scopo ma consumi meno?
ilarioQ:
Steve-cr,
in mezzo non c'è nulla, sono quattro batterie ricaricabili in serie, in un astuccio di plastica. La tensione erogata è di 5,05 volt.
Se cambio il display e ne uso uno oled o e-ink risparmio qualcosa?
Esiste qualche Arduino che faccia al mio scopo ma consumi meno?
Grazie
gia, non ci avevo fatto caso
se sono 4 batterie ricaricabili dovrebbero avere una tensione di 1,2V l'una e appunto 4,8V totali
per cui se alimenti da Vin stai dando una tensione insufficiente perchè 5V più la perdita del regolatore dovrebbero essere almeno 6,5V
Con quella tensione vai direttamente al pin +5V
se sono 4 batterie ricaricabili dovrebbero avere una tensione di 1,2V l'una e appunto 4,8V totali
per cui se alimenti da Vin stai dando una tensione insufficiente perchè 5V più la perdita del regolatore dovrebbero essere almeno 6,5V
Con quella tensione vai direttamente al pin +5V
Grazie per le info.
Per cortesia, quale voltaggio accetta il pin VIN?
Non è troppo pericoloso alimentare con una fonte instabile come un pacco batterie direttamente il pin 5Volt?
Cosa ne pensi di sostituire lcd e Nano con qualcosa di meno esoso?
ti da 4,8V da carico e poi scende lentamente man mano che si scarica
su VIn come dal jack dovresti alimentare tra i 7V e 12V, ma la tensione migliore è tra i 7V e 9V
Lo consideravo instabile in virtù del fatto che scaricandosi potessero non fornire la tensione corretta, ma io di elettricità ne capisco poco.
Quindi sul vin potrei collegarci due batterie da 3.7Volt in serie?
Scusa se insisto secondo te qualche alternativa meno esosa?
allora per limitare i consumi:
prima di tutto elimina tutte le stampe su serial, una volta sicuro che funziona non ti servono più
poi potresti anzichè continuare ogni 2 secondi a stampare dull'lcd, usare l'istruzione setbacklight per spegnere l'lcd (al posto del pulsante sulla breadboard) e usare il pulsante come condizione per eseguire sia la lettura del dht che la visualizzazione sull'lcd cioè
#define pulsante 12
//nel setup aggiungi
void setup() {
...
pinMode(pulsante, INPUT) ; // o INPUT_PULLUP a seconda di come è collegato
}
//e nel loop
void loop() {
// quando premo il pulsante eseguo le letture e vedo i risultati sull'lcd
if (digitalRead(pulsante==HIGH) { //o LOW a seconda del collegamento
// ci vorrebbe anche il debounce del pulsante ma quello te lo lascio
// questo è il tuo codice
// Read data and store it to variables hum and temp
hum = dht.readHumidity();
temp = dht.readTemperature();
// aggiungo il'accensione dell'lcd
lcd.setBacklight(HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" ");
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print(hum);
lcd.print(" %");
// ora decidi per quanti secondi restare acceso
delay(2000) // 2 secondi
lcd.setBacklight(LOW)
}
}
Patrick_M:
allora per limitare i consumi:
prima di tutto elimina tutte le stampe su serial, una volta sicuro che funziona non ti servono più
poi potresti anzichè continuare ogni 2 secondi a stampare dull'lcd, usare l'istruzione setbacklight per spegnere l'lcd (al posto del pulsante sulla breadboard) e usare il pulsante come condizione per eseguire sia la lettura del dht che la visualizzazione sull'lcd cioè
#define pulsante 12
//nel setup aggiungi
void setup() {
...
pinMode(pulsante, INPUT) ; // o INPUT_PULLUP a seconda di come è collegato
}
//e nel loop
void loop() {
// quando premo il pulsante eseguo le letture e vedo i risultati sull'lcd
if (digitalRead(pulsante==HIGH) { //o LOW a seconda del collegamento
// ci vorrebbe anche il debounce del pulsante ma quello te lo lascio
// questo è il tuo codice
// Read data and store it to variables hum and temp
hum = dht.readHumidity();
temp = dht.readTemperature();
// aggiungo il'accensione dell'lcd
lcd.setBacklight(HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" ");
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print(hum);
lcd.print(" %");
// ora decidi per quanti secondi restare acceso
delay(2000) // 2 secondi
lcd.setBacklight(LOW)
}
}
così dovrebbe andare.... :)
Grazie mille!
ero troppo concentrato sulla parte hardware e non avevo capito che dovevo migliorare la parte software.
Parte che non sarei comunque stato in grado di migliorare. Adesso vado a vedere cosa sia il debounce e poi provo, sicuramente ci sentiremo ancora per la correzione del codice.
brunello22:
Oppure, ancora meglio, mettere la Nano in modalita' Sleep e ridurre quindi ancora i consumi
...omissis
si come avevo suggerito nel post #3
->brunello22 sai darmi una stima del risparmio con lo sleep su una scheda nano standard, cioè secondo tutto quello che ho letto su uno stand alone ha senso ma qui tra regolatore di tensione led e ammenicoli, ne vale la pena?
Una Nano ( così com'è ) passa da circa 13mA a circa 5mA in sleep
Una Nano con LCD I2C ( e dipende anche dal LCD ) si passa da 29mA a circa 9mA.
Altri 4/5 mA si risparmiano togliendo i Led ( sulla Nano e sul modulo I2C )