Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]

Les broches numériques d'entrées/sorties (E/S)


Description

Les broches numériques de la carte Arduino peuvent être configurées soit en sortie, soit en entrée. Ce document explique le fonctionnement des broches de la carte Arduino dans ces différents modes de fonctionnement. Bien que le titre de ce document ce réfère aux broches numériques, il est important de noter que la vaste majorité des broches analogiques des cartes Arduino (basées sur les microcontrôleurs ATmega), peuvent être configurées et utilisées de la même façon en tant que broches numériques. (Autrement dit, les broches analogiques sont également numériques : cela dépendra de la façon dont elles seront configurées.)

Propriété des broches numériques configurées en ENTREE

Les broches numériques des cartes Arduino (basées sur les microcontrôleurs Atmega) sont par défaut configurées en entrée au démarrage, et par conséquent elles ne nécessitent pas d'être explicitement déclarées en ENTREE à l'aide de l'instruction pinMode(). Les broches configurées en entrée sont dites en état de "haute-mpédance" (= haute résistance). Une façon d'expliquer cela est que la broche numérique en entrée sollicite très peu le circuit sur laquelle elle est branchée : tout se passe comme si une résistance de 100 megaOhms (million de Ohms, le Ohm étant l'unité de mesure des résistance) devant la broche. Cela signifie que la broche numérique en entrée utilise une très faible intensité lorsque le niveau de la broche passe d'un état à l'autre (HAUT vers BAS et inversement), et ceci rend les broches numériques en entrée très pratique pour des tâches telle que l'utilisation d'un capteur de toucher capacitif, la lecture d'une LED en tant que photodiode ou lire un capteur analogique avec un montage tel que le temps RC.

Ceci signifie également que les broches numériques en entrées laissées déconnectées, ou câblée avec des fils qui ne sont connectés à aucun autre circuit, renverront un état de la broche changeant apparemment de façon aléatoire, attrapant le bruit électrique de l'environnement immédiat de la carte, ou couplée "capacitivement" à l'état d'une broche proche.

Resistances de "rappel au plus" ou "pullup"

Souvent il est pratique de mettre la broche dans un état logique défini si aucune entrée n'est présente (pour éviter justement la variation aléatoire décrite ci-dessus). Cela peut être fait en ajouter une résistance de "rappel au plus" ou pullup (connectée entre la broche et le 5V), ou de "rappel au moins" ou pulldown (connectée entre la broche et le 0V), une résistance de 10 KOhms étant une valeur commune.

Il y a également de très pratiques résistances de "rappel au plus" de 20K à l'intérieur du microcontrôleur Atmega sur lequel est basée la carte Arduino, résistances qui peuvent être configurées par programme. Ces résistances internes de "rappel au plus" peuvent être activées de la façon suivante un peu particulière ( on écrit la valeur HAUT sur la broche configurée en ENTREE ) :

pinMode(pin, INPUT);           // configure la broche en entrée
digitalWrite(pin, HIGH);       // écrit la valeur HIGH (=1) sur la broche en entrée 
                             // ce qui active la résistance de "rappel au +" (pullup) au plus de la broche

Noter que la résistance de "rappel au plus" (pullup) fournit assez d'intensité pour faiblement allumer une LED connectée à la broche numérique configurée en entrée. Si une LED semble fonctionner dans un montage, mais très faiblement, c'est probablement ce qui se passe et le programmeur a oublié d'utiliser l'instruction pinMode() pour configurer la broche en sortie.

Noter également que les résistances de "rappel au plus" (pullup) sont contrôlées par les mêmes registres (localisation interne de la mémoire du microcontrôleur) qui contrôle le niveau HAUT ou BAS des broches en SORTIE (voir ci-dessous). Ainsi, une broche qui aura été configurée avec les résistances de "rappel au plus" (pullup) internes activées lorsqu'elle était en ENTREE, aura la broche au niveau HAUT lorsqu'elle sera configurée en SORTIE avec l'instruction pinMode(). Cela fonctionne également dans l'autre sens, et une broche en sortie qui est laissée au niveau HAUT aura sa résistance de "rappel au plus" qui sera activé lorsqu'elle basculera en ENTREE avec l'instruction pinMode.

NOTE : La broche numérique 13 est plus difficile à utiliser que les autres en tant qu'entrée numérique car elle est associée à une résistance et sa LED soudées sur le circuit imprimé de la carte sur la plupart des cartes. Si vous activez la résistance interne de rappel au plus de 20K, cela mettra la borche à 1,7V au lieu des 5V théoriques car la LED et la résistance associées à la broche abaisse la tension, qui est toujours considérée au niveau BAS (LOW). Ainsi, si vous devez utiliser la broche 13 en tant qu'entrée numérique, utiliser une résistance de rappel au plus externe.

Propriétés des broches configurées en SORTIE

Les broches configurées en SORTIE avec l'instruction pinMode () sont dite en état de "basse-impédance" (= résistance basse). Cela signifie qu'elle peuvent fournir une intensité non négligeable aux autres circuits auxquels elles seront connectées. Ainsi, chaque broche de la carte Arduino (basée sur un microcontrôleur Atmega) peut fournir ( intensité sortante) ou recevoir (intensité entrante) jusqu'à 40 mA (milliampères - l'ampère est l'unité de mesure des intensités, ou quantité de courant qui circule) aux autres circuits/composants. Ceci est assez pour allumer une LED (15mA) qui sera connectée sur la broche avec une résistance en série, ou pour faire fonctionner de nombreux capteurs par exemple, mais pas assez de courant pour faire fonctionner la plupart des relais, bobines ou moteurs (il faut 200mA à 600mA pour un petit moteur à courant continu CC)

Les court-circuits survenants sur les broches de la carte Arduino, ou les tentatives d'utilisation avec les broches d'éléments fonctionnant avec une intensité élevée peuvent endommager ou détruire les transistors de sortie internes de la broche, voire même détruire totalement le microcontrôleur Atmega de la carte Arduino. Le plus souvent, cela aboutit à une broche "morte" sur la microcontrôleur, mais le reste du microcontrôleur et de la carte Arduino fonctionne normalement. Pour cette raison, c'est une bonne pratique de connecter les broches en SORTIE aux autres composants avec des résistances de 470Ω ou 1Kohms, à moins que le courant maximum soit requis sur une broche pour une utilisation particulière ( limité cependant à 40mA).

Commentaires utilisateurs

ATTENTION : Bien que chaque broche numérique en sortie puisse potentiellement fournir 40mA, le total cumulé de l'intensité que peuvent fournir les broches numériques de la carte Arduino est de l'orde de 200mA. Il faut donc, pour une carte Duemilanove par exemple (20 broches), limiter par précaution l'intensité utilisée sur chaque broche à 10mA environ.


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.

Traduit depuis la page originale suivante : http://arduino.cc/en/Tutorial/DigitalPins