respiration.ino

Arduino GIGA R1 · 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 carte Arduino Giga R1 (STM32H747 double cœur M7 480 MHz + M4, 76 E/S, 2 DAC, FDCAN) alimentée par USB-C ou 5-24 V. 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, installez la plateforme « Arduino Zephyr-based Boards » (ou Mbed), choisissez « Arduino Giga R1 », puis Téléverser. Logique 3,3 V.

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