Strano comportamento del USB

Buona giornata a tutti

Sto facendo delle prove per leggere una tensione,
con Arduino uno, e lo alimento su Vin a 7V,
con il riferimento in DEFAULT,

il valore lo visualizzo su display,

con l'USB collegata al pc, tutto OK la tensione corrisponde,

se tolgo l'USB dal pc il valore sul display cala quasi di un volt,
e normale questo comportamento?
c'è qualcosa da farsi per ovviare questo?

ringrazio chi mi può dare qualche spiegazione

Chiaramente, se usi il riferimento di default, hai una misura che è funzione dell'alimentazione e quindi ... facile che l'alimentazione fornita dalla USB non sia uguale a quella che esce dal regolatore di tensione con conseguente ... differenza di misure.

O crei tu un riferimento fisso e stabile con un chip apposta e lo fai entrare dal pin Aref o usi il riferiemento interno a 1.1V che è indipendente dall'alimentazione (... ma, ovviamente, hai il massimo a 1.1V e quindi devi cambiare il partitore in ingresso).

Guglielmo

Già, ma occhio ad AREF, nel reference c'è scritto:

Don't use anything less than 0V or more than 5V for external reference voltage on the AREF pin!

Quindi direi che se provasse a metterci 7V non andrebbero bene comunque.
O sbaglio ad interpretare?

Doc ... a parte l'alimentazione su Vin, quello è valido su qualunque pin di Arduino UNO ... i limiti massimi sono -0.5V, +5.5V ... oltre si danneggia la MCU.

Le misure le fa con un segnale che, sicuramente ,arriva sul ingresso analogico entro i limiti ... altrimenti addio MCU :smiley:

Guglielmo

Prova di misurare con un tester il pin 5V verso massa sia aliemntato a USB che con alimentatore. Vedrei una netta differenza della tensione dove USb sará ca 4,6V e aliemntatore ca 5V.

Usa un riferimento indipendente dall alimentazone come il riferimento interno da 1,1V oppure con riferimento esterno e collegando i 3,3V a AREF. Ovviamente devi modificare il partitore resistivo della tensione da misura da avere un fondocorsa da 1,1 o rispettivo 3,3V

Ciao Uwe

Ciao ragazzi,
scusatemi ma alimentando l'Arduino con 7V l'alimentazione del USB non viene disinibita?

@Guglielmo

O crei tu un riferimento fisso e stabile con un chip apposta e lo fai entrare dal pin Aref

scusami se approfitto,
su questo pin la massima tensione applicabile sono 5V?
se si, allora le misure che sto facendo sono sui 5V posso collegare il Aref ai 5V

o detto una cavolata?
mille grazie per le risposte

milefori:
o detto una cavolata?

SI :smiley: :smiley: :smiley:

I 5V sono gli stessi che già ti stanno creando problemi ... ti serve una tensione STABILE ed INDIPENDENTE dall'alimentazione (quindi NO i 5V che arrivano o dalla USB o dal regolatore).

Puoi usare l'uscita 3.3V come ingresso in Aref e limitare le misure a 0 - 3.3V o usare il regolatore interno a 1.1V e limitare le misure a 0 - 1.1V ... devi solo cambiare il partitore resistivo con cui ottieni il segnale che mandi sull'ingresso analogico.

Guglielmo

milefori
misura i 5V del pin 5V con un tester nei 2 modi di alimentazione.
Ciao Uwe

@Guglielmo
grazie della ottima spiegazione, per comodità userò l’uscita V3,3.

@Uwe
o misurato la tensione come dici tu,
la differenza non è molta
con USB inserita V5.03
senza USB V5.04

pensavo che con 7V su Vin l’alimentazione della l’USB fosse disinserita

milefori:
pensavo che con 7V su Vin l'alimentazione della l'USB fosse disinserita

E' disinserita ... per proteggere la parte USB del PC ... ma comunque c'è di mezzo solo un MOSFET e qualche minima oscillazione, per varie cause, c'è.

Per misure precise ci vuole un riferimento preciso ... se comincia ad oscillare il riferimento, salta la misura.

Guglielmo

Mi aspettavo una differenza piú visibile. Questi valori non spiegano una lettura diversa.

L'arduino UNO ha un operazionale (U5A) che confronta metá della tensione VIN (partitore con 2 resistenze da 10kOhm RN1A e RN1B) con i 3,3V. Se la tensione Vin/2 é maggiore di 3,3V (VIN maggiore 6,6V) spegne il P-MOSFET T1 che collega USBVCC con +5V. Alimentando dalla presa di alimentazione nera la tensione di comutazione é maggiorata di 0,7V vito che c'é un diodo D1 tra la presa e VIN.

Ciao Uwe

uwefed:
Mi aspettavo una differenza piú visibile. Questi valori non spiegano una lettura diversa.

Attento Uwe che NON sono i valori alimentando da USB oppure da Vin, ma lui alimenta SEMPRE da Vin ed attacca e stacca la USB lasciando comunque Vin !!! Quindi sono piccole oscillazioni dovute appunto all'intervento del MOSFET.

Guglielmo

Allora non me lo spiego ancora di meno.
Ciao Uwe

Ciao ragazzi
prima di tutto si a ragione Guglielmo la prova di tensione la facevo tenendo l'alimentazione su Vin 7V,
e staccando l'USB,

ma la cosa interessante e:
(sempre leggendo la tensione)

con riferimento EXTERNAL, sul pin AREF a 3.3V
o un ottimo risultato con letture stabili,
ma altrettanto ottimo e quando su AREF o dato (per provare) gli stessi 5V dell'alimentazione,

cosa pensate voi che certamente siete mooolto più esperti di me,

che sia giusto collegare il pin AREF alla tensione da misurare?

che sia giusto collegare il pin AREF alla tensione da misurare?

Questo é definitivamente sbagliato

milefori:
... cosa pensate voi che certamente siete mooolto più esperti di me ...

... penso che la soluzione migliore è usare il riferimento a 3.3V che è sufficentemente distante dai 5V da garantire una certa stabilità.

Lascia stare "esperimenti vari", dando su Aref porcherie, che rischi solo di danneggiare la MCU.

Guglielmo

Sul pin AREF puoi collegare una tensione solo se hai definito
analogReference(EXTERNAL);
In tutti gli altri casi metti qualcosa in corto.

Ciao Uwe

OK ragazzi grazie dei preziosi consigli
userò i 3,3V su Aref

cosi sono sicuro di non danneggiare l'Arduino
ciao Toni