pwm-12-bits.ino

Arduino Due · Archivo : pwm-12-bits.ino · Lenguaje : Arduino · Uso : Profiter du PWM 12 bits de la Due pour une LED très progressive

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); }
}

← Volver a la ficha