pwm-12-bits.ino
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); }
}