Commandes Arduino
Objectifs du Chapitre
Configurer une broche en entrée ou en sortie avec pinMode().
Lire et écrire un état logique avec digitalRead() et digitalWrite().
Lire une tension variable avec analogRead() et son échelle de 0 à 1023.
Simuler une tension avec analogWrite() et comprendre la modulation de largeur d'impulsion.
Utiliser delay() en connaissant son défaut : elle bloque tout le programme.
Communiquer avec l'ordinateur par le moniteur série.
Une poignée de fonctions suffit à piloter une carte, et ce chapitre les passe toutes en revue. Retiens surtout la distinction entre le numérique, qui ne connaît que deux états, et l'analogique, qui mesure une grandeur continue : c'est elle qui décide de la fonction à employer, et l'erreur la plus fréquente est de les confondre.
Les commandes de base en Arduino permettent de contrôler les composants et d'interagir avec les capteurs. Ce cours présente les principales commandes pour la manipulation des broches numériques et analogiques, les fonctions de base pour configurer les broches, lire des valeurs, écrire des valeurs, et utiliser les délais.
Configuration des broches avec pinMode()
La fonction pinMode() est utilisée pour configurer une broche en mode INPUT (entrée) ou OUTPUT (sortie). La configuration des broches est généralement faite dans la fonction setup().
- numeroBroche : le numéro de la broche à configurer.
- mode : le mode de la broche, soit
INPUTpour la lecture (par exemple, un capteur) ouOUTPUTpour la commande (par exemple, une LED).
Lecture numérique avec digitalRead()
La fonction digitalRead() permet de lire l'état d'une broche configurée en INPUT. Elle retourne HIGH si la broche est à un niveau logique élevé (5V sur la plupart des Arduino) et LOW si elle est à un niveau logique bas (0V).
- numeroBroche : le numéro de la broche à lire.
Dans cet exemple, l’état du bouton est affiché dans le moniteur série.
Écriture numérique avec digitalWrite()
La fonction digitalWrite() permet de définir l'état d'une broche configurée en OUTPUT. On peut définir l'état à HIGH pour envoyer 5V (ou 3.3V sur certaines cartes) ou LOW pour envoyer 0V.
- numeroBroche : le numéro de la broche à modifier.
- valeur : soit
HIGH(pour allumer par exemple une LED) ouLOW(pour l’éteindre).
Ce code fait clignoter la LED intégrée en l’allumant et l’éteignant chaque seconde.
Lecture analogique avec analogRead()
La fonction analogRead() lit la valeur d'une broche analogique (généralement A0 à A5 sur Arduino Uno). Elle retourne une valeur entre 0 (0V) et 1023 (5V), permettant de lire des valeurs de capteurs analogiques.
- numeroBroche : le numéro de la broche analogique (par exemple,
A0).
Ce code lit la valeur du capteur analogique connecté à A0 et l'affiche dans le moniteur série.
Écriture analogique avec analogWrite()
La fonction analogWrite() permet de simuler une sortie analogique en utilisant le PWM (Pulse Width Modulation) sur certaines broches numériques (généralement marquées avec un symbole ~). La valeur peut être réglée entre 0 (0V) et 255 (5V ou 3.3V).
- numeroBroche : le numéro de la broche avec capacité PWM.
- valeur : une valeur entre 0 et 255, où 0 est équivalent à
LOWet 255 équivalent àHIGH.
Ce code contrôle l'intensité lumineuse d'une LED connectée à la broche 9.
Utilisation des délais avec delay()
La fonction delay() provoque une pause dans l'exécution du programme pour une durée donnée (en millisecondes).
- duree : la durée de la pause, en millisecondes (1000 ms = 1 seconde).
delayMicroseconds() pour les pauses courtes
Si des pauses très courtes sont nécessaires, delayMicroseconds() permet d’attendre un nombre de microsecondes (1 microseconde = 0,001 milliseconde).
- dureeMicro : la durée de la pause en microsecondes.
Ce code fait clignoter la LED à une fréquence très rapide.
Résumé des commandes de base
| Commande | Description |
|---|---|
pinMode() | Configure une broche en entrée ou sortie |
digitalRead() | Lit l’état d’une broche numérique |
digitalWrite() | Modifie l’état d’une broche numérique |
analogRead() | Lit la valeur d’une broche analogique |
analogWrite() | Simule une sortie analogique sur une broche PWM |
delay() | Pause en millisecondes |
delayMicroseconds() | Pause en microsecondes |