Вы находитесь на странице: 1из 4

Introduccin al PWM

( Pulse Whur Modulation) Es una tcnica de modulacin que genera impulsos de anchura
variable para representar la amplitud de una seal de entrada analgica. Al igual que su ancho
fijo la modulacin de densidad de pulsos (PDM) primo, la salida de conmutacin del transistor
est en ms de las veces por una seal de gran amplitud y se apague ms de las veces por una
seal de baja amplitud. La naturaleza digital (totalmente encendido o apagado) del circuito
PWM es menos costoso de fabricar que un circuito analgico que no deriva con el tiempo.


Introduccin PWM arduino

La modulacin por ancho de pulsos (tambin conocida como PWM, siglas en ingls de pulse-
width modulation) de una seal o fuente de energa es una tcnica en la que se modifica el
ciclo de trabajo de una seal peridica.

PWM tiene diferentes usos:
Atenuacin de un LED.
Disponer de una salida analgica; si la salida digital est filtrada, esto proveer de un
voltaje entre el 0% y el 100%.
Generar seales de audio.
Proveer de un control de velocidad variable para motores.
Generar una seal modulada, por ejemplo para utilizar un LED infrarojo para control
remoto.
Control paso a paso de Motores servo con una resolucion de 8 bits.

Si prendemos y apagamos la seal de alimentacin de la carga (led o motor) lo
suficientemente rpido como para que el parpadeo no se note, podramos simular la
variacin de luminosidad de un led o el cambio en la velocidad del motor:PWM para el pic



Esto funciona siempre y cuando no hagamos este switcheo ms lento de 30 veces por
segundo. A partir de ah el blink del led se empezar a notar y el ojo humano captar ese
parpadeo. En el caso de un motor, ste se mover en una forma pulsante. Lo que se hace con
PWM es variar dinmicamente el duty cycle de manera que el tiempo de alta disminuya o
aumente y en proporcin inversa, el de baja aumente o disminuya dependiendo de si
queremos una led ms atenuado o ms brillante, o un motor ms lento o ms rpido,
respectivamente. Esto lo podemos ver en un ejemplo prctico con Arduino, un led y una
resistencia de 220 ohms.


Introduccin al PWM para el PIC18F4550

El parmetro fundamental de una modulacin PWM es la frecuencia (o su inverso el periodo)
de modulacin. En los PIC dicha frecuencia es programable (con ciertas limitaciones) en base a
varias variables:

La frecuencia del oscilador principal Fosc
El pre-scaler (PRE) o divisor previo del timer TMR2 que puede tomar los valores 1:1,
1:4 o 1:16
El registro PR2 (0-255) asociado al timer TMR2

La frecuencia PWM responde a la frmula:
F_pwm = F_osc / [4 x PRE x (PR2+1)]
o lo que es lo mismo, el periodo del PWM ser el inverso de dicha frecuencia:
T_pwm = [ (PR2+1) x 4 x PRE ] x Tosc
El valor mximo del divisor previo PRE es 16 y el de (PR2+1) es 256. Por lo tanto la frecuencia
PWM ms baja posible ser Fosc/16384. Para un oscilador de 20 MHz tenemos una Fpwm
mnima de 1.22 KHz (20000/16384).

Nota: el mdulo PWM usa el timer TMR2, por lo que ste no podr usarse como temporizador
de propsito general mientras se est usando PWM. Si que es posible usarlo (y ahorrarnos
gastar otro timer) si queremos hacer saltar una interrupcin cada cierto tiempo. El postscaler
del TMR2 no tiene efecto sobre la frecuencia PWM, pero si influye sobre cuando salta (si est
habilitada) la correspondiente interrupcin (TMR2_flag). Si por ejemplo el post-scaler es 1:16
entonces la interrupcin del TMR2 saltar cada 16 periodos del PWM.

Introduccin al ADC para el PIC18F4550

Un ADC convierte mide el voltaje V en un pin (que tendr que estar declarado como
entrada con el correspondiente registro TRISA) y lo convierte en un nmero. El voltaje
se mide en referencia a un voltaje mnimo, Vref(-) , y a un voltaje mximo, Vref (+):

V_norm = ( V Vref(-) ) / (Vref(+) Vref(-) )

La frmula anterior corresponde a un voltaje normalizado. Si el voltaje V alcanza el
mximo (Vref+) tendremos una salida de 1 y si se queda en el mnimo (Vref-) una
salida de 0.
Normalmente Vref- suele ser Vss=GND=0V y Vref+ = Vcc = 5V, pero pueden usarse
otros voltajes de referencia. Si por ejemplo queremos medir una seal que sabemos
que oscila entre 2 y 3 voltios usaramos Vref-=2 y Vref+=3. As aprovecharamos mejor
el rango dinmico del conversor.

Como el microcontrolador no va a manejar nmeros en coma flotante, el voltaje
normalizado se expresa con un entero, convirtiendo el intervalo real [0,1] en el
intervalo de niveles enteros entre [0 y Nmax-1]. La resolucin del ADC es una
caracterstica fundamental y nos dice el nmero de niveles con los que cubrimos el
intervalo [0,1]. Por ejemplo, en los PIC solemos tener una resolucin de 10 bits, que
representan 2^10=1024 niveles. El intervalo real [0,1) se aplicara al intervalo [0,1023].
Si asumimos un rango de 5V, tendremos que la resolucin de cada nivel es de
r=5/1024 V=4.88 mV. Segn la documentacin de Microchip (esto puede variar para
otros microcontroladores) cualquier voltaje entre [0 y r] (o por debajo de 0, lo que
corresponde a V<Vref-) se cuantificara en el nivel 0. Entre r y 2r tendramos una salida
de nivel 1. As hasta llegar a nivel 1023 que cuantificara voltajes por encima de 1023r
= 1023x 5/1024 = 4.995V. Como se ve, voltajes por debajo de Vref- o por encima de
Vref+ son posibles y se cuantifican como nivel mnimo 0 o mximo, 1023. Niveles por
debajo de 0V o por encima de la tensin de alimentacin (normalmente 5V) pueden
ser daar el PIC.

Nivel Voltaje
0 <r
1 [r,2r]
2 [2r,3r]

1023 >1023r

Aunque un PIC puede tener del orden de 8-12 posibles canales (pines) de entrada
analgica, solo tiene normalmente un nico mdulo ADC, lo que significa que no
podemos tomar medidas simultneas de varios canales. Si es necesario, lo que
podemos hacer es ir conectando (seleccionando) los sucesivos canales al ADC para ir
midiendo sus voltajes.
El proceso de una conversin ADC se divide en un tiempo de adquisicin Ta (durante
el cual un condensador interno se carga al voltaje exterior) y un tiempo de conversin
Tc(durante el cual se desconecta el pin exterior y se cuantifica el voltaje del
condensador).
El tiempo de adquisicin Ta depende de las caractersticas elctricas del PIC (en
particular de la capacidad del condensador). Si no se respeta este tiempo, el
condensador no habr alcanzado el nivel del voltaje exterior y la medida ser
incorrecta. Los datasheet de los PIC indican los Ta recomendados para diversas
familias.
Otro aspecto importante de la adquisicin es recordar que Microchip recomienda
unaimpedancia mxima para el sensor (o lo que sea) suministrador de voltaje que est
conectado a nuestro pin. En la mayora de los casos se recomienda que dicha
impedancia no supere los 2.5 Kohmios. Segn entiendo con mis escasos
conocimientos de electrnica, impedancias mucho mayores haran que (debido a
corrientes de prdida siempre presentes) el condensador no llegara nunca a cargarse
al voltaje de entrada o tardase mucho en hacerlo, lo que dara lugar a que la medida
posterior fuese incorrecta. Si la impedancia de nuestra fuente es muy superior a la
recomendada deberamos plantearnos insertar un driver.
El tiempo de conversin Tc depende fundamentalmente del nmero de bits del
conversor. La unidad bsica es el llamado Tad, aproximadamente el tiempo necesario
para ganar un bit adicional. La conversin total tarda entre 11 y 14 Tad (contando con
la descarga final del condensador para estar listo para otra medida. El reloj del ADC se
debe ajustar (como una fraccin del oscilador principal) para que dicho Tad no sea
inferior a un valor mnimo especificado en los datasheet. Por ejemplo para la familia
PIC18F252/452 el Tad mnimo es de 1.6 usec y Tc = 14 Tad. En cambio para la familia
PIC18F2520/4520 tenemos un Tad mnimo de 0.75 usec y un Tc = 11 Tad.

Nota: aunque es muy conveniente tener un ADC integrado dentro del micro controlador, si lo
pensamos en trminos de nivel de ruido, etc. las cercanas de un micro controlador con la
lneas de reloj, rpidos cambios en las lneas digitales, comunicaciones, etc. no es el mejor sitio
para ubicar un ADC. Esto quiere decir que si estamos muy interesados en la precisin, tal vez
sera conveniente considerar un ADC aparte, que nos comunicara los datos adquiridos a travs
de SPI o similares. Una vez dicha la advertencia nos centraremos en cmo usar de la forma
ms eficiente el ADC de un micro controlador (en este caso un PIC).

Вам также может понравиться