Go Down

Topic: Alimentazione Arduino Mega su 5v e USB (Read 229 times) previous topic - next topic

andrea76

Ciao a tutti, dopo aver letto tanti topic su questo argomento ci ritorno perché vorrei implementare una soluzione che mi è venuta in mente.

Tutto è iniziato da un mio progetto: utilizzare Arduino MEGA (in realtà più di uno) per gestire il mio Plastico Fermodellistico (trenini elettrici per intendersi  :) )

Ho utilizzato Arduino MEGA perché all'epoca era quello con più pin disponibili, e per aumentare ancora i pin ho utilizzato i pin analogici sfruttando il trucco delle resistenze per creare tastiere.

Per l'alimentazione dell'impianto uso un alimentatore per PC che fornisce varie tensioni (addirittura ha i -12 volt per raggiungere con i +12 volt, anche se con pochi ampere, i 24 volt), quelle utilizzate nell'impianto sono 5V e 12V  con il valore negativo a 0.

Ora, gli Arduino MEGA sono alimentati a 5v su Vin e GND (per motivi di consumo non posso utilizzare i 12V)
In questo modo però succede una cosa strana, se il MEGA è contemporaneamente alimentato dai 5V su Vin e dalla porta USB la tastiera con multi resistenze funziona alla grande sul pin A0, nel momento che stacco l'alimentazione USB (quindi la possiilita di debug con il monitor seriale) ogni tasto della tastiera sembra che ritorni sempre lo stesso valore alla porta A0.

Perché questo comportamento? 5V sono insufficienti sulla Vin?

Questo comportamento anomalo sparisce se alimento il MEGA sempre con gli stessi 5V ma sui pin 5V e GND.

A questo punto vorrei utilizzare questa ultima configurazione per alimentare i miei MEGA ma mi capita (soprattutto in questo periodo di implementazioni continue) di collegare la porta USB al PC per test e trasferimento di scratch, cose che ho fatto in continuazione in questi ultimi tempi senza procurare danni ne agli Arduino ne al PC.

Ho leto però che alimentare qualsiasi Arduino sui 5V e sulla porta USB contemporaneamente non è cosa buona!

Detto ciò, scusate la lunghezza ma avevo bisogno di spiegare il progetto, anche per capire, se qualcuno può spiegarmi, il comportamento anomalo, passo alla mia soluzione che mi è venuta in mente:

Ho preso un cavo USB e ho tagliato di netto il polo positivo al suo interno, il negativo è collegato perché credo serva alla comunicazione Data+ e Data- del cavo USB, ho fatto dei test e sembra che tutto funzioni, ovvero, se l'Arduino è collegato solo con la porta USB non si accende ed il pc rileva la periferica ma non riesce a capire cosa sia, se oltre alla USB alimentiamo l'Arduino tutto funziona alla grande  :)  .

Secondo voi è una soluzione saggia? Potrei tagliare anche il polo negativo sul filo USB per ulteriore sicurezza?

brunello22

Quote
Perché questo comportamento? 5V sono insufficienti sulla Vin?
Si, sono insufficienti. Ne servono almeno 6.5V perche' devi considerare che il regolatore di tensione su Arduino necessita di una tensione di ingresso maggiore, per poter dare 5V sulla sua uscita

Quote
Secondo voi è una soluzione saggia? Potrei tagliare anche il polo negativo sul filo USB per ulteriore sicurezza?
Non devi tagliare il polo negativo, altrimenti non ti funziona.
Hai fatto correttamente

Etemenanki

#2
Jul 14, 2018, 09:40 am Last Edit: Jul 14, 2018, 09:43 am by Etemenanki
... 5V su Vin ...
l'errore (se proprio vogliamo chiamarlo cosi ;) ) e' tutto qui ... il pin VIN e' collegato allo stesso circuito del jack, quindi passi attraverso il regolatore e gli altri componenti, che ti causano una caduta di tensione ...

Come detto gia da brunello, sul VIN va data la stessa tensione che daresti sul jack, minimo 6.5V, meglio se minimo 7V, per sicurezza ... se invece hai gia un'alimentazione stabilizzata e ben filtrata da 5V, va appunto collegata al pin +5V (che, come hai visto anche tu, fa funzionare correttamente il tutto ;) )

EDIT: per quanto riguarda alimentare da entrambi i lati, diciamo che c'e' un circuito "di protezione" che se rileva l'alimentazione doppia, ne esclude una, ma e' preferibile non farlo ... se gia hai modificato un cavo usb togliendo il positivo, va bene cosi, usa quello, e no, non serve togliere anche la massa, anzi, quella e' decisamente meglio lasciarla ... se e' solo per il debug e rimane alimentato da entrambe le parti per poco tempo, comunque, problemi non dovrebbe dartene anche usando un cavo integro ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

andrea76

#3
Jul 14, 2018, 03:30 pm Last Edit: Jul 14, 2018, 03:30 pm by andrea76
Grazie a tutti ragazzi sempre veloci e disponibilissimi!

Etemenanki

Giusto per completezza ... la protezione (il mosfet che scollega l'alimentazione dell'usb) entra in funzione se rileva una tensione sul VIN, ma non se lo alimenti dal pin +5V ... quindi hai fatto bene a scollegare il positivo del cavo usb, usando quello lo puoi alimentare dal pin +5V e contemporaneamente collegare il PC per il debug senza problemi ... solo un suggerimento, alimenta arduino prima di collegare il cavo usb, il bus usb si aspetta di trovare il dispositivo gia alimentato quando inizia la comunicazione ... alimentarlo dopo aver collegato il PC non credo possa danneggiarlo, ma potrebbe causare problemi nella comunicazione o nel riconoscimento della periferica ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

Go Up