AREFpin

Cette entrée devient importante lorsque l'on veut convertir un signal dont l'amplitude maximale est moindre que le VCC (5 volts dans le cas du Arduino). C'est-à-dire qu'en abaissant cette référence de conversion analogue/digital on peut obtenir un maximum de valeur, environs 1024 dans le cas du arduino.

Par exemple, lorsqu'on utilise une photo-résistance on se doit de la connecter à une résistance (dont la valeur ohmique est égale à la valeur maximale de la photo-résistance). Pour ainsi créer un diviseur de tension qui va varier le voltage entre environ:

  • la moitié du VCC jusqu'au maximum (dans le cas d'une résistance branchée au VCC) ou
  • environ 0 volts jusqu'à la moitié (dans le cas d'une résistance branchée au ground)

Il faut premièrement ajuster la valeur de référence désirée, dans notre cas c'est 2.5 volts (la moitié du VCC). Rien de plus simple, deux résistances branchées sur l'entrée "AREF" suffisent : une branchée au VCC et l'autre au ground.

Ensuite il faut changer les registres. Pour arduino c'est :

analogReference(EXTERNAL);

  • DEFAULT: the default analog reference of 5 volts.
  • INTERNAL: 1.1 v on the ATmega168 (2.56 volts on the ATmega8).
  • EXTERNAL: the voltage applied to the AREF pin.

Pour AVR atmega168 il faut changer le registre ADMUX;

ADMUX |= (1 << REFS0);


Une fois terminé on peut donc capter une valeur plus large, soit 0 à 1024 et ainsi jouir d'une plus grande précision. Attention: à utiliser seulement avec des senseurs composantes résistifs à "deux broches"; thermistor, certain FSR, photo-résistance...

Pour une optimisation de lecture automatique il suffirait de brancher l'entrée AREF à une sortie PWM (avec filtre, condensateur + ampli op) pour ajuster la valeur maximum d'amplitude de la lecture... à tester ...