respiration.ino

Arduino GIGA R1 WiFi · Archivo : respiration.ino · Lenguaje : Arduino · Uso : Respiration LED avec le PWM 16 bits

El PWM de la GIGA llega a 16 bits: la rampa de respiración queda perfectamente continua, sin la «escalera» de 8 bits. La frecuencia se fija por pin, fuera del espectro audible.

Hardware necesario

Un Arduino GIGA R1 WiFi (STM32H747, módulo radio 1DX: Wi-Fi b/g/n + BLE, antena u.FL incluida), alimentado por USB-C. 1 LED + resistencia de 330 Ω en D3.

Cableado

Ánodo del LED en D3 por 330 Ω a GND. Elegid un pin PWM (marcado ~): D3 lo es.

Funcionamiento

analogWriteResolution sube la resolución del canal; el bucle incrementa una consigna float para suavizar la rampa pese al paso material. 19,5 kHz evita el silbido de los drivers. En el Arduino IDE, plataforma « Arduino Zephyr-based Boards », placa « Arduino Giga R1 »; monte la antena u.FL antes de usar la radio y suba.

Para ir más lejos

Dos canales para mezclar dos LED (mezcla aditiva de tinte), o un regulador de potencia sobre MOSFET.

respiration.ino

// Respiration sur D3 — analogWrite 16 bits sur la GIGA.
const int LED = D3;

float niveau = 0;
float sens = 1.0f;

void setup() {
  analogWriteResolution(16);          // 0..65535
  analogWriteFrequency(LED, 19531);   // ~19.5 kHz : hors audible
  Serial.begin(115200);
}

void loop() {
  niveau += sens;
  if (niveau >= 65535.0f || niveau <= 0.0f) sens = -sens;
  analogWrite(LED, (uint16_t)niveau);
  delayMicroseconds(200);
}

← Volver a la ficha