commande-serie.ino
La carte devient un mini-serveur série : chaque caractère reçu dans le moniteur exécute une commande (basculer la LED, monter/descendre le PWM, afficher l'état). Base idéale pour scripter des tests depuis un PC.
Matériel requis
Une Arduino Uno R3 (ATmega328P, 5 V, 16 MHz) alimentée par USB ou jack 7-12 V. Aucun composant supplémentaire pour tester ; LED et charge PWM au choix.
Câblage
LED sur 13 et charge PWM sur 9 (avec résistance 330 Ω). Le moniteur série de l'IDE est réglé sur 9600 bauds, fin de ligne "aucun".
Fonctionnement
Serial.available() teste sans bloquer, Serial.read() lit un octet, un switch exécute l'action. Les réponses sont imprimées pour retour visuel.
Exécution
Dans l'Arduino IDE, choisissez la carte « Arduino Uno » et le port série correspondant, puis cliquez sur Téléverser. Ouvrez le moniteur série à 9600 bauds pour suivre les messages.
Variantes
Remplacez le switch par Serial.readStringUntil('\n') pour des commandes à plusieurs mots, ou connectez un module Bluetooth HC-05 sur SerialSoftware.
commande-serie.ino
// Mini-serveur de commandes : 'l' LED, 'b' buzzer, 'u'/'d' PWM, 's' etat.
const int LED = 13;
const int PWM = 9;
int niveau = 128;
bool ledOn = false;
void setup() {
pinMode(LED, OUTPUT);
pinMode(PWM, OUTPUT);
Serial.begin(9600);
Serial.println(F("Commandes: l=LED b=buzzer u/d=pwm s=etat"));
}
void loop() {
if (!Serial.available()) return;
char c = Serial.read();
switch (c) {
case 'l':
ledOn = !ledOn;
digitalWrite(LED, ledOn ? HIGH : LOW);
Serial.println(ledOn ? F("LED ON") : F("LED OFF"));
break;
case 'u':
niveau = min(255, niveau + 16);
analogWrite(PWM, niveau);
Serial.println(niveau);
break;
case 'd':
niveau = max(0, niveau - 16);
analogWrite(PWM, niveau);
Serial.println(niveau);
break;
case 's':
Serial.print(F("LED=")); Serial.print(ledOn);
Serial.print(F(" PWM=")); Serial.println(niveau);
break;
}
}