Arduino UNO

arduino uno R3 avec câble USB

Uno est la référence d’une des premières cartes Arduino, un petit microcontrôleur programmable d’une grande simplicité. Le tout est d’entrer dans ce monde mais ensuite on y prend gout et même les jeunes enfants les programment à l’école. A vous de jouer…

Pour notre part, nous l’utilisons pour réaliser quelques bricolages « maison » qui serviront à améliorer des automatismes en astronomie et en mesure météo.

Vue d’ensemble

Les longueurs et largeurs maximales de la Uno sont 6.86 cm et 5.33 cm, avec le connecteur USB et le connecteur d’alimentation Jack. Quatre trous de vis permettent à la carte d’être fixée sur une surface ou dans un boîtier avec des entretoises. La distance entre les broches 7 et 8 est de 0.16 pouces, et non un multiple des 0.1 pouces séparant les autres broches.

Microcontrôleur ATmega328
Tension de fonctionnement 5V
Tension d’alimentation (recommandée) 7-12V
Broches E/S numériques 14 (avec 6 sorties PWM)
Broches d’entrées analogiques 6 (utilisables aussi en E/S numériques)
Intensité maxi disponible par broche E/S (5V) 40 mA (ATTENTION : ne pas dépasser 200 mA cumulé pour l’ensemble des broches E/S)
Intensité maxi disponible pour la sortie 3.3V 50 mA
Intensité maxi disponible pour la sortie 5V Fonction de l’alimentation utilisée – 500 mA max si port USB utilisé seul
Mémoire Programme Flash 32 KB (ATmega328) dont 0.5 KB sont utilisés par le bootloader
Mémoire SRAM (mémoire volatile) 2 KB (ATmega328)
Mémoire EEPROM (mémoire non volatile) 1 KB (ATmega328)
Vitesse d’horloge 16 MHz

Alimentation

La carte Arduino Uno peut-être alimentée :

  • par la connexion USB (qui fournit 5V jusqu’à 500mA).
  • par une alimentation externe sélectionnée automatiquement par la carte.

L’alimentation externe (= non USB) peut être :

  • un adaptateur secteur (pouvant fournir de 3V à 12V sous 500mA) peut être connecté en branchant une prise jack (type 2.1 mm avec le positif au centre).
  • des piles, des accus (avec panneau solaire par exemple). Les fils en provenance du bloc de piles peuvent être branchés dans les bornes de la carte appelées Vin et Gnd (= masse).

La plage idéale recommandée pour alimenter la carte Uno est entre 7V et 12V. Trop bas, la tension pourrait empêcher d’avoir du 5V sur la broche « 5V » et serait instable ; trop haut cela risque d’endommager la carte qui chaufferait en régulant la tension.

La Mémoire

L’ATmega 328 a 32Ko de mémoire FLASH pour stocker le programme (dont 0.5Ko également utilisés par le boot de la carte). L’ATmega 328 a également 2ko de mémoire SRAM (volatile) et 1Ko d’EEPROM (non volatile – mémoire qui peut être lue à l’aide de la librairie EEPROM).

Entrées et sorties numériques

La carte comporte 14 broches numériques numérotées des 0 à 13 utilisables soit comme une entrée numérique, soit comme une sortie numérique. Ces broches fonctionnent en 5V. Chaque broche dispose d’une résistance interne « pull-up » (déconnectée par défaut). Cette résistance interne s’active avec l’instruction digitalWrite(broche, HIGH). Nous aurons à l’utiliser !

Certaines broches ont des fonctions spécialisées :

  • Communication Série : Broches 0 (RX) et 1 (TX). Utilisées pour recevoir (RX) et transmettre (TX) les données séries. Ces broches sont connectées circuit intégré ATmega8U2 programmé en convertisseur USB-vers-série de la carte, composant qui assure l’interface avec le port USB de l’ordinateur.
  • Impulsion PWM (largeur d’impulsion modulée) : Broches 3, 5, 6, 9, 10, et 11. Fournissent une impulsion PWM 8-bits à l’aide de l’instruction analogWrite(). Utilisée notamment pour les moteurs pas à pas.
  • I2C: Broches 4 (SDA) et 5 (SCL). Pour les communications en protocole I2C .

Broches analogiques

La carte Uno dispose de 6 entrées analogiques, chacune pouvant fournir une mesure sur 1024 niveaux (de 0 à 1023) par la fonction analogRead().

Ces broches peuvent reçevoir une tension entre 0V (= valeur numérique 0) et  5V (= valeur 1023), mais il est toutefois possible de modifier la valeur haute de la plage en utilisant la broche AREF et l’instruction analogReference().

Utilisées en broches numériques, elles sont alors numérotées « broches numériques » de 14 à 19.

Autres broches

  •  AREF :  comme indiqué plus haut, c’est la Tension de référence spécifiquement pour les entrées analogiques (si on la souhaiter différente du 5V). Utilisée avec l’instruction analogReference().
  • Reset : Cette broche mise au niveau BAS entraîne la réinitialisation de l’Arduino  comme le bouton Reset d’un ordinateur que l’on utilise quand l’ordinateur bloque.

Communication

Cette carte Arduino Uno accepte de communiquer aussi bien avec un ordinateur, une autre carte Arduino, ou avec d’autres microcontrôleurs.

L’ATmega 328 dispose d’un UART (émetteur-récepteur asynchrone universel) pour une communication série qui est disponible sur les broches 0 (RX) et 1 (TX).

L’ATmega 328 supporte également la communication par protocole I2C (Interface « 2 fils ») et SPI :

  • Le logiciel Arduino inclut une librairie Wire qui simplifie l’utilisation du bus I2C. Voir la documentation pour les détails
  • Pour utiliser la communication SPI (Interface Série Périphérique), une librairie est disponible.

Programmation

La carte Arduino Uno peut être programmée avec le logiciel Arduino (à télécharger ici). Il suffit de sélectionner « Arduino Uno » dans le menu OUTILS > Type. Brancher la carte Arduino par l’USB. Pour plus de détails sur le langage utilisé et débuter, voir ici la référence du langage Arduino .