Go Down

Topic: come cambiare aref in arduino due (Read 434 times) previous topic - next topic

ale16289

ciao a tutti vorrei sapere come si fa ad cambiare la tensione di riferimento dell' adc di arduino due.
Ho provato con analogReference(EXTERNAL) ma mi dice :
invalid conversion from int to eAnalogReference.
La versione dell'IDE che uso e la 1.5.2.
In caso sarebbe possibile scegliere come aref 5V?

astrobeed

#1
Oct 16, 2013, 12:03 pm Last Edit: Oct 16, 2013, 12:05 pm by astrobeed Reason: 1

ciao a tutti vorrei sapere come si fa ad cambiare la tensione di riferimento dell' adc di arduino due.


Il micro usato sulla DUE non ha tensioni di riferimento interne, a differenza del 328 e del 2560 che possiedono dei generatori di tensione di riferimento interno.
Il solo modo per cambiare la tensione di riferimento del ADC è modificare il valore presente sul pin ADVREF, la tensione massima applicabile è quella di alimentazione (3.3V), stesso limite per gli ingressi ADC quindi non puoi ne usare 5V su ADVREF ne misurare tensioni maggiori di 3.3V sulla DUE.

ale16289

scusa per l'immenso ritardo nella risposta...ma se io provo a fornire ad esempio 3 V sul pin di arefattraverso un generatore di tensione non sembra cambiare nulla...PS i 3 V li ho verificati con un tester.
E la temsione di riferimento per l'ad di default sembra essere 2.6 e non 3.3 V.
Grazie mille in anticipo

gpb01

Mmm ... come puoi ben vedere dallo schema allegato, il pin ADVREF citato da Astro è portato fuori sul pin AREF e, in assenza di altri segnali, direi che è collegato ai 3.3v ... quindi, di base, la DUE dovrebbe usare 3.3v come riferimento esterno ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

... per inciso, hai letto bene nel reference i dettagli relativi ad analogReference() ???
In particolare :


Note
After changing the analog reference, the first few readings from analogRead() may not be accurate.

Warning
Don't use anything less than 0V or more than 5V for external reference voltage on the AREF pin! If you're using an external reference on the AREF pin, you must set the analog reference to EXTERNAL before calling analogRead(). Otherwise, you will short together the active reference voltage (internally generated) and the AREF pin, possibly damaging the microcontroller on your Arduino board.

Alternatively, you can connect the external reference voltage to the AREF pin through a 5K resistor, allowing you to switch between external and internal reference voltages. Note that the resistor will alter the voltage that gets used as the reference because there is an internal 32K resistor on the AREF pin. The two act as a voltage divider, so, for example, 2.5V applied through the resistor will yield 2.5 * 32 / (32 + 5) = ~2.2V at the AREF pin.

Guglielmo
Search is Your friend ... or I am Your enemy !

ale16289

Grazie risolto....il problema e che avevo della circuiteria davnti e magari e qualche altro componente a saturare a meno di 3.3 V.
Grazie  comunue

Go Up