Hola a todos,
Trabajando con el arduino mega y las salidas PWM me topé que necesitaba cambiar la frecuencia a la cual genera los pulsos, algo bien documentado para la placa chica pero no habia visto nada para la grande. Así que por fuerza me puse a investigar y esto encontré:
- El Mega 2560 tiene 15 salidas PWM por hardware
- A sólo 6 de ellas se les puede modificar el factor de división de frecuencia:
Registro Pin en
del micro Arduino
TCCR0B 4
TCCR1B 12
TCCR2B 9
TCCR3B 2
TCCR4B 7
TCCR5B 45
Para el Timer/Counter 0,1,3,4 y 5
Config. Divisor Frecuencia PWM
0x00 - 0
0x01 1 31,333 Hz
0x02 8 3,916 Hz
0x03 64 489 Hz
0x04 256 122 Hz
0x05 1024 30 Hz
Para el Timer/Counter 2
Config. Divisor Frecuencia PWM
0x00 - 0
0x01 1 31,333 Hz
0x02 8 3,916 Hz
0x03 32 979 Hz
0x04 64 489 Hz
0x05 128 244 Hz
0x06 256 122 Hz
0x07 1024 30 Hz
Por omisión, la frecuencia del PWM está configurada a 489 Hz y ya es de nosotros el moverla a voluntad usando los registros. El código a incluír es algo así:
//Para bajar la frecuencia del PWM pin 45 del Mega 2560 a 30 Hz
TCCR5B = TCCR5B & 0b000 | 0x05;
//Para bajar la frecuencia del PWM pin 9 del Mega 2560 a 30 Hz
TCCR2B = TCCR2B & 0b000 | 0x07;
Imagenes del osciloscopio (TCCR2B)
Sin división
entre 8
entre 32
entre 64
entre 128
entre 256
entre 1024
Espero que sea útil, saludos.