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 Pro Mini (ATmega328P, existe en 5 V/16 MHz et 3,3 V/8 MHz) reliée à un convertisseur USB-série (FTDI) ou un programmeur ICSP. 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
Choisissez « Arduino Pro Mini » dans l'IDE (5 V/16 MHz ou 3,3 V/8 MHz selon votre modèle), le processeur ATmega328P, le bon port, puis Téléverser. Le convertisseur doit être câblé DTR-DTR, RX-TX, TX-RX, VCC-VCC, GND-GND.
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;
}
}