LOCODUINO

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

mardi 19 mars 2024

Visiteurs connectés : 14

La carte Arduino Uno

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

DIFFICULTÉ :

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 :

JPEG - 268.2 kio

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 :

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 :

PNG - 277.9 kio

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).

23 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 »

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)

Le microcontrôleur ATtiny45 (9)

Le microcontrôleur ATtiny45 (10)

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

Un minimum pour jouer rapidement avec un Arduino

Où acheter ?

Résistances, kézako ?

Les cartes Teensy

Relais électromagnétique

Les diodes classiques

Détecteurs à ultrasons

De nouveaux composants pour continuer à jouer

La carte Arduino Uno

Bouton poussoir

Les différents types de mouvements d’un servomoteur

Les encodeurs en quadrature

Les indispensables du prototypage

Les écrans LCD alphanumériques

Des bus de communication pour l’Arduino

Les interrupteurs

Signaux lumineux et Arduino

Les shields de prototypage et de connexion

Commande de moteur à courant continu

Choisir sa carte Arduino

Une station DCC complète, polyvalente et économique avec JMRI.

Écran couleur tactile Kuman

Capteurs à effet Hall

Programmation des ATtiny Digispark

Ma première centrale DCC

Ma première manette DCC (1)

Une station DCC minimale avec boutons de commande et écran Oled

Ma première manette DCC (2)

Le Raspberry Pi Pico

Signalisation et sonorisation du va-et-vient pour deux trains

Configurateur de CV sur base de la station DCC minimale

Fabrication d’un programmateur pour microcontrôleurs ATtiny

Détection RailCom© avec ESP32 (ou Arduino)

Adieu Uno, bonjour Uno !

Ma nouvelle manette DCC avec ESP32 (1)

Ma nouvelle manette DCC avec ESP32 (2)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (1)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (2)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (3)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino.(4)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (5)

Les derniers articles

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (5)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino.(4)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (3)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (2)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (1)


bobyAndCo

Détection RailCom© avec ESP32 (ou Arduino)


bobyAndCo, catplus

Ma nouvelle manette DCC avec ESP32 (2)


msport

Ma nouvelle manette DCC avec ESP32 (1)


msport

Adieu Uno, bonjour Uno !


Christian

Fabrication d’un programmateur pour microcontrôleurs ATtiny


Christian, Dominique, Jean-Luc

Les articles les plus lus

Commande de moteur à courant continu

Une station DCC complète, polyvalente et économique avec JMRI.

Capteurs à effet Hall

Les différents types de mouvements d’un servomoteur

Le Raspberry Pi Pico

Programmation des ATtiny Digispark

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (5)

Des bus de communication pour l’Arduino

Les interrupteurs

Bouton poussoir