Capire in che modo è alimentato Arduino in un dato istante

Ciao a tutti,
mi spiego meglio.

So che Arduino Uno è abbastanza "sveglio" da capire in che modo è alimentato, quindi senza nessuna modifica possiamo collegarlo all'USB, ad un alimentatore a muro col jack apposito o alimentarlo con una batteria usando gli appositi pin di Vin e Gnd. (correggetemi se sbaglio già)

La mia domanda è: supponendo di avere collegato sia un alimentatore al jack, sia una batteria, quale delle due cose viene utilizzata? Supponendo ragionevolmente che venga utilizzata l'alimentazione dal jack, se questa si scollega, Arduino "switcha" automaticamente sulla batteria?
Inoltre, c'è modo di capire quale è utilizzata in un dato momento? :roll_eyes:

Grazie!
A.

ma la batteria dov'e' fisicamente collegata ?

a Vin e Gnd pensavo... mentre l'alimentatore a muro al jack!

da come ha impostato la domanda sembrerebbe che lui intenda:
alimentazione esterna su jack
batteria su Vin
USB dal PC

la risposta è semplice: non puoi fare questo collegamento a meno che la batteria non abbia una tensione più elevata dell'alimentatore; il motivo è semplice, il jack ha in serie al positivo un diodo (che provoca una caduta di 0,6-0,7V circa), subito dopo c'è il pin Vin (v. schema elettrico). Se la tensione dell'alimentatore (- 0,7) è maggiore di quella della batteria inizia a ricaricarla, ma questo collegamento servirebbe solo a danneggiare la batteria. e comunque lavorerebbe l'alimentatore esterno. Se invece è la batteria ad avere la tensione maggiore allora è sempre essa che lavora e la tensione proveniente dall'alimentatore resta inutilizzata.
Se vuoi realizzare un'alimentazione doppia con alimentatore e batteria devi prevederli entrambi a monte del jack e li devi circuitare correttamente, altrimento non puoi fare nulla o, al limite puoi usare una batteria da 5V collegata tramite la presa USB, in questo caso lavora l'alimentatore esterno e se questo viene meno lavora la batteria.

Grazie mille della risposta, quindi pare che le leggi della fisica mi mettano i bastoni tra le ruote :roll_eyes:

Contestualizzo il mio problema: vorrei accorgermi se è saltata la luce in una stanza. Quello che avevo in mente, per tenere le cose più semplici possibili, era alimentare in modo doppio Arduino (alimentatore e batteria), poi controllare nell'esecuzione da dove veniva l'alimentazione. Nel caso la scheda attingesse dalla batteria, significava che era saltata la corrente.

Dato che mi avete spiegato che ciò non è possibile, suppongo che la soluzione migliore sia usare un sensore di Hall avvolto ad un qualche cavo dove so che dovrebbe passare corrente, e controllare a tempo di esecuzione i valori che restituisce, qualcosa tipo:

(c'è anche la musica romantica :))

Che dite?

Grazie,
A.

Sembra l' U.C.A.S

Una domanda... cosa deve avvenire se e' saltata la luce in una stanza ?

brunello:
Sembra l' U.C.A.S

:roll_eyes: ?

brunello:
Una domanda... cosa deve avvenire se e' saltata la luce in una stanza ?

Deve scattare un segnale di qualche tipo, diciamo un'email o un sms (da stabilire) al sottoscritto!

Grazie,
A.

Se hai il bisogno di sapere se c'è elettricità in casa oppure no, ti basta un piccolo relé collegato alla 230V da una parte e ad Arduino dall'altra. Quando salta l'elettricità, varia lo stato letto sul pin dell'Arduino.

Lato scheda non devi preoccuparti. Alimenta Arduino con una batteria dalla porta USB e poi con un alimentatore tramite il jack: sull'Arduino c'è un Mosfet pilotato da un opamp, quando la tensione dal jack è superiore a quella entrante dall'Usb, viene usata la prima, altrimenti si passa all'Usb.

Grazie Leo,
premetto che sono un informatico e con l'elettricità/elettronica (come si vede) non ho una gran esperienza!

In effetti l'idea del relè forse è la cosa più semplice :slight_smile:

Una batteria USB tipo questa: https://www.sparkfun.com/products/11358
dovrebbe fare il suo lavoro giusto?

Da quanto ho capito, se utilizzo una batteria USB (che fornisce 5.5V) e un alimentatore diciamo a 9V Arduino dovrebbe assorbire dalla batteria solo nel caso venga meno l'alimentatore. Se questo avviene in automatico, immagino che la scheda Arduino non si resetti mentre avviene lo "switch" di alimentazione (il che sarebbe noioso), giusto? In un certo senso non dovrebbe accorgersene nemmeno :roll_eyes:

ndrplz:
Grazie Leo,
premetto che sono un informatico e con l'elettricità/elettronica (come si vede) non ho una gran esperienza!

Siamo in due :wink:

In effetti l'idea del relè forse è la cosa più semplice :slight_smile:

Una batteria USB tipo questa: USB Battery Pack - 1000 mAh - PRT-11358 - SparkFun Electronics
dovrebbe fare il suo lavoro giusto?

Secondo me sì.
Se non ho capito male, ti serve giusto per poterti spedire un messaggio, no?
Per quel compito è sufficiente. Al max impiegherà un 1 minuto, 1000 mAh per 1 minuto sono più che sufficienti.

Da quanto ho capito, se utilizzo una batteria USB (che fornisce 5.5V) e un alimentatore diciamo a 9V Arduino dovrebbe assorbire dalla batteria solo nel caso venga meno l'alimentatore. Se questo avviene in automatico, immagino che la scheda Arduino non si resetti mentre avviene lo "switch" di alimentazione (il che sarebbe noioso), giusto? In un certo senso non dovrebbe accorgersene nemmeno :roll_eyes:

Esatto, non si resetta.
L'unica cosa con cui devi fare i conti è l'autoscarica della batteria.

Esatto, non si resetta.
L'unica cosa con cui devi fare i conti è l'autoscarica della batteria.

Ottimo,
per l'autoscarica immagino che l'unica soluzione sia monitorare empiricamente quanto ci mette a scaricarsi da sola e ricaricarla ogni tanto di conseguenza!

PS.
ho guardato quella batteria, essa mi pare si attivi premendo un pulsante. Non penso faccia al caso tuo.
Trovane una di pari caratteristiche ma di diverso tipo.

Grazie della precisazione, anche se forse potrei tenerlo sempre acceso il pulsante, tanto c'è scritto che la batteria si spegne da sola se nessun dispositivo la sta utilizzando, cosa che succederebbe nel caso ci sia corrente ("The battery pack will turn off on its own when your device stops drawing power from it").

Comunque effettivamente è meglio verificare :slight_smile:

bene :wink: