Variar Frec PWM
Variar Frec PWM
Variar Frec PWM
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:
Registro
Pin en
TCCR1B
12
TCCR2B
TCCR3B
TCCR4B
TCCR5B
45
0x01
1 31,333 Hz
0x02
0x03
64
0x04
256
0x05
1024
3,916 Hz
489 Hz
122 Hz
30 Hz
Para el Timer/Counter 2
Config. Divisor Frecuencia PWM
0x00
0x01
1 31,333 Hz
0x02
3,916 Hz
0x03
32
979 Hz
0x04
64
489 Hz
0x05
128
244 Hz
0x06
256
122 Hz
0x07
1024
30 Hz
Thanks to valerio_sperati
(http://arduino.cc/forum/index.php/topic,72092.0.html)
Divisor
Frequency
1
8
64
256
1024
62500
7812.5
976.5625 <--DEFAULT
244.140625
61.03515625
Divisor
Frequency
1
8
64
256
1024
31372.55
3921.16
490.20 <--DEFAULT
122.55
30.64
Divisor
Frequency
1
8
32
64
128
256
1024
31372.55
3921.16
980.39
490.20 <--DEFAULT
245.10
122.55
30.64
=
=
=
=
=
Prescale_factor
_BV(CS00);
1
_BV(CS01);
8
_BV(CS00) | _BV(CS01); 64
_BV(CS02);
256
_BV(CS00) | _BV(CS02); 1024
Share
Newsletter
Subscribe
2015 Arduino
Copyright Notice
Contact us
Hola a todos
La placa Diecimila con la que estamos trabajando dispone de 6 salidas de modulacin
por anchura de pulso (PWM) que son ideales para controlar el voltaje aplicado a una
carga. El problema es que la frecuencia de este PWM es de tan solo 490 Hz y esto
puede ser adecuado para un control de iluminacin pero no es lo mejor opcin para
controlar la velocidad de un motor DC (entre 4KHz y 40KHz normalmente).
Las 6 salidas PWM son controladas por 3 contadores, cada contador se encarga de dos
salidas PWM:
Contador 0: D6 (PD6) y D5 (PD5)
Contador 1: D9 (PB1) y D10 (PB2)
Contador 2: D11(PB3) y D3 (PD3)
Entre parntesis pongo el nombre de la pata del Atmega168 y las que empiezan por
"D" son los nombres de las lneas digitales del Arduino
En el Arduino la frecuencia del PWM se consigue a partir de la frecuencia de reloj y de
un divisor programable llamado "prescaler". Par conseguir subir los 490HZ de
frecuencia del PWM hay que modificar el factor de divisin del prescaler (64 por
defecto) disminuyndolo hasta conseguir la frecuencia deseada. Estas son las
frecuencias que se consiguen:
Contador 1
Prescaler Frecuencia Registro TCCR1B
Contador 2
Registro TCCR2B
64
490Hz
32
984Hz
--
3936Hz
31360Hz
Igor R
Edison Member
Posts: 1,580
1.
[add Karma]
[add Karma]
#1
Dec 15, 2008, 09:42 am
Hola Eduardo!!
Muy buena info. Gracias!
Donde esta en la web de arduino la informacin del hardware interno que se usa para
implementar las funciones software?
Por ejemplo, has expuesto que las funciones de retardo usan el timer 0.
Gracias de antemano.
Igor R.
CAN BUS=> http://secuduino.blogspot.com/
http://real2electronics.blogspot.com/
complubot
Sr. Member
Posts: 282
1.
[add Karma]
Complubot
[add Karma]
#2
Dec 15, 2008, 10:05 am