🛠 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.

Objetivos

Hacer «respirar» un LED con la modulación de ancho de pulso (PWM): analogWrite de 0 a 255, rampa triangular y, a continuación, control del brillo mediante el sensor de luz. Se identifican los pines PWM (5, 6, 9, 10, 11 en Simple/SimpleSnap) y el límite de corriente de 40 mA por pin.

Material

Código completo

// 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);
}

Verificación esperada

El LED aumenta su brillo durante aproximadamente 0,65 s, desciende, vuelve a subir, en un bucle fluido: el ojo percibe una respiración. En modo sensor, el LED se apaga en la oscuridad y se enciende al máximo bajo una linterna. El LED no parpadea de forma brusca: si solo permanece encendido/apagado, el pin elegido no es una salida PWM.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales