Moniteur série - Saisir la valeur d’une variable

Principe

Le moniteur série offre également la possibilité de saisir du texte au clavier dans un zone dédiée.

Saisie d’un texte dans le moniteur série

Pour valider le texte saisi, il faut cliquer sur le bouton « Envoyer » ou appuyer sur la touche « Entrée » du clavier.

Avertissement

Ne pas oublier de sélection l’option « Pas de fin de ligne » pour éviter un comportement anormal de la saisie.

Montage

Une LED en série avec une résistance de \(220~\rm\Omega\) est branchée sur la broche 11.

Schéma du montage

L’expérience consiste à faire varier l’intensité de la LED par Modulation de Largeur d’Impulsion (MLI ou PWM). La valeur du rapport cyclique est saisie au clavier

Programme

/*
 * PWM avec saisie du rapport cyclique (entier de 0 à 255) au clavier dans le moniteur série.
 * ATTENTION : Sélectionner "Pas de fin de ligne" dans le monitor série !!!
 * David THERINCOURT - 2025
 */

int LED = 11;            // LED connectée à la broche 11

void setup()
{
   Serial.begin(9600);   // Initialisation du port série
   pinMode(LED,OUTPUT);  // Configuration de la broche LED en sortie
}

void loop()
{
   Serial.print("Rapport cyclique entre 0 et 255 : ");  // Indication à l'utilisateur
   while (Serial.available()==0){}                      // Attente d'un message (Cocher "Pas de fin de ligne")
   int N = Serial.parseInt();                           // Extraction de la valeur numérique (entier)
   Serial.println(N);                                   // Affichage
   analogWrite(LED, N);                                 // Ecriture sur la sortie PWM
}

Résultats dans le moniteur série

Quelques explications :

  • La valeur du rapport cyclique est entrée sous forme d’une chaîne de caractères dans la zone de saisie.

  • La méthode Serial.available() renvoie 0 tant que la saisie n’est pas validée par l’utilisateur.

  • Une fois la saisie validée, la méthode Serial.available() renvoie 1 et le programme sort de la boucle while.

  • Pour finir, la méthode Serial.parseInt() extrait un entier de la chaîne de caractères et renvoie sa valeur.