Modulación por ancho de pulso (PWM)
La modulación por ancho o de pulso (o en inglés pulse width modulation PWM) es un tipo de señal de voltaje utilizada para enviar información o para modificar la cantidad de energía que se envía a una carga. Este tipo de señales es muy utilizada en circuitos digitales que necesitan emular una señal analógica.
Este tipo de señales son de tipo cuadrada o sinusiodales en las cuales se les cambia el ancho relativo respecto al período de la misma, el resultado de este cambio es llamado ciclo de trabajo y sus unidades están representadas en términos de porcentaje. Matemáticamente se tiene que:
D=t/T * 100%
D = ciclo de trabajo
T = Período
Para emular una señal analógica se cambia el ciclo de trabajo (duty cicle en inglés) de tal manera que el valor promedio de la señal sea el voltaje aproximado que se desea obtener, pudiendo entonces enviar voltajes entre 0[V] y el máximo que soporte el dispositivo PWM utilizado, en el caso de Arduino es 5[V].
En Arduino este tipo de señales sólo puede ser realizado con los pines que tienen el símbolo ~ en sus números. En Arduino UNO son los pines 3, 5, 6, 9, 10 y 11.
La señal en Arduino tiene valores de 0[V] a 5[V] y una frecuencia de aproximadamente 500[Hz]. En los pines 5 y 6 esta frecuencia es aproximadamente el doble.
Las aplicaciones típicas para este tipo de señales son: Controlar intensidad de un LED, mover servomotores, controlar LED RGB, controlar velocidad de motores de corriente continua y controlar motores eléctricos de inducción o asincrónicos.
ESTRUCTURA Y FUNCIONAMIENTO DE LOS DISPLATS TIPO LCD 2X16, 2X20 Y 4X20
¿Que es un LCD?
El LCD(Liquid Crystal Dysplay) o pantalla de cristal líquido es un dispositivo empleado para la visualización de contenidos o información de una forma gráfica, mediante caracteres, símbolos o pequeños dibujos dependiendo del modelo. Está gobernado por un microcontrolador el cual dirige todo su funcionamiento.
Lcd 16x2:
Un LCD de 16x2, dispone de 2 filas de 16 caracteres cada una. Los píxeles de cada símbolo o carácter, varían en función de cada modelo.
En la siguiente imagen de Proteus se puede observar la estructura de sus pines.
Lo podemos dividir en los Pines de alimentación, pines de control y los pines del bus de datos bidireccional. Por lo general podemos encontrar ademas en su estructura los pines de Anodo de led backlight y cátodo de led backlight.
Pines de alimentación:
Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K conectado a Vdd.
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K conectado a Vdd.
Pines de control:
RS: Corresponde al pin de selección de registro de control de datos (0) o registro de datos(1). Es decir el pin RS funciona paralelamente a los pines del bus de datos. Cuando RS es 0 el dato presente en el bus pertenece a un registro de control/instrucción. y cuando RS es 1 el dato presente en el bus de datos pertenece a un registro de datos o un carácter.
RW: Corresponde al pin de Escritura(0) o de Lectura(1). Nos permite escribir un dato en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitación. Si E(0) esto quiere decir que el LCD no esta activado para recibir datos, pero si E(1) se encuentra activo y podemos escribir o leer desde el LCD.
RW: Corresponde al pin de Escritura(0) o de Lectura(1). Nos permite escribir un dato en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitación. Si E(0) esto quiere decir que el LCD no esta activado para recibir datos, pero si E(1) se encuentra activo y podemos escribir o leer desde el LCD.
Pines de Bus de datos:
El Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la comunicación con el LCD podemos hacerlo utilizando los 8 bits del bus de datos(D0 a D7) o empleando los 4 bits mas significativos del bus de datos(D4 a D7). En este caso vamos a explicar la comunicación con el bus de 4 bits.
LIBRERÍA: Para poder visualizar los caracteres o símbolos en el LCD es necesario que en el programa de código fuente a emplear, incluyamos la librería de este.
En este caso empleamos la librería "lcd.c", la cual hemos modificado. Siempre que utilicemos una librería de este tipo tendremos que analizarla para saber cuales son los pines de control y los pines para el Bus de datos, en este caso podemos observar que están definidos al comienzo de la misma.#define LCD_ENABLE_PIN PIN_D0#define LCD_RS_PIN PIN_D1#define LCD_RW_PIN PIN_D2#define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5#define LCD_DATA6 PIN_D6#define LCD_DATA7 PIN_D7
En este caso empleamos la librería "lcd.c", la cual hemos modificado. Siempre que utilicemos una librería de este tipo tendremos que analizarla para saber cuales son los pines de control y los pines para el Bus de datos, en este caso podemos observar que están definidos al comienzo de la misma.#define LCD_ENABLE_PIN PIN_D0#define LCD_RS_PIN PIN_D1#define LCD_RW_PIN PIN_D2#define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5#define LCD_DATA6 PIN_D6#define LCD_DATA7 PIN_D7
En el resto de la librería se puede encontrar todas las estructuras necesarias así como las funciones que nos permiten utilizar nuestro LCD.
Podemos encontrar funciones como:
lcd_init: inicializa el lcd.
lcd_gotoxy: establece la posicion de escritura en el lcd.
lcd_putc: nos muestra un dato en la siguiente posición del lcd, podemos emplear funciones como \f para limpiar el display, \n cambio a la segunda línea, \b mueve una posición atrás.
lcd_getc(x,y): devuelve caracteres a la posición x,y.
Otras funciones: lcd_send_nibble(BYTE n), lcd_send_byte(BYTE address, BYTE n).
Podemos encontrar funciones como:
lcd_init: inicializa el lcd.
lcd_gotoxy: establece la posicion de escritura en el lcd.
lcd_putc: nos muestra un dato en la siguiente posición del lcd, podemos emplear funciones como \f para limpiar el display, \n cambio a la segunda línea, \b mueve una posición atrás.
lcd_getc(x,y): devuelve caracteres a la posición x,y.
Otras funciones: lcd_send_nibble(BYTE n), lcd_send_byte(BYTE address, BYTE n).
Aquí se puede ver un ejemplo de una sencilla programación en una Pic control, y muestra de datos en el LCD, son datos inespecíficos que no muestran ninguna información.

0 Comments:
Publicar un comentario