View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Broches Entrées/Sorties numériques

Pour comprendre

Un circuit numérique peut être considéré comme un "réservoir" duquel sorte des tuyaux avec des robinets. Ces robinets de sortie sont les broches numériques du circuit.

Chaque "tuyau" (ou broche) fonctionne en tout ou rien et présente un niveau précis :

  • soit il y a une tension sur la broche (5V): le niveau est dit HAUT, ou égal à 1.
  • soit il n'y a pas de tension sur la broche (0V) : le niveau est dit BAS, ou égal à 0.

Chaque "tuyau" ou broche fonctionne dans un sens précis :

  • soit le tuyau "reçoit" du courant : la broche est dite en entrée.
  • soit le tuyau "donne" du courant : la broche est dite en sortie

Broches en SORTIE

Principe de configuration d'une broche E/S en SORTIE

Broches en ENTREE

Principe de configuration d'une broche E/S en ENTREE

Notion de "rappel au plus" ou de "rappel au moins"

Lorsqu'une broche numérique d'Entrée/Sortie est connectée à rien, le niveau présent sur cette broche en entrée est instable et une LED programmée pour refléter l'état de cette broche clignoterait de façon erratique. Ceci est du au fait que l'entrée est "flottante" - c'est à dire qu'elle n'a pas de connexion matérielle au +5V ou à la masse, et elle oscillera de façon aléatoire entre le niveau HAUT et le niveau BAS. C'est pour cette raison qu'il faut mettre une résistance de "rappel au moins" dans le montage du BP sur la broche numérique en entrée.

Pour plus d'information sur le bouton poussoir, voir : Le Bouton Poussoir

Il est possible de réaliser un montage d'un bouton poussoir sur une broche en entrée avec un "rappel au plus" ou pull-up ou d'un "rappel au moins" ou "pull-down". Dans les deux cas, il faudra une résistance de rappel, d'une valeur de l'ordre de 10 kOhms.

Voici un exemple de "rappel au moins" ou pull-down avec une carte Arduino : Lire l'état d'un bouton poussoir

Le microcontrôleur utilisé sur la carte Arduino dispose cependant d'une résistance interne qu'il est possible d'activer pour réaliser ce "rappel au plus", ce qui permet de se dispenser d'une résistance externe ! Voir l'exemple : l'appui sur un BP allume une LED

Concernant l'activation du "rappel au plus interne" avec une carte Arduino, voir : Les broches numériques d'entrée/sortie

La notion de rebond et de pause anti-rebond

Lorsque l'on appuie sur un BP, au niveau microsopique, le contact n'est pas immédiat. Tout se passe comme si le BP "rebondissait" en quelque sorte avant que le contact soit vraiment effectife, un peu comme une balle rebondit avant de rester posée au sol. Il en résulte que l'état de la broche sur laquelle est connecté le BP va transitoirement varier entre les niveaux HAUT/BAS de façon répétée pendant une courte durée.

Pour éviter les comportements inattendus du programme lors de la prise en compte de l'état du BP, il est d'usage d'utiliser une pause anti-rebond qui permettra de s'affranchir de cette courte période d'instabilité de l'état du BP.

La tension des niveaux logiques en entrée de la carte Arduino :

  • Pour mémoire, on rappelle ici la tension des niveaux logiques d'entrée pour la carte ARduino (ATmega 328) :
  • Ce qui donne en 5V :
    • Niveau Logique BAS (LOW) en entrée : VIL = 0.3 x Vcc = 0.3 x 5V = 1,5 Volts. Une tension inférieure à 1.5V est considérée comme un niveau BAS.
    • Niveau Logique HAUT (HIGNH) en entrée : VIH = 0.6 x Vcc = 0.6 x 5V = 3.0 Volts. Une tension supérieure à 3V est considérée comme un niveau HAUT.
    • La zone intermédiaire 1,5V - 3V est indéterminée et doit être évitée... Les niveaux HAUT / BAS acceptés ont des valeurs assez tolérantes.

Pour aller plus loin :