pwm-12-bits.ino
Los pines PWM 2-13 de la Due admiten resolución por software hasta 12 bits: la rampa queda perfectamente continua, sin escalones. Una de las pocas ventajas prácticas de pasar de AVR a Due.
Hardware necesario
Un Arduino Due (AT91SAM3X8E, ARM Cortex-M3 a 84 MHz) conectado por USB a su puerto « Programming ». Ojo: lógica de 3,3 V, nunca 5 V en los pines. 1 LED + resistencia de 470 Ω (3,3 V).
Cableado
LED + resistencia entre el pin 2 y GND.
Funcionamiento
analogWriteResolution(12) reconfigura el canal TC/CPCS a 4096 niveles; el bucle recorre toda la escala en ambos sentidos. En el Arduino IDE, elija « Arduino Due (Programming Port) » y Subir; el monitor serie va a la velocidad fijada en el código.
Para ir más lejos
Filtre el PWM con un RC (1 kΩ + 10 µF) para obtener una tensión analógica suavizada: el DAC del pobre.
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); }
}