respiration.ino

ESP32-C3 · Archivo : respiration.ino · Lenguaje : Arduino · Uso : Effet respiration sur LED avec le PWM LEDC

El PWM hardware (LEDC) genera la portadora solo: analogWrite aplica un ciclo de trabajo 0-255 y el LED respira sin gastar CPU. La frecuencia elegida evita el silbido del driver PWM.

Hardware necesario

Una placa ESP32-C3 (RISC-V a 160 MHz, Wi-Fi + BLE 5) tipo DevKitM-1 o SuperMini, alimentada por USB (nativo en el C3). 1 LED + resistencia de 330 Ω (o LED RGB común + ánodo en el pin).

Cableado

LED en 8 por 330 Ω a GND. En pines también ligados a la flash, elija otro GPIO.

Funcionamiento

analogWrite/analogWriteFrequency configuran un canal LEDC; el bucle solo sube y baja el ciclo de trabajo 0-255 mientras el periférico genera la señal. En el Arduino IDE (paquete esp32), elija « ESP32C3 Dev Module », active « USB CDC On Boot » si hace falta y suba. GPIO9 suele ser el botón BOOT; deje GPIO8 libre en el arranque.

Para ir más lejos

Tres canales LEDC desfasados para un LED RGB, o un MOSFET pequeño para pilotar una tira de potencia.

respiration.ino

// Respiration LED par le contrôleur LEDC (PWM matériel du SoC).
const int LED = 8;
const int FREQ = 5000;    // 5 kHz : inaudible, pas de sifflement
const int RESOLUTION = 8; // 256 niveaux

int niveau = 0;
int sens = 4;             // pas par étape

void setup() {
  analogWriteResolution(RESOLUTION);
  analogWriteFrequency(FREQ);
  analogWrite(LED, 0);
}

void loop() {
  niveau += sens;
  if (niveau >= 255 || niveau <= 0) sens = -sens;
  analogWrite(LED, niveau);
  delay(8);               // 255/4*8 ms ≈ 0,5 s par rampe
}

← Volver a la ficha