pwm-12-bits.ino

Arduino Due · Fichier : pwm-12-bits.ino · Langage : Arduino · Usage : Profiter du PWM 12 bits de la Due pour une LED très progressive

Les broches PWM 2-13 de la Due acceptent une résolution logicielle jusqu'à 12 bits : la montée devient parfaitement continue, sans paliers visibles. C'est l'un des rares apports pratiques du passage AVR → Due.

Matériel requis

Une Arduino Due (AT91SAM3X8E, ARM Cortex-M3 84 MHz) reliée par USB à son port « Programming ». Attention : logique 3,3 V, jamais 5 V sur les broches. 1 LED + résistance 470 Ω (3,3 V).

Branchement

LED + résistance entre la broche 2 et GND.

Fonctionnement

analogWriteResolution(12) reconfigure le canal TC/CPCS pour 4096 niveaux ; la boucle balaie toute la plage dans les deux sens. Dans l'Arduino IDE, choisissez « Arduino Due (Programming Port) » puis Téléverser ; le moniteur série tourne à la vitesse choisie dans le code.

Pour aller plus loin

Filtrez le PWM par un RC (1 kΩ + 10 µF) pour récupérer une tension analogique lissée — l'à-peu-près du DAC.

pwm-12-bits.ino

// PWM 12 bits (0..4095) sur broche 2 : respiration ultra-douce.
const int LED = 2; // broche PWM (SAM3X CPCS)

void setup() {
  analogWriteResolution(12); // 0..4095 au lieu de 0..255
  pinMode(LED, OUTPUT);
}

void loop() {
  for (int v = 0; v <= 4095; v += 8) { analogWrite(LED, v); delay(4); }
  for (int v = 4095; v >= 0; v -= 8) { analogWrite(LED, v); delay(4); }
}

← Retour à la fiche