respiration.ino

Arduino GIGA R1 WiFi · Fichier : respiration.ino · Langage : Arduino · Usage : Respiration LED avec le PWM 16 bits

Le PWM de la GIGA monte à 16 bits : la rampe de respiration devient parfaitement continue, sans le « escalier » du 8 bits. La fréquence se règle par broche, hors du spectre audible.

Matériel requis

Une Arduino GIGA R1 WiFi (STM32H747, module radio 1DX : Wi-Fi b/g/n + BLE, antenne u.FL fournie), alimentée par USB-C. 1 LED + résistance 330 Ω sur D3.

Branchement

LED anode sur D3 via 330 Ω vers GND. Choisir une broche PWM (marquée ~) : D3 en fait partie.

Fonctionnement

analogWriteResolution porte la résolution du canal ; la boucle incrémente une consigne float pour lisser la rampe malgré le pas matériel. 19,5 kHz évite le sifflement des pilotes. Dans l'Arduino IDE, plateforme « Arduino Zephyr-based Boards », carte « Arduino Giga R1 » ; montez l'antenne u.FL avant d'utiliser le radio, puis Téléverser.

Pour aller plus loin

Deux canaux pour mélanger deux LED (mélange additif de teinte), ou un gradateur de puissance sur 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);
}

← Retour à la fiche