Spengere arduino

Appena si da alimentazione via usb o via alimentatore, arduino si accende e non si spegne se non togliendo la corrente.

Sarebbe interessante un sistema per accenderlo con un pulsante e poi spengerlo via software.
Ho letto che con qualche comando lo si può tipo mettere in standby o fermarlo o in risparmio energetico ma rimarrebbe comunque alimentato. Io pensavo invece a togliere la corrente.

Mi è venuto in mente un sistema arzigogolato ma finora l'unico (ce l'ho in mente ma non può ancora realizzato).
Si mette un relè. All'uscita del relè (la parte dove di solito si connette la 220V) si mette il vcc 9V da una parte e il jack di alimentazione di Arduino (o Vin) dall'altra in modo che senza impulso rimane un circuito aperto.
All'ingresso del relè un bottone normalmente aperto. Premendolo si alimenta il relè accendendo arduino.
Un pin di Arduino messo ad HIGH manterebbe alimentato l'ingresso del relè (tramite opportune resistenze e transistor) mantenendo quindi alimentato il relè. Ponendo poi il pin a LOW tale alimentazione decaderebbe e Arduino si spegnerebbe.

Come dicevo mi sembra una soluzione arzigogolata e finora ci vedo almeno qualche problema. 1, il relè consuma un po' mi sembra per l'alimentazione della bobbina. 2, le dimensioni; usando il relè a 220 degli starter kit almeno il tutto prenderebbe uno spazio minimo di 2x2cm (ma anche più). 3, da quando arduino è alimentato a quando diventa operativo passa almeno un secondo e durante questo tempo l'utente deve mantenere il pulsante premuto.

Ci sono soluzioni migliori? (sono sicuro di si)

Altra cosa riguardo l'accensione, quando arduino è connesso ad una usb (usata solo per trasferire dati) arduino è acceso anche se non serve (perché il pc acceso per altri scopi). È possibile usare la usb solo per trasferire dati (in cui per dati intendo anche inviare sketch) ed alimentarlo invece via alimentazione esteena?

Grazie

mrossini:
Un pin di Arduino messo ad HIGH manterebbe alimentato l'ingresso del relè (tramite opportune resistenze e transistor) mantenendo quindi alimentato il relè. Ponendo poi il pin a LOW tale alimentazione decaderebbe e Arduino si spegnerebbe.

Non hai tenuto conto del fatto che quando programmi Arduino c'è un reset, ma anche quando apri la seriale, di conseguenza tutti i pin vengono disattivati e il tuo relè si disattiva togliendo l'alimentazione. :slight_smile:
La cosa è fattibile, senza relè, ma non è semplice come può sembrare perché tocca tenere conto del reset del micro.

No, al reset non ho pensato. In effetti può essere una soluzione per un pulsante di spegnimento (che non avevo messo ancora in preventivo) :). Ma possiamo trascurare questo aspetto pensando che quando l'utente vuole resettare può spengere e riaccendere semplicemente.
Quando programmo arduino c'è il reset ma è alimentato in usb (le due domande erano in effetti slegate).
La storia dell'alimentazione esterna dovrebbe essere quando arduino è già programmato e montato da qualche parte e senza previsione - per ora - di connetterlo in seriale.

A proposito di seriale; invece di usare il cavo usb, si può usare il pin 0 e pin 1 su una porta seriale (anche se nessun pc oggi ce l'ha più, ma a questo si ovvia) e farci tutto quello che ci si fa in usb (console e programmazione)?

La storia dell'alimentazione esterna dovrebbe essere quando arduino è già programmato e montato da qualche parte

E se va' via la "corrente".. quando ritorna Arduino non riparte senza premere il pulsante.
E io se ne ho uno in montagna, che mi serve per accendere il riscaldamento ??

Se va via la corrente e mi si spegne il pc che stava facendo qualcosa di importante questo non si riaccende (a meno di impostazioni particolari su bios o wake on lan).
Non è questo il discorso. Io parlavo di un discorso tecnico.

La cosa è fattibile, senza relè

Questo era quello che mi interessava, visto che al momento l'unica cosa che mi veniva in mente era il relè (sapendo che sicuramente non c'è solo quella e probabilmente non è la migliore)

ma non è semplice come può sembrare perché tocca tenere conto del reset del micro.

Se per reset si intende il pulsante che viene premuto più avanti per qualche motivo allora va gestito separatamente se serve.
Se invece si intende il reset che viene fatto in fase di accensione allora deve essere considerata.
Infatti il pensiero iniziale (una delle problematiche esposte) è che all'accensione prima che si inizializzi arduino passa almeno un secondo o più e fino ad allora l'utente non può lasciare il pulsante, e questo è un problema. Forse si può risolvere con un condensatore capiente che se lascio il pulsante mi continua a mantenere attivo il transistor finchè arduino non mette fisso in HIGH il pin.
Al posto del relè stavo pensando che si può usare un transistor di potenza o di quelli usati per stabilizzare la corrente o fare gli alimentatori. In un cassetto ho trovato un vecchio LM317T che sta lì da quasi vent'anni :slight_smile: E' ingrado di reggere da solo 1,5A e 37V (questo perchè ce l'avevo nel cassetto chissà perchè; ovviamente se poi farò veramente qualcosa mi sarà sufficiente qualcosa di più modesto)

ehmm, l'LM317 non è un transistor, ma spero di aver reso l'idea di cosa intendo.

Quindi dici una cosa del genere

che poi si trovano già fatti Link Link2

Si, qualcosa del genere, ma non sapevo cosa cercare bene.
Ma quanti mA regge di carico quel circuito?

A proposito, una batteria da 9V mi sembra di capire che eroga fino a 200mA vero?