Retour

Contrôle de LED par liaison série avec Arduino : envoyer des commandes pour faire clignoter

Introduction

Bienvenue dans le projet Contrôle de LED par liaison série ! Dans ce tutoriel, vous apprendrez à contrôler une LED connectée à un Arduino Uno en envoyant des commandes simples via le moniteur série. C’est un projet classique pour débutants qui combine deux concepts fondamentaux : la communication USART (Universal Synchronous/Asynchronous Receiver-Transmitter) et la sortie GPIO (General Purpose Input/Output). À la fin, vous serez capable d’allumer et d’éteindre une LED en tapant « 1 » ou « 0 » dans le moniteur série, et même d’interroger l’état de la LED avec « ? ».

Nous utiliserons Velxio, un simulateur de circuits et de microcontrôleurs en ligne avec un support analogique précis au niveau SPICE. Aucun matériel nécessaire — juste votre navigateur ! C’est parti.

Présentation du circuit

Schéma du circuit de contrôle de LED par liaison série sur le canevas du simulateur Velxio

Le circuit est incroyablement simple. Vous n’avez besoin que de deux composants :

Détails du câblage

  1. L’anode de la LED (broche longue, patte A) se connecte à la broche 13 de l’Arduino via un fil vert (#00cc00).
  2. La cathode de la LED (broche courte, patte C) se connecte à la masse (GND) de l’Arduino via un fil noir (#000000).

C’est tout ! Aucune résistance n’est nécessaire car la broche 13 de l’Arduino Uno possède déjà une résistance de limitation de courant intégrée sur la carte. Dans un circuit réel, vous ajouteriez une résistance de 220Ω en série avec la LED, mais pour la simulation, cela fonctionne parfaitement.

Comment construire dans Velxio

  1. Ouvrez l’exemple de contrôle de LED par liaison série dans Velxio.
  2. Vous verrez l’Arduino Uno et la LED déjà placés sur le canevas. Si vous voulez construire à partir de zéro, utilisez le sélecteur de composants (illustré ci-dessous) pour ajouter un Arduino Uno et une LED.

Fenêtre modale du sélecteur de composants Velxio parcourant les pièces par catégorie

  1. Cliquez sur l’Arduino Uno pour le sélectionner, puis cliquez sur la broche 13. Faites glisser un fil vers l’anode de la LED (patte A).
  2. De même, connectez la cathode de la LED (patte C) à n’importe quelle broche GND de l’Arduino.
  3. Utilisez la barre d’outils du canevas pour zoomer et vous déplacer afin d’obtenir une meilleure vue.

Barre d'outils du canevas Velxio au-dessus de la fenêtre de simulation

Explication du code

Code source pour le contrôle de LED par liaison série dans l'éditeur Monaco de Velxio

Examinons maintenant le code qui fait fonctionner tout cela. Ouvrez l’éditeur de code dans Velxio (vous verrez l’éditeur Monaco avec la coloration syntaxique).

// Serial LED Control
// Send "1" to turn LED ON, "0" to turn LED OFF.
// Demonstrates Serial input controlling hardware.

const int LED_PIN = 13;

void setup() {
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);

  Serial.println("=========================");
  Serial.println(" Serial LED Controller");
  Serial.println("=========================");
  Serial.println("Send '1' = LED ON");
  Serial.println("Send '0' = LED OFF");
  Serial.println("Send '?' = Status");
  Serial.println();
}

bool ledState = false;

void loop() {
  if (Serial.available() > 0) {
    char cmd = Serial.read();

    switch (cmd) {
      case '1':
        digitalWrite(LED_PIN, HIGH);
        ledState = true;
        Serial.println("[OK] LED is ON");
        break;
      case '0':
        digitalWrite(LED_PIN, LOW);
        ledState = false;
        Serial.println("[OK] LED is OFF");
        break;
      case '?':
        Serial.print("[STATUS] LED is ");
        Serial.println(ledState ? "ON" : "OFF");
        Serial.print("[STATUS] Uptime: ");
        Serial.print(millis() / 1000);
        Serial.println("s");
        break;
      default:
        if (cmd >= 32) { // ignore control chars
          Serial.print("[ERR] Unknown command: '");
          Serial.print(cmd);
          Serial.println("'  (use 1, 0, or ?)");
        }
        break;
    }
  }
}

Comment ça fonctionne

Exécution de la simulation

  1. Cliquez sur le bouton Exécuter dans la barre d’outils de l’éditeur.

Barre d'outils de l'éditeur Velxio avec les commandes de compilation et d'exécution

  1. Ouvrez le moniteur série (généralement un bouton dans la barre d’outils ou un panneau séparé).
  2. Tapez 1 et appuyez sur Entrée – la LED verte devrait s’allumer.
  3. Tapez 0 – la LED s’éteint.
  4. Tapez ? – vous verrez l’état et la durée de fonctionnement.

Concepts clés pour les étudiants

Ce projet enseigne plusieurs concepts importants :

Pièges courants et conseils de débogage

Extensions suggérées

Une fois que vous maîtrisez ce projet, essayez ces améliorations :

  1. Ajoutez une deuxième LED sur la broche 12 et contrôlez-la avec des commandes comme « 2 » et « 3 ».
  2. Utilisez la PWM pour contrôler la luminosité : envoyez un nombre de 0 à 255 pour régler la luminosité de la LED via analogWrite().
  3. Ajoutez un bouton comme entrée : lisez une broche numérique et basculez l’état de la LED lorsqu’il est enfoncé.
  4. Implémentez un analyseur de commandes qui accepte des chaînes comme « ON » ou « OFF » au lieu de caractères uniques.
  5. Enregistrez des données sur le moniteur série : affichez des relevés de capteurs ou des horodatages.

Conclusion

Vous venez de construire un contrôleur de LED par liaison série simple mais puissant ! Ce projet est la base d’innombrables projets IoT et d’automatisation où vous contrôlez du matériel via des commandes textuelles. Velxio permet d’expérimenter facilement sans aucun composant physique.

Prêt à essayer par vous-même ? Ouvrez l’exemple de contrôle de LED par liaison série dans Velxio, lancez la simulation et commencez à envoyer des commandes. Bon bricolage !


Partager sur :
David Montero

Écrit par

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Articles liés


Article précédent
Scanner I2C avec Arduino : Trouver chaque périphérique sur le bus
Article suivant
Écho série avec Arduino : Apprenez la communication USART