LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

mardi 21 novembre 2017

8 visiteurs en ce moment

La carte Arduino Uno

. Par : Dominique, Guillaume, Jean-Luc, Thierry

L’Arduino Uno est l’une des cartes Arduino les plus populaires. C’est avec elle qu’on débute généralement sur Arduino.

Suite à la scission qui a eu lieu l’année dernière chez les créateurs d’Arduino en Italie, il y a maintenant 2 modèles qui ne diffèrent que par leur nom : Arduino aux USA uniquement, Genuino dans le restant du monde.

Comme il y a des quantités de clones sur le marché (le matériel est libre, comme le logiciel), nous continuerons à conserver la dénomination "Arduino" par la suite.

L’Arduino Uno est une carte micro-contrôleur basée sur un ATMega 328. Nous parlerons de la version 3 (ou R3) qui est la dernière version sortie. La photo ci-dessous montre les 2 versions Arduino et Genuino :

Les informations et les illustrations que vous trouverez dans cet article sont issues en général de la présentation de l’UNO sur le site officiel (en anglais) de la carte UNO.
Nous vous invitons à consulter ce site si vous voulez trouver plus de détails techniques. Vous pouvez aussi nous poser vos questions spécifiques dans l’espace prévu à la fin de cet article.

Physiquement, la carte Uno fait à peu près 7 par 5,5 cm. Elle possède 4 trous de 3mm de diamètre pour fixer la carte sur un support.

Revue rapide

La carte Uno dispose de :

  • un processeur ATMega 328P
  • 14 entrées/sorties numériques dont 6 peuvent être utilisées comme PWM  
  • 6 entrées/sorties analogiques qui peuvent aussi être utilisées comme entrées/sorties numériques
  • un résonateur céramique 16 MHz
  • une connectique USB B femelle
  • un jack 3,5/2,1 mm pour l’alimentation
  • un bouton reset
  • un connecteur ICSP

Nous allons voir en détail les différentes spécifications de la carte.

Alimentation

Diverses possibilités s’offrent à nous pour alimenter cette carte. Ces trois façons sont expliquées dans l’article Comment alimenter l’Arduino sans ordinateur ?.

Plus précisément, la carte nécessite une tension de 5V pour pouvoir fonctionner. C’est le courant que délivre le port USB.
Dès lors que nous alimentons l’Arduino via le jack ou les pins VIN et GND, un régulateur de tension prend le relais entre l’alimentation et la carte. La tension entrante doit être compris entre 6 et 20V. Ce sont les limites maximum.
Toutefois, il est préférable de restreindre cet intervalle pour garantir un bon fonctionnement de la carte :

  • En dessous de 7V, la carte peut être instable avec une tension en sortie de régulateur pouvant être inférieure aux 5V nécessaires ;
  • Au dessus de 12V, le régulateur peut chauffer de manière trop importante et se mettre en sécurité, voire endommager la carte.
  • La tension idéale est 9V. Personnellement j’utilise un régulateur 7809 pour amener proprement cette tension à mes montages.

Le jack d’alimentation a le + au centre et le – à l’extérieur. Une diode présente sur la carte protège d’un mauvais branchement.

Quelle que soit la source d’alimentation, la carte la sélectionne automatiquement. On peut donc avoir simultanément l’Arduino connecté en USB et alimenté par une autre source comme un adaptateur secteur 9V.

Les mémoires

Mémoire flash
Elle est de 32 ko dont 0,5 ko sont utilisés pour le bootloader, son programme de démarrage. Cette mémoire est l’équivalent du disque dur pour l’ordinateur. C’est la place que nous avons pour stocker le programme.

SRAM
Équivalent à la mémoire RAM, elle sert à stocker le résultat des variables. Sa taille est de 2 ko. Comme la RAM, cette mémoire est volatile, à l’extinction de la carte, les valeurs disparaissent.

EEPROM
Mémoire en dur, elle permet de sauvegarder des valeurs de variables et ceci même à l’extinction de la carte. Sa taille est de 1 kB. Comme une carte SD, le nombre de réécritures est limité. Nous en parlerons dans Bibliothèque EEPROM et aussi Bibliothèque EEPROMextent.

Ces mémoires sont limitées en taille. Il s’agit donc d’optimiser au maximum afin qu’une carte Uno puisse recevoir le programme et l’exécuter correctement.

Entrées/Sorties numériques

Elles sont numérotées de 0 à 13. Chacune de ces broches peuvent être utilisées comme entrées ou sorties digitales avec les fonctions :

  • pinMode
  • digitalWrite
  • digitalRead

Le voltage est à 5V ; en sortie numérique, HIGH veut dire que la broche est mis à 5V et LOW à 0V.

En sortie, ces broches peuvent fournir chacune un courant maximum de 40 mA. Mais il est recommandé de ne pas dépasser 20mA. A noter aussi que la consommation totale toutes broches confondues ne doit pas dépasser 200 mA.
Si vous avez besoin de courant sur plusieurs broches à la fois, la somme des courants est encore limitée. On se reportera à cet article en anglais pour plus de détails. A noter qu’une broche de sortie peut soit « fournir » du courant (SOURCE en anglais), soit « consommer » du courant (SINK en anglais). Les valeurs de courant maximum ne sont pas exactement les mêmes dans ces deux cas.

En entrée, elles ont une résistance de tirage (pull-up) interne de 20-50 kOhms qui est désactivée par défaut. Cette résistance qui est à l’intérieur du circuit, permet de « tirer » le niveau de cette entrée au 5V (HIGH) lorsque rien n’y est connecté ou ne la relie au 0V. Cela permet d’éviter d’en ajouter une à l’extérieur.

Pour activer cette résistance de tirage, il suffit de déclarer l’entrée de cette façon :

  1. pinMode(Pin_xx, INPUT_PULLUP);

Certaines broches ont aussi des fonctions spécialisées en plus de celles de base :

  • la fonction la plus connue est PWM  , qui est décrite plus précisément ici : La PWM : qu’est-ce ? (1). Les broches concernées sont 3, 5, 6, 9, 10 et 11.
  • Voie série sur les broches 0 (Rx) et 1 (Tx) : R pour Received et T pour Transmit. Ces broches sont connectées à l’Atmega 16U2 qui s’occupe de la voie série USB. Il est donc fortement déconseillé d’effectuer un branchement de cette voie série lors d’un téléchargement de programme.
  • Interruptions externes sur les broches 2 et 3 : voir l’article Les interruptions (1).
  • la broche 13 est un peu particulière car une LED incorporée sur la carte lui est reliée. Cette broche reste malgré tout utilisable si l’on accepte de voir la Led clignoter !
  • les broches 10 (SS), 11 (MOSI), 12 (MISO) et 13 (SCK) sont utilisées pour communiquer avec le protocole SPI   permettant des transferts à haute vitesse avec de nombreux périphériques comme les écrans graphiques par exemple.

Broches analogiques

La carte possède 6 broches analogiques numérotées de A0 à A5. Par défaut, elles mesurent le voltage de 0 à 5 V. Toutefois, il est possible de changer cette limite supérieure en utilisant la broche AREF et la fonction analogReference().

Ces broches sont associées à des convertisseurs analogiques-numériques intégrés de 10 bits qui donnent une valeur comprise entre 0 et 1023.

De même que les broches numériques, certaines ont des fonctions spécialisées :

  • les broches A4 (SDA) et A5 (SCL) sont utilisées pour communiquer en utilisant la Bibliothèque Wire. Elles constituent le bus I2C.

Autres broches

GND
Ce sont les masses. Elles servent à fermer le circuit.
3V3
Cette broche délivre du 3V3 pour un ampérage maximum de 50 mA. Elle peut être utilisée pour alimenter un composant à ce voltage.
AREF
Voltage de référence pour les broches analogiques, à utiliser avec la fonction analogReference().
Reset
Mettre cette broche à LOW permet de redémarrer la carte. Elle est beaucoup utilisée avec les shields   pour permettre un redémarrage lorsque le bouton physique de la carte est inaccessible.
IOREF
Cette broche donne le voltage de référence à lequel la carte fonctionne. Dans le cas du Uno, elle sera à 5V. Sert surtout pour les shields  .

Communication

Pour communiquer, l’Arduino Uno peut employer différents protocoles comme nous l’avons vu précédemment :

  • la voie série avec le port USB ainsi que les broches numériques 0 et 1.
    Précisons que à l’initialisation de la voie Série (par exemple quand on allume le terminal de l’IDE), la carte Arduino se réinitialise.
  • SPI   avec les broches numériques 10, 11 12 et 13.
  • I2C / Wire avec les broches analogiques A4 et A5
  • de plus, la librairie Software Serial permet d’utiliser n’importe quelle broche numérique pour communiquer en voie série.

Schéma complet des broches

On trouve d’excellents schémas en haute résolution montrant toutes les broches des Arduino sur le site de Markus Jenkins.

En voici un pour l’Uno :

La version haute résolution est ici.

Nous vous conseillons d’en imprimer un exemplaire lorsque vous démarrez un montage.

Auto-reset

Le circuit imprimé de l’Uno contient une piste qui peut être coupée pour supprimer l’auto-reset. Bien que nous ne vous conseillons pas de procéder à cette modification, sous peine de perdre certaines fonctionnalités (notamment pour le téléchargement de code), cette opération n’est pas irréversible : il suffit de ressouder les deux extrémités de cette piste ensemble. Il y a un marquage qui précise l’endroit où opérer : "RESET-EN". Il est aussi possible de supprimer l’auto-reset en connectant une résistance de 110 ohm entre le 5V et la ligne « reset ».

Protection par fusible intégré

L’Arduino Uno a un fusible ré-armable automatiquement qui protège le port USB des court-circuits ou des surcharges (en général, le courant maximum que peut fournir une prise USB est de 500 mA).

17 Messages

Réagissez à « La carte Arduino Uno »

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Rubrique « Matériel »

Fonctionnement et pilotage d’une DEL

Qu’est ce qu’une carte Arduino ?

Amplifier le signal de sortie d’un ARDUINO avec un ULN 2803

Résistances, kézako ?

Relais électromagnétique

Les diodes classiques

Détecteurs à ultrasons

La carte Arduino Uno

Bouton poussoir

Les différents types de mouvements d’un servomoteur

Les encodeurs en quadrature

Les écrans LCD alphanumériques

Des bus de communication pour l’Arduino

Les interrupteurs

Le microcontrôleur ATtiny45 (1)

Le microcontrôleur ATtiny45 (2)

Le microcontrôleur ATtiny45 (3)

Le microcontrôleur ATtiny45 (4)

Le microcontrôleur ATtiny45 (5)

Le microcontrôleur ATtiny45 (6)

Le microcontrôleur ATtiny45 (7)

Le microcontrôleur ATtiny45 (8)

Signaux lumineux et Arduino

Les shields de prototypage et de connexion

Commande de moteur à courant continu

Les derniers articles

Le microcontrôleur ATtiny45 (8)


Christian

Le microcontrôleur ATtiny45 (7)


Christian

Commande de moteur à courant continu


Christian

Le microcontrôleur ATtiny45 (6)


Christian

Les shields de prototypage et de connexion


Christian

Le microcontrôleur ATtiny45 (5)


Christian

Signaux lumineux et Arduino


Christian

Le microcontrôleur ATtiny45 (4)


Christian

Le microcontrôleur ATtiny45 (3)


Christian

Le microcontrôleur ATtiny45 (2)


Christian

Les articles les plus lus

Commande de moteur à courant continu

La carte Arduino Uno

Les diodes classiques

Qu’est ce qu’une carte Arduino ?

Les écrans LCD alphanumériques

Bouton poussoir

Amplifier le signal de sortie d’un ARDUINO avec un ULN 2803

Le microcontrôleur ATtiny45 (8)

Les différents types de mouvements d’un servomoteur

Des bus de communication pour l’Arduino