. Le microcontrôleur
La puce ATmega328 (le microprocesseur) est le cerveau de l’Arduino. C’est un microprocesseur de la série AVR produite par la société ATMEL (16 MHz d’horloge et 32 Ko de mémoire). Il va recevoir le programme que nous allons créer et va le stocker dans sa mémoire avant de l’exécuter.
. Les entrées et sorties numériques
Il y a 14 entrées/sorties numériques notées de 0 à 13 sur l’Arduino Uno. Elles sont situées sur la grande rangée du haut de la carte.
Ces connecteurs (ou broches) sont numériques car le signal sur ces broches ne connaît que deux états (niveau logique) : haut ou bas (1 ou 0). Électriquement, cela se traduit, respectivement, par une tension de 5 V ou 0 V.
Ces broches sont configurées en entrées ou sorties numériques par programmation :
. Configurées en sortie, elles ne peuvent délivrer que des niveaux logiques bas (0 V) et des niveaux logiques haut (5 V).
. Configurées en entrée, elles ne peuvent recevoir que des niveaux logiques bas (0 V) et niveaux logiques haut (5 V).
Attention :
. Les tensions appliquées sur les broches d’entrées/sorties numériques doivent être comprise entre 0 et 5 V. Au-dehors de ces limites, le microcontrôleur sera endommagé.
. Pour une broche configurée en entrée, toute tension inférieure à 0,3 x Vcc, Vcc étant égale à 5V, soit 1,5 V, sera comprise comme un niveau logique bas (0 V) et toute tension supérieure à 0,6 x Vcc, soit 3 V, sera comprise comme un niveau logique haut (5 V).
Entre les deux, c’est incertain. L’Arduino renverra de toutes façons un 0 ou un 1 mais de manière plus ou moins aléatoire.
. Pour une broche configurée en sortie, il est préférable de limiter l’intensité du courant dans le circuit électrique à 20 mA et absolument nécessaire de ne pas dépasser 40 mA sous peine de destruction de la sortie (Il faut donc au minimum une résistance de 200 Ω dans le circuit électrique alimenté par la sortie). On veillera aussi à ne pas dépasser une intensité totale de 200 mA dans les circuits électriques reliés à ces broches.
. Il est déconseillé d’utiliser les broches 0 (RX) et 1 (TX) qui sont initialement prévues pour la communication série (broche 1 pour l’émission et broche 0 pour la réception des données), notamment avec certains modules externes (par exemple, le module Bluetooth HC-05). Mais, en l’absence de communication série, il est possible de les utiliser classiquement en entrée ou sortie numérique.
. Les entrées analogiques
Il y a six entrées analogiques notées de A0 à A5 en bas à droite de la carte.
Les tensions, entre 0 et 5V, appliquées sur ces broches, sont numérisées via un convertisseur analogique-numérique CAN ou ADC (Analog Digital Converter).
Le convertisseur analogique-numérique des Arduino effectue une conversion sur 10 bits, c’est à dire qu’il convertit la tension analogique en un nombre entier ayant une valeur de 0 à 1023 (1023 en binaire s’écrit : 1111111111).
0 correspond à une tension de 0 V et 1023 à une tension de 5V.
La résolution, c’est à dire la différence entre deux valeurs successives de la tension correspondant à une différence de 1 sur l’entier résultat de la conversion analogique-numérique, est donc d’environ 5mV (5/1024 = 4,9 mV).
Attention :
. Appliquer une tension supérieure à 5 volts ou inférieure à 0 volt sur une broche analogique endommagera immédiatement et définitivement votre carte Arduino,
. La mesure prend environ 100µs, cela fait un maximum de 10 000 mesures par seconde,
. Effectuer une mesure d’une tension sur une broche non connectée retourne des valeurs de l’ordre de 300 à 500, même s’il n’y a pas de signal,
. Les broches notées de A0 à A5 peuvent également être configurées en entrées et sorties numériques.
. Les sorties analogiques (PWM)
Il n’y a pas de sortie analogique à proprement parler sur un Arduino. Par contre, six des connecteurs numériques (les connecteurs 3, 5, 6, 9, 10 et 11) sont capables de simuler des sorties analogiques et fonctionnent donc comme telles pour délivrer une tension entre 0 et 5 V.
Elles sont marquées du symbole tilde ~ et du sigle PWM, qui veut dire Pulse Width Modulation (Modulation de Largeur d’Impulsion en français).
Le PWM fonctionne ainsi : comme il n’est possible que d’envoyer des informations binaires (haut ou bas, c’est à dire 5 V ou 0 V) sur ces broches, l’Arduino va faire varier la durée pendant laquelle ces deux valeurs sont appliquées afin d’obtenir la tension souhaitée.
L’Arduino génère donc un signal carré caractérisé par deux paramètres :
. L’amplitude du signal est de 5V ou de 0V,
. Le rapport entre la durée où la tension est à 5V et celle où elle est à 0V (ce rapport est appelé Duty cycle et est exprimé en %).
La fréquence du signal PWM est de 490 Hz, ce qui est suffisamment rapide pour que l’on puisse dire que l’amplitude du signal d’une sortie PWM est égale à la valeur moyenne du signal carré généré :
Tension sortie analogique (en V) = 5 x (Duty Cycle/100)
Exemple :
Duty Cycle à 0% : Tension sortie analogique = 5 x 0 = 0 V
Duty Cycle à 25% : Tension sortie analogique = 5 x 0,25 = 1,25 V
Duty Cycle à 50% : Tension sortie analogique = 5 x 0,5 = 2,5 V
Duty Cycle à 75% : Tension sortie analogique = 5 x 0,75 = 3,75 V
Duty Cycle à 100% : Tension sortie analogique = 5 x 1 = 5 V