La fonction pinMode() sur Arduino : configurer les entrées et sorties

Pour configurer une broche sur une carte Arduino; soit pour la définir en une sortie ou une entrée, quel que soit son type; analogique ou binaire, il est nécessaire d'indiquer au microcontrôleur comment cette broche est utilisée. Pour ce fait, Arduino nous propose la fonction pinMode(), qui est l'une des fonctions les plus importantes dans son environnement.

Par exemple, avant d'allumer une diode LED, de lire un bouton, de commander un moteur, un relais ou de communiquer avec un capteur, il est indispensable de configurer la broche ou les différentes broches de notre carte.

Par exemple, sur une carte Arduino Uno, nous retrouvons plusieurs broches, appelées aussi GPIO pour l'abréviation en anglais General Purpose Input Output. Comme nous l'avons indiqué ci-dessous, ces broches peuvent être utilisées comme des entrées ou des sorties en fonction de notre besoin. Ce qui les rend configurables, très agiles dans leur mode de fonctionnement. Ainsi, elles peuvent recevoir une information binaire ou analogique provenant d'un bouton, d'un capteur comme elles peuvent lire ou émettre un signal analogique.

Combien dispose chaque carte d'entrées et de sorties ?

Une carte Arduino Uno dispose de plusieurs entrées et sorties, le tableau ci-dessous nous rappelle cela :

Caractéristique Spécification technique
Broches E/S numériques 14 dont 6 ports avec PWM (Pulse Width Modulation en anglais)
Entrées analogiques 6  ports

 

Pour plus de détails, le schéma ci-dessous vous présente les différents entrées/sorties analogiques et numériques disponibles sur cette carte :

Les entrées/sorties analogiques et numériques sur Arduino Uno
Les entrées/sorties analogiques et numériques sur Arduino Uno

 

Si vous souhaitez obtenir plus de détails par rapport à cette carte populaire de la famille Arduino, nous vous invitons à vous référer à la section de notre cours suivant : Arduino Uno. Pour des raisons de compatibilités et dans le même principe, les deux cartes Uno R4 proposées par Arduino, dans ses deux versions Minima et Wifi présente également le même numbre de ports E/S numériques ou analogiques, disposés de la même manière. Pour rappel, nous vous partageons ce petit tableau :

Caractéristique Spécification technique : R4 Minima ou version Wifi
Broches E/S numériques 14 dont 6 ports avec PWM (Pulse Width Modulation en anglais)
Entrées analogiques 6  ports

Syntaxe de la fonction pinMode()

La syntaxe de cette fonction, d'après le framework Arduino, est comme sui :

pinMode(pin, mode);

tels que les paramètres de cette fonction sont les suivants :

  • pin : numéro de la broche (pin ou connecteur entrée ou sortie) à configurer, et,
  • mode : mode de fonctionnement de la broche.

Avec les principaux modes sont :

  • INPUT: pour définir le port comme entrée numérique.
  • INPUT_PULLUP: pour définir le port en entrée numérique avec l'activation de la résistance de rappel interne.
  • OUTPUT: pour définir le port comme sortie numérique.

Les E/S numériques

Une fois que le microcontrôleur se réveille, autrement dit la carte a été mise sous tension ou réinitialisée, toutes les broches numériques, appelées aussi entrées/sorties, sont configurées par défaut comme des pins d'entrées (en anglais, appelée aussi INPUT. Du coup, pour les utiliser comme des sorties, il est nécessaire de les reconfigurer à des broches de sorties. Comme un premier exemple de code pour ce cours, nous allons redéfinir le port 8 à une sortie numérique :

void setup() {
   pinMode(8, OUTPUT);
}

void loop()
{
   // placez votre code principal ici, pour qu'il s'exécute en boucle indéfiniment.
}

Les entrées (E) analogiques

Une carte Arduino Uno ne dispose que des entrées analogiques désignées de A0 à A4. Comme nous le démontre le schéma ci-dessus dans la section "Combien dispose chaque carte d'entrées et de sorties", cette carte ne dispose que de ces 5 entrées analogiques pour lire une valeur, un signal, etc. Si nous aurons besoin d'une sortie analogique, il est possible d'apater les sorties PWM sous Arduino pour ce besoin.

C'est quoi PWM ?

PWM est l'abréviation en anglais de Pulse Width Modulation, soit en français la modulation de largeur d'impulsion.

Ces sorties sont donc capables de générer une puissance moyenne si vous faisez varier le rapport cyclique de la broche; ce qui nous permet d'obtenir une valeur moyenne souhaitée variable entre 0 et 5V.

Un premier exemple PWM

Par exemple, si vous souhaitez obtenir une valeur moyenne de 3.4V, vous pouvez configurer une des sorties PWM, disponible sur la carte, de cette sorte : Arduino fonctionne généralement avec une tension logique comprise entre 0 et 5V. Pour obtenir une valeur moyenne de 3.4V, il est donc demandé de générer un rapport cyclique :

\[ D = \frac{3.4}{5}=0,68 \]

Soit donc un rapport cyclique de 68%. Pour mieux comprendre cela, l'oscillogramme ci-dessous nous explique comment sera la sortie de cette broche dans le temps :

Forme d'un signal périodique à rapport cyclique de 68%

Et le code approprié pour générer ce signal PWM moyenné à 3.4V à partir de la même broche 8 sera donc comme suit :

void setup() {
  pinMode(8, OUTPUT);
}

void loop() {
  analogWrite(8, 173);
}

La valeur 173 correspond à la valeur calculée à partir de cette règle \( 255 \cdot 0.68 = 173.4 \) soit donc 173.

Il est aussi possible de retrouver cette valeur en appliquant la règle de trois telle que:

\[ 5V \longrightarrow 255 \]

\[ 3.4V \longrightarrow ? \]

\[ ? = \frac{3.4 \cdot 255}{5} \cong 173 \]

 


📝 La dernière modification de cette page a été faite le 22 August 2026 par Electro & Robot