pwm-respiration.ino

Arduino Duemilanove — Fiche carte · Fichier : pwm-respiration.ino · Langage : Arduino · Usage : Faire respirer une LED avec la modulation de largeur d'impulsion

La LED monte puis redescend progressivement grâce à analogWrite, qui génère un PWM 8 bits sur une broche marquée ~. Le sens s'inverse aux bornes 0 et 255.

Matériel requis

Une Arduino Duemilanove (ATmega168 ou 328P, 16 MHz, 5 V) avec son câble mini-USB-B ; le port série apparaît après installation du driver FTDI. 1 LED + résistance 330 Ω.

Branchement

Anode de la LED (via résistance) sur la broche 9, cathode sur GND.

Fonctionnement

analogWrite applique un rapport cyclique croissant puis décroissant ; l'œil perçoit une variation continue de luminosité. Dans l'Arduino IDE, choisissez « Arduino Duemilanove » (ou « Diecimila » pour les très vieilles cartes) et le port FTDI, puis Téléverser. L'ATmega168 n'a que 14 Ko pour le sketch.

Pour aller plus loin

Pilotez plusieurs LED en opposition de phase, ou pilotez un MOSFET pour un ruban LED complet.

pwm-respiration.ino

// Respiration LED sur broche PWM (analogWrite 0..255).
const int LED = 9;
int niveau = 0;
int pas = 4;

void setup() {
  pinMode(LED, OUTPUT);
}

void loop() {
  analogWrite(LED, niveau);
  niveau += pas;
  if (niveau <= 0 || niveau >= 255) pas = -pas; // inversion au bord
  delay(15);
}

← Retour à la fiche