LOCODUINO

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

  • La carte Arduino Uno 22 avril 2016 15:58, par Poisson

    Bonjour Madame, Monsieur,

    Je voulais savoir si la carte arduino pouvait résister à des basses températures -40° environ.

    Cordialement.

    Répondre

  • La carte Arduino Uno 22 avril 2016 22:24, par Dominique

    Bonjour,

    Locoduino est un site consacré au modélisme ferroviaire et plus particulièrement à l’utilisation des plateformes Arduino pour le modélisme ferroviaire, activité de loisir qui ne se pratique pas normalement à des températures de -40° (à moins d’être complètement givré !).

    J’ai donc considéré votre question comme une blague au premier abord.

    Cependant, en y réfléchissant un peu, j’ai pensé que vous aviez peut-être l’intention de monter un réseau miniature dans la navette spatiale européenne, ou peut-être avez vous acquis une résidence secondaire sur la planète Mars, en prévision d’une panne de climatisation. Bref, nous souhaiterions être éclairés sur un nouvel usage auquel nous nous privons peut-être !

    Pour revenir à la question, je ne pense pas que les fabrications des cartes Arduino Uno/Genuino soient conçues pour de si basses températures. Mais il s’agit de matériel libre (Open Hardware comme disent les ango-saxons), ce qui autorise toute fabrication selon des critères plus sévères sans royalties.

    Je ne serais pas étonné que de telles cartes "endurcies" existent et nous serions ravi de savoir si l’une d’elle a pu servir notre passion préférée du modélisme ferroviaire.

    Dans l’attente....
    Cordialement.

    Répondre

    • La carte Arduino Uno 25 avril 2016 09:16

      Bonjour
      Tout d’abord merci de votre réponse et non ceci n’était pas une blague mais je n’avais pas fait attention que j’étais sur une page de passionnés de locomotives, je cherchais des renseignements concernant les cartes Arduino et je suis tombé sur ce forum d’où ma question.
      L’utilisation serait à des fins professionnelles.
      Merci de votre compréhension.
      Cordialement.

      Répondre

  • La carte Arduino Uno 13 février 2017 20:31, par alibert club maquettiste quillanais

    Pour notre futur réseau, je débute avec un arduino uno sous win xp et pb, certaines commandes passent, fonctionnement des leds tx et rx ok ;
    Dès le 1er projet livré avec livre et accessoires
    J’ai le défaut erreur de compilation carte arduino uno
    au moins l’instruction int ne se compile pas si elle n’est pas dans le setup.
    Avez vous une version de l’ide qui fonctionne bien avec xp ?

    Répondre

  • La carte Arduino Uno 13 février 2017 20:37

    Bonjour, et bienvenue sur Locoduino.
    Je ne sais pas quelle version de l’IDE vous exploitez, mais je ne connais pas de contre-indication avec XP, si ce n’est que la liaison série sera certainement beaucoup plus difficile à configurer qu’avec des systèmes modernes. Quel est exactement votre messages d’erreur ? Quel est le programme qui pose problème ? L’instruction ’int’ est à la base du langage, donc ce n’est pas elle qui pose problème, mais peut être est elle mal utilisée ? Il faut un peu de détails pour pouvoir diagnostiquer...

    Répondre

  • La carte Arduino Uno 14 février 2017 17:52, par alibert club maquettiste quillanais

    Avec l’IDE 1.8.1, le programme blink fonctionne, c’est l’exemple donné in situ qui ne fonctionne pas.
    Le problème est réglé, j’ai chargé la version de l’IDE : 1.7.11 et tout fonctionne correctement sous windows XP 32 bits pack3.
    Merci à vous

    Répondre

  • La carte Arduino Uno 14 février 2017 18:13, par Thierry

    Content que ça fonctionne, mais de quel exemple parlez vous ? Parce que si quelque chose ne marche pas chez nous, j’aimerai bien pouvoir le corriger, mais pour ça, il faut savoir de quoi on parle !

    Répondre

  • La carte Arduino Uno 21 février 2017 20:31, par Junon

    Bonjour,

    je suis sur le point de me lancer dans les premiers essais d’Arduino avec pour 1er but de comprendre/apprendre/maîtriser cet "outil"
    et pour objectif à moyen terme de remonter mon train en intégrant Arduino si celui ci m’a semblé utile/facile/pas cher
    en cherchant à acheter mes premiers éléments , j’ai trouvé bien des kits et bien des marques or vous semblez concentrer vos échanges sur Arduino Uno
    les autres (Elegoo UnoR3, Arduino Mega2560) sont ils compatibles/équivalents ou au contraire à fuir ?
    j’avoue pour l’instant avoir du mal à suivre vos échanges (très techniques)
    vous remerciant par avance de vos conseils
    Cordialement

    Répondre

    • La carte Arduino Uno 22 février 2017 12:46, par Dominique

      Bonjour,

      Il n’y a aucun modèle d’Arduino à fuir ;)

      Les Uno, Nano, Mini sont tous équivalent puisqu’ils sont équipés de même processeur Atmega328. Ce qui diffère c’est le facteur de forme, donc les dimensions. Le Uno à l’avantage, quand même d’avoir un jack d’alimentation, une prise USB normale (pas petite) et des broches femelles pour faciliter les prototypes avec une plaque d’essai.

      Le Mega apporte plus de confort avec 80 bornes d’entrées-sorties, un processeur plus puissant et surtout beaucoup plus de mémoire.

      Par contre sachez qu’il existe pleins de clones d’Arduino, en toute légalité, moins chers aussi et venant de Chine. Certains sont équipés du chip USB d’origine (FT232 de FTDI) donc compatibles avec votre OS. D’autres sont équipés d’un chip USB chinois qui nécessite un driver spécial (CH340 entre autres).

      Pour démarrer, je vous recommande un Arduino vraiment compatible.
      Personnellement je les ai tous essayés et j’en utilise beaucoup, sans problème.

      Vous pouvez y aller !!!!

      Répondre

  • La carte Arduino Uno 21 février 2017 21:23

    Bonjour et bienvenue. Pour apprendre à propos de l’Arduino dans un environnement ferrovipathe, vous êtes au bon endroit !
    Les Arduino sont multiples et divers. Le plus commun est le Uno, présent chez tous les fournisseurs sous -presque- la même forme. Malgré tout, des variantes existent autant en taille comme le Mini ou le Nano, qu’en nombre d’entrées/sorties disponibles comme le Mega 2560. Des modèles plus puissants encore existent avec des micro-contrôleurs plus rapides comme le Due équipé d’un processeur ARM.
    L’important est de choisir un Arduino adapté à l’usage que l’on veut en faire. Par exemple un manque de place va faire pencher la balance vers un Nano, version miniature du Uno. Un grand besoin d’entrée-sorties ou de mémoire de travail feront pencher la balance pour un Mega. Un besoin de puissance de calcul, de rapidité d’exécution, et c’est un Due qu’il faudra prendre.
    Chaque usage est unique, mais pour commencer et apprendre, le Uno reste incontournable. Il est bon marché, trouvable partout, et suffisamment puissant à tous les niveaux pour bon nombre d’applications courantes dans notre domaine.
    Quelques exemples d’utilisation trouvés sur le site : un Nano pour une centrale Dcc est un peu juste, mais c’est faisable. Un Mega pour piloter 16 feux de trois Leds, ou un Due pour gérer les itinéraires sur des réseaux complexes... A vous de trouver l’usage que vous souhaitez en faire !

    Répondre

  • La carte Arduino Uno 31 mai 2017 14:03, par nakbi

    Bonjour
    J’ai acheté un kit arduino et lors d’un essai avec les j’ai fais une faute,j’ai relié le 5V par le gnd à travers la plaque d’ essai faute d’inattention mon question est-ce que la carte est protège contre la court circuit et cette faute n’influe pas sur le performance et le fonctionnement de ma carte ??
    Et merci d’avance.

    Répondre

    • La carte Arduino Uno 31 mai 2017 15:32, par Dominique

      Si elle est protégée contre les court-circuits, alors elle marche encore : Est-ce le cas ?
      Méfiez-vous de l’orthographe aussi (au moins 10 fautes !)

      Répondre

  • La carte Arduino Uno 24 septembre 2019 10:41, par eeéeeee

    Quels sont les liaisons série disponibles sur la carte Arduino Uno ?

    Répondre

  • La carte Arduino Uno 24 septembre 2019 10:55, par Thierry

    Comme expliqué dans l’article, une seule liaison série est disponible sur les broches 0 et 1. Après, d’autres liaisons peuvent être créées par logiciel avec la bibliothèque SoftwareSerial .

    Répondre

  • Carte Arduino Mega L9110S Dual Motor Shield Ethernet Alim 18v 10 A 25 septembre 2019 07:49, par Marchand Patrick

    Bonjour,
    Je cherche un schéma de branchement pour les comopsants suivants :
    1 carte Arduino Mega
    1 carte L9110S Dual Motor Drivers
    1 carte shield Ethernet
    1 alimentation 18 volts 10 ampères.
    Sur le site Locoduino je ne vois pas tous les branchements.
    Merci.
    Cordialement,

    Répondre

  • Pour moi, tout est décrit dans cet article, dont le schéma :
    http://locoduino.org/spip.php?article253
    Le shield Ethernet est enfiché sur le MEGA.

    Voir en ligne : http://locoduino.org/spip.php++cs_INTERRO++article253

    Répondre

  • La carte Arduino UnoELEGO R3 16 novembre 2022 18:10, par Hubert GAUTREAU

    JE recherche avec quel IDE je suis capable de charger un programme qui est un fichier hexadécimal de moins de 2 Ko pour l’intégrer dans ma puce M328 p ; J’ai essayé plusieurs IDE au travers du bus USB qui se connecte sans problème avec le bon port Com En particulier celui qui m’a semblé le plus fonctionnel est MPLABX IPE et toutes mes déclarations se déroulent correctement . j’arrive même a charger mon programme dans le logiciel mais toute le partie programmation et lecture du contenu dans la puce ne veut pas s’exécuter les différents boutons sont grisés donc in opérationnels. j’ai tenté d’utiliser lIDE Arduino 1.8.18 sous Windows 10 mais celui-ci ne veut que des fichiers .ino et en particulier blink qui fonctionne bien et qui permet de voir que le circuit m328 p est en bon état. la seule méthode que j’ai trouvé est d’utiliser avrdude pour faire les opérations de lecture et écriture dans la puce mais cette solution est très difficile à mettre en œuvre le risque d’erreurs est conséquent. chaque erreur de frappe ou de définition est rédhibitoire il faut tout retaper je suis étonné qu’il néxiste pas à ma connaissance de programme IDE en version graphique qui soit opérationnel et donc assez facile d’utilisation .dites m’en plus pour pouvoir avancer avec ce matériel. Merci d’avance.

    Répondre

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 »

Les derniers articles

Les articles les plus lus