,

Entrées analogiques

ATmega 328 possède 5 entrées analogiques broches A0 à A4. Le CAN a une résolution de 10 bits, il convertit une tension analogique en une valeur numérique, un nombre entre 0-1023 codé sur un entier (int) en environ 100 us. Comme l'ATmega 328 est cadencé à 16 MHz, on a un échantillonnage max d'environ 10000 échantillons/s. Pour fonctionner le CAN compare la tension d'entrée An avec une tension de référence AREF. On doit toujours avoir:

La fonction analogReference() permet de modifier la tension AREF utilisée par le CAN

DEFAULT AREF = 5V. Ici la résolution est de 5/1024 = 4.8mV.
INTERNAL AREF = 1.1V. Dans ce cas la résolution est de 1.1/1024 = 1.0mV
AREF La tension présente sur la broche AREF est utilise comme tension de référence par le CAN.
Si la broche AREF est utilisée, il faut impérativement faire un appel a la fonction analogReference(AREF) avec toute lecture de l'entrée analogique avec analogRead().

L'ATmega 328 n'a pas de CNA mais il est capable de générer des signaux PWM sur certaines broches (3, 5, 6, 9, 10 et 11). Le rapport cyclique (temps à l’état HIGH / temps à l’état LOW) de ces signaux rectangulaires d'une période d'environ 490 Hz peut être modifié via la fonction analogWrite(). Le rapport cyclique est codé sur un byte (0-255).

Pour générer le signal PWM sur les broches 3, 5 et 6 analogWrite() utilise la même ressource (timer) du microcontrôleur que les fonction milli() et delay() ce qui peut entraîner des conflits.

Remarque:

Les entrées analogiques peuvent être configurées en sorties numéériques comme les différentes lignes du port parallèle. Cet appel à la fonction pinMode() n'est donc pas faux:

void setup()
{
  pinMode(A0, OUTPUT);
}