🛠 Variateur d'intensité LED avec PWM
Objectifs
Utiliser la modulation de largeur d'impulsion (PWM) pour faire varier la luminosité d'une LED : le core Arduino expose analogWrite(pin, 0-255) sur les 6 broches PWM de la Pro Mini (3, 5, 6, 9, 10, 11 — résolution 8 bits via le timer de l'ATmega328P). Le potentiomètre branché sur A0 (0-1023) est mis à l'échelle 0-255 pour piloter le rapport cyclique. On rappelle la limite absolue : 40 mA maximum par broche, quel que soit le modèle 5 V ou 3,3 V.
Matériel
- 1 × Arduino Pro Mini (ATmega328P ; broches PWM confirmées : 3, 5, 6, 9, 10, 11)
- 1 × LED + 1 × résistance 220 Ω (ou transistor NPN/MOSFET pour une LED de puissance, max 40 mA par broche)
- 1 × potentiomètre 10 kΩ sur A0
- Adaptateur FTDI/CP2102 pour le retour série
Code complet
// Variateur PWM : potentiomètre A0 -> LED broche 9
const uint8_t POT = A0;
const uint8_t LED_PWM = 9; // broche PWM (3, 5, 6, 9, 10 ou 11)
uint32_t derniere = 0;
void setup {
pinMode(LED_PWM, OUTPUT);
Serial.begin(57600);
}
void loop {
if (millis - derniere >= 20) {
derniere = millis;
int brut = analogRead(POT); // 0..1023
uint8_t rapport = map(brut, 0, 1023, 0, 255);
analogWrite(LED_PWM, rapport); // 0..255
Serial.println(rapport);
}
}
Vérification attendue
En tournant le potentiomètre, la LED s'éteint progressivement (0) puis monte en luminosité jusqu'à plein régime (255) sans palier. En regardant la LED via la caméra d'un téléphone au ralenti, on distingue le scintillement PWM alors que l'œil perçoit une lumière continue. Sur le modèle 3,3 V, la tension « haute » du PWM vaut 3,3 V : choisissez la résistance en conséquence (la LED est un peu moins lumineuse qu'en 5 V).
Erreurs fréquentes
- analogWrite sur une broche non PWM (par ex. broche 4) : la broche se comporte en tout-ou-rien (0 = éteint, toute autre valeur = allumé en permanence).
- LED de puissance branchée directement sur la broche : on dépasse les 40 mA max par broche et on grille la sortie ; passer par un transistor.
- Confondre échelles : analogWrite prend 0-255, analogRead renvoie 0-1023 — d'où le map obligatoire.
- Attendre une tension analogique réelle : le PWM est un créneau filtré par la persistance visuelle, pas une vraie sortie DAC ; la Pro Mini n'a aucun convertisseur numérique-analogique.
- Utiliser les broches 11-13 en PWM tout en parlant SPI : ce sont aussi MOSI/MISO/SCK — les deux usages se marchent sur les pieds.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-poussoir.inoArduinopwm-fade.inoArduinocapteur-lumiere-ldr.inoArduinoservo-balayage.inoArduinoruban-neopixel.inoArduino