🛠 LED qui respire en PWM

LilyPad Arduino · intermediaire · Schéma : IMG-lilypad-intermediaire-1-lilypad-pwm-respiration.svg — LED sur la pastille PWM 9 avec halo de luminosité dégradée et courbe de respiration à côté de la carte.

Objectifs

Faire « respirer » une LED avec la modulation de largeur d'impulsion (PWM) : analogWrite de 0 à 255, rampe triangulaire, puis pilotage de la luminosité par le capteur de lumière. On identifie les pastilles PWM (5, 6, 9, 10, 11 sur Simple/SimpleSnap) et la limite de courant de 40 mA par pastille.

Matériel

Code complet

// LED « qui respire » sur pastille PWM 9 — analogWrite 0..255
const uint8_t LED     = 9;  // PWM sur toutes les LilyPad (5/6/9/10/11 sur Simple)
const uint8_t CAPTEUR = A2; // option : luminosité ambiante
bool modeCapteur = false;   // true = luminosité imposée par le capteur

uint16_t niveau = 0;
int8_t   pas    = 4;        // avance de 4/255 toutes les 10 ms

void setup {
  pinMode(LED, OUTPUT);
}

void loop {
  if (modeCapteur) {
    int brut = analogRead(CAPTEUR);           // 0..1023
    analogWrite(LED, map(brut, 0, 1023, 0, 255));
  } else {
    if (niveau >= 255) pas = -4;              // sommet : on redescend
    if (niveau <= 0)   pas = 4;               // fond : on remonte
    niveau += pas;
    analogWrite(LED, niveau);
  }
  delay(10);
}

Vérification attendue

La LED monte en luminosité pendant environ 0,65 s, redescend, remonte, en boucle fluide : l'œil perçoit une respiration. En mode capteur, la LED s'éteint dans l'obscurité et s'allume à fond sous une lampe de poche. La LED ne clignote pas grossièrement : si elle reste seulement allumée/éteinte, la pastille choisie n'est pas une sortie PWM.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels