Con el trabajo de hoy veremos de manera muy sencilla y didáctica, algunas posibilidades que existen dentro del mundo de los microcontroladores que te ayudarán a comprender muchos conceptos que son importantes en la fase inicial, cuando nos decidimos a trabajar con estos dispositivos. Por supuesto que lo primero que debemos aclarar y definir es el concepto de PWM. ¿Qué es el PWM? Pulse-Width Modulation o lo que en castellano significa modulación por ancho de pulsos. Es decir, partiendo de una señal de amplitud y frecuencia fija, vamos a proceder a variar el ancho del semiciclo activo, comprimiéndolo o expandiéndolo para así lograr transportar dentro de la señal una información variable que utilizaremos para diversas aplicaciones según la necesidad del desarrollo que emprendamos.
Distintos ciclos de trabajo para una misma frecuencia. Eso es la escencia del PWM
En la gráfica vemos claramente que, manteniendo una frecuencia constante (representada por el Período) de la señal de salida de cualquiera de los puertos de un microcontrolador, podemos aplicar una variación del tiempo de duración de la mencionada salida en estado alto (referencias de color rojo). De esta manera, si la variación es en aumento, incrementará el valor promedio de la tensión aplicada en el dispositivo conectado (referencias de color verde). En el caso de la aplicación de un ancho de pulso mínimo, observaremos una salida de tensión promedio casi nula, por lo que si tenemos allí conectado un LED, el mismo lucirá prácticamente apagado. Por el contrario, si el ancho de pulsos que le imponemos a nuestra señal es el máximo posible, el mismo LED brillará en toda su intensidad.
Declaración de variables y alias a usar en el programa
Con este artilugio electrónico estaremos acercándonos mucho a una salida analógica con la que podremos variar velocidades de motores, intensidad de brillo de un conjunto de LEDs y hasta las aplicaciones más interesantes y divertidas que se nos ocurran. La idea de funcionamiento inicial es muy simple y se sustenta en el funcionamiento del Timer0 del microcontrolador. Habilitando el overflow del TMR0 (T0IE = 1) y manejando su incremento con una variable BYTE, podemos jugar con valores que irán desde 0 hasta 255, donde desbordará y recomenzará el ciclo de cuenta. Por lo tanto, lo primero que haremos es (dentro del programa fuente) habilitar las interrupciones y darle un marco funcional y operativo ajustando los registros pertinentes para un funcionamiento correcto del TMR0.
Una vez que la interrupción (PWM_INT) esté preparada para acumular los valores que comenzarán a aparecer en la variable DUTY0 para finalmente entregar el resultado en el puerto B (sección del programa indicada en rojo difuso), ya estaremos listos para organizar y preparar la variable DUTY0 con valores comprendidos entre 0 y 255. Entre las más sencillas y prácticas para experimentar dentro de la mayoría de los programas que manejan el lenguaje BASIC, se encuentra la instrucción POT. Esta sencilla instrucción será capaz de leer un potenciómetro, una resistencia variable del tipo preset, un termistor, un LDR, un NTC, un PTC y cualquier otra resistencia que no supere los 50K.
Conexión del potenciómetro y ejemplo de rutina POT
Listado para las 8 salidas PWM
Circuito sugerido para exitar cargas a través de un transistor MOSFET
En general, la frecuencia de PWM depende de la aplicación. Sin embargo, hay dos reglas de oro en lo que respecta a la frecuencia del PWM. La primera es que a medida que la frecuencia aumenta, también lo hace la demanda de corriente debido a pérdidas propias de un circuito conmutado. La segunda es que la capacitancia e inductancia de la carga tienden a limitar la respuesta en frecuencia del circuito. En condiciones de bajo consumo, es una buena idea utilizar el mínimo de frecuencia posible con la finalidad de reducir pérdidas. En los circuitos, la capacitancia y/o inductancia que intervienen son factores que deben ser considerados para la correcta elección de la frecuencia del PWM.
Los sistemas operados por PWM son utilizados frecuentemente en el control de motores debido a la eficacia de los sistemas conmutados en contraste con los de regulación lineal de velocidad. Un aspecto importante a la hora de elegir la frecuencia de PWM para el control de un motor es la respuesta del motor ante cambios en el "DutyCycle" (ciclo de trabajo) del PWM. Un motor va a tener una respuesta más rápida a cambio de un "DutyCycle" a frecuencias mayores. Otra consideración que no debes dejar de tener en cuenta es el ruido provocado por el motor. Los motores de corriente continua del tipo "brushed" (con escobillas y colector) hacen un ruido intolerable dentro del rango audible cuando son llevados a altas frecuencias. Para eliminar este fenómeno, hay que utilizar este tipo de motores a frecuencias mayores que los 4kHz. Recordemos que los humanos pueden escuchar frecuencias hasta los 20kHZ; sin embargo, la mecánica de los motores va a atenuar el ruido en virtud de su imposibilidad de resonar a tan altas frecuencias.
Es muy importante que conozcas las posibilidades que te brinda este artículo de poder obtener hasta 8 salidas PWM con un ajuste individual para cada salida en lo que refiere a su factor de trabajo (DutyCycle). Esta aplicación va mucho más allá que un simple juego de luces en forma de círculo o un emulador del efecto de Knight Rider, sino que estás ante un verdadero sistema de control que, aplicado apropiadamente, puede ayudarte a resolver muchos problemas de control. Además, PWM se puede lograr hasta con 555, pero del modo en que te lo hemos presentado, todas las salidas pueden mantener una probable sincronía requerida por la aplicación, hecho que con los 555 eso sería impensado.
Por otra parte, también puedes utilizar el/los módulos CCP que traen en forma nativa los microcontroladores, pero nunca alcanzarías a sumar ocho unidades a un costo tan irrisorio como el circuito propuesto. Es decir, un PIC que traiga más de dos módulos CCP, puede costar muchos euros, mientras que tú podrás controlar todo un mecanismo complejo con muy poco gasto y, además, siempre tendrás la posibilidad de hacer trabajar a este 16F628A (que controlará tus LEDs RGB o tus motores) como esclavo de otros procesadores más específicos abocados a cualquier función especial. Podemos afirmar en pocas palabras que el circuito propuesto hoy es un verdadero expansor de salidas PWM para cualquier sistema. Disfrútalo.
Los sistemas operados por PWM son utilizados frecuentemente en el control de motores debido a la eficacia de los sistemas conmutados en contraste con los de regulación lineal de velocidad. Un aspecto importante a la hora de elegir la frecuencia de PWM para el control de un motor es la respuesta del motor ante cambios en el "DutyCycle" (ciclo de trabajo) del PWM. Un motor va a tener una respuesta más rápida a cambio de un "DutyCycle" a frecuencias mayores. Otra consideración que no debes dejar de tener en cuenta es el ruido provocado por el motor. Los motores de corriente continua del tipo "brushed" (con escobillas y colector) hacen un ruido intolerable dentro del rango audible cuando son llevados a altas frecuencias. Para eliminar este fenómeno, hay que utilizar este tipo de motores a frecuencias mayores que los 4kHz. Recordemos que los humanos pueden escuchar frecuencias hasta los 20kHZ; sin embargo, la mecánica de los motores va a atenuar el ruido en virtud de su imposibilidad de resonar a tan altas frecuencias.
Es muy importante que conozcas las posibilidades que te brinda este artículo de poder obtener hasta 8 salidas PWM con un ajuste individual para cada salida en lo que refiere a su factor de trabajo (DutyCycle). Esta aplicación va mucho más allá que un simple juego de luces en forma de círculo o un emulador del efecto de Knight Rider, sino que estás ante un verdadero sistema de control que, aplicado apropiadamente, puede ayudarte a resolver muchos problemas de control. Además, PWM se puede lograr hasta con 555, pero del modo en que te lo hemos presentado, todas las salidas pueden mantener una probable sincronía requerida por la aplicación, hecho que con los 555 eso sería impensado.
Por otra parte, también puedes utilizar el/los módulos CCP que traen en forma nativa los microcontroladores, pero nunca alcanzarías a sumar ocho unidades a un costo tan irrisorio como el circuito propuesto. Es decir, un PIC que traiga más de dos módulos CCP, puede costar muchos euros, mientras que tú podrás controlar todo un mecanismo complejo con muy poco gasto y, además, siempre tendrás la posibilidad de hacer trabajar a este 16F628A (que controlará tus LEDs RGB o tus motores) como esclavo de otros procesadores más específicos abocados a cualquier función especial. Podemos afirmar en pocas palabras que el circuito propuesto hoy es un verdadero expansor de salidas PWM para cualquier sistema. Disfrútalo.





No hay comentarios:
Publicar un comentario
Bienvenidos a Topotronick.blogspot.com