Ceci est une ancienne révision du document !
Les broches digitales de l'Arduino peuvent être indifféremment configurées comme des entrées ou des sorties.
Remarque: La majorité des microcontrôleurs Atmega permettent de configurer de la même manière leurs broches analogiques.
Par défaut les broches de l'Atmega sont déclarées en entrées. Il n'est donc pas nécessaire d'explicitement les déclarer en entrées via l'appel de la fonction pinMode(). Les broches en entrées sont dites en état d'haute impédance. Une façon d'expliquer ça est de dire que dans cet état, les broches ne consomme qu'une tres faible partie du circuit qu'elles échantillonnent. La haute impédance équivaut à une résistance de 100 méga Ohm devant la broche. En haute impédance, un très faible arrivée de courant peut faire basculer l’état de la broche. Cela peut être intéressant pour mettre ne œuvre un senseur capacitif ou lire une photodiode.
Cela veut dire toutefois que des broches configurées en entrées et n'étant reliées à aucun circuit changeront d'état de façon apparemment aléatoire en fonction des bruits électrique de l'environnement ou en se comportant comme des condensateurs avec les broches les plus proches.
Il est souvent utile de forcer une broche en entrée dans un état connu lorsqu'aucune entrée ne se produit. On ajoute alors une résistance de rappel au plus (pullup) ou de rappel au moins (pulldown). Une résistance de valeur de 10Kohm est habituellement utilisée.
Il est également possible d'activer les résistances de pullup (de 20 KOhm) intégrées à l'Atmega de façon logicielle:
pinMode(pin, INPUT); // définit la broche numéro pin en entrée digitalWrite(pin, HIGH); // active la résistance de pullup
Lorsque elle est activée, la résistance de pullup peut fournir un faible courant à une LED connectée sur une broche configurée en entrée. Si dans un projet, une LED semble fonctionner mais très faiblement, c'est que le programmeur a oublié de configurer la broche en sortie via l'appel a la fonction pinMode().
Les résistances de pullup sont contrôlées par le même registre que celui qui détermine si les broches sont à l’état HAUT ou BAS. Par conséquent une broche configurée pour avoir la résistance de pullup lorsqu'elle est en entrée sera configurée a l'état HAUT si elle est basculée en sortie via la fonction pinMode(). Inversement une broche configurée en sortie et sur laquelle un état HAUT est écrit se retrouvera en entrée avec la résistance de pullup active si pinMode() est appelée et que la broche et reconfigurée en entrée.
La broche 13 est souvent plus difficile à utiliser en tant qu'entrée. Cela est du au fait que sur la majorité des cartes une LED et une résistance ont été ajoutés directement derrière la broche 13.