Introduction
Bienvenue dans votre premier projet contrôlé par liaison série sur le Raspberry Pi Pico ! Dans ce tutoriel, nous allons construire un circuit simple qui vous permet d’allumer et d’éteindre une LED en tapant des commandes dans le moniteur série. Vous apprendrez les bases de la communication série, de la sortie numérique et de l’utilisation du simulateur Velxio pour tester votre code sans aucun matériel.
Ce projet est parfait pour les débutants qui souhaitent comprendre comment les microcontrôleurs communiquent avec un ordinateur. À la fin, vous serez capable d’étendre le concept pour contrôler plusieurs LED, lire des capteurs, ou même construire un système de menu simple.
Présentation du circuit
Regardons le circuit que nous allons construire. Ouvrez l’exemple dans Velxio et vous verrez les composants suivants :

- Raspberry Pi Pico (nano-rp2040) : Le cerveau de l’opération. Nous utiliserons la broche D2 comme broche de contrôle.
- LED (led-status) : Une LED verte que nous allumerons et éteindrons. L’anode (A) se connecte au Pico, et la cathode (C) se connecte à une résistance de limitation de courant.
- Résistance (r1) : Une résistance de 220Ω pour limiter le courant traversant la LED et éviter tout dommage.
Détails du câblage
- Du Pico D2 à l’anode de la LED : Un fil vert relie la broche D2 du Pico à l’anode (A) de la LED. C’est le signal de commande.
- De la cathode de la LED à la résistance : Un fil gris relie la cathode (C) de la LED à une extrémité de la résistance (broche 1).
- De la résistance à la masse du Pico : Un fil noir relie l’autre extrémité de la résistance (broche 2) à la masse du Pico (GND.1).
Voilà ! Le circuit est simple mais efficace. La résistance est essentielle pour éviter de griller la LED. Avec une résistance de 220Ω et une tension directe typique de LED d’environ 2V, le courant sera d’environ (3,3V - 2V) / 220Ω ≈ 6mA, ce qui est sûr.
Explication du code
Plongeons maintenant dans le code. Ouvrez l’éditeur dans Velxio et vous verrez le sketch Arduino suivant :
// Raspberry Pi Pico — Contrôle de LED par liaison série
// Envoyez '1' pour allumer la LED, '0' pour l'éteindre, '?' pour l'état
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
delay(500);
Serial.println("=== Contrôle de LED Pico ===");
Serial.println("Commandes : 1=ALLUMER 0=ÉTEINDRE ?=état");
}
void loop() {
if (Serial.available()) {
char cmd = Serial.read();
switch (cmd) {
case '1':
digitalWrite(LED_BUILTIN, HIGH);
Serial.println("LED : ALLUMÉE");
break;
case '0':
digitalWrite(LED_BUILTIN, LOW);
Serial.println("LED : ÉTEINTE");
break;
case '?':
Serial.print("LED : ");
Serial.println(digitalRead(LED_BUILTIN) ? "ALLUMÉE" : "ÉTEINTE");
break;
default:
if (cmd >= ' ') {
Serial.print("Commande inconnue : ");
Serial.println(cmd);
}
break;
}
}
}
Comment ça fonctionne
setup(): Nous configurons la broche de la LED intégrée comme sortie, démarrons la communication série à 115200 bauds, attendons 500ms que la connexion série se stabilise, puis affichons un message de bienvenue et les instructions.loop(): Nous vérifions si un caractère est disponible dans le tampon série. Si c’est le cas, nous le lisons et utilisons une instructionswitchpour gérer trois commandes :'1': Allumer la LED (HIGH) et afficher une confirmation.'0': Éteindre la LED (LOW) et afficher une confirmation.'?': Lire l’état actuel de la broche de la LED et afficher “ALLUMÉE” ou “ÉTEINTE”.- Tout autre caractère imprimable (ASCII >= 32) affiche un message “Commande inconnue”. Les caractères non imprimables sont ignorés.
Remarquez que nous utilisons LED_BUILTIN, une constante prédéfinie pour la LED intégrée du Pico (généralement sur la broche 25). Dans notre circuit, nous avons connecté une LED externe à la broche D2, mais le code utilise toujours la LED intégrée. Si vous souhaitez contrôler la LED externe, remplacez LED_BUILTIN par 2 (ou définissez une constante). Pour cet exemple, la LED intégrée fonctionne très bien.
Concepts clés
- Communication série : Le Pico communique avec votre ordinateur via USB série.
Serial.begin(115200)définit le débit en bauds — assurez-vous que votre moniteur série correspond à cette vitesse. - Sortie numérique :
pinMode(pin, OUTPUT)etdigitalWrite(pin, HIGH/LOW)sont les bases du contrôle des broches. - Instruction Switch : Une manière propre de gérer plusieurs commandes. C’est plus efficace qu’une série d’instructions
if-else. - Validation des entrées : Le code ignore les caractères non imprimables et avertit des commandes inconnues. C’est une bonne pratique pour des programmes robustes.
Pièges courants et conseils de débogage
- Débit en bauds du moniteur série : Si vous voyez des caractères illisibles, le débit en bauds de votre moniteur série ne correspond pas à 115200. Dans Velxio, le moniteur série est intégré et utilise automatiquement le bon débit.
- La LED ne s’allume pas : Vérifiez que la LED est orientée correctement (anode vers D2, cathode vers la résistance). Vérifiez également la valeur de la résistance — trop élevée et la LED sera faible ; trop faible et elle pourrait griller.
- Les commandes ne fonctionnent pas : Assurez-vous d’envoyer exactement ‘1’, ‘0’ ou ’?’ (sans guillemets). Le code lit un seul caractère, donc envoyer “1\n” fonctionnera car le ‘1’ est lu en premier et le saut de ligne est ignoré (car non imprimable).
- Utilisation du simulateur : La barre d’outils de Velxio vous permet de compiler et d’exécuter votre code.
Cliquez sur le bouton “Run” pour démarrer la simulation. La barre d’outils du canevas
vous donne des contrôles comme la pause et la réinitialisation. Si vous avez besoin d’ajouter des composants, utilisez le sélecteur de composants
.
Extensions suggérées
Une fois que vous avez le projet de base fonctionnel, essayez ces améliorations :
- Contrôler une LED externe : Remplacez
LED_BUILTINpar2et câblez une LED externe sur la broche D2 comme indiqué dans le schéma du circuit. - Ajouter plus de LED : Utilisez plusieurs broches et des commandes comme ‘r’ pour rouge, ‘g’ pour vert, ‘b’ pour bleu.
- Variation PWM : Utilisez
analogWrite()pour définir les niveaux de luminosité. Envoyez des valeurs comme ‘0’ à ‘9’ pour une luminosité de 0% à 100%. - Communication bidirectionnelle : Faites en sorte que le Pico envoie des données de capteur (par exemple, la température) lorsque vous envoyez une commande comme ‘t’.
- Système de menu : Affichez un menu d’options et utilisez une boucle pour attendre une entrée valide.
Appel à l’action
Prêt à essayer par vous-même ? Ouvrez l’exemple en direct dans Velxio et commencez à expérimenter : Contrôle de LED par liaison série Pico sur Velxio. Pas de téléchargement, pas d’installation — juste votre navigateur et votre curiosité. Bon bricolage !