Logo Studenta

Práctica PWM

¡Este material tiene más páginas!

Vista previa del material en texto

Modulación de Ancho de Pulso 
Instituto Tecnológico de la Laguna 
Microcontroladores 
Práctica 5 
Mecatrónica 
Fecha de elaboración: 11 de junio de 2021 
 
 
 
Consideraciones teóricas 
EL MPLAB IDE es un software de “Entorno de Desarrollo Integrado”, que se ejecuta bajo 
Windows. Con este entorno se pueden desarrollar aplicaciones para los microcontroladores PIC. 
Incluye todas las utilidades necesarias para la realización de proyectos con PIC; permite editar 
el archivo fuente, además de ensamblarlo y simularlo en pantalla pata comprobar cómo 
evolucionan la RAM, ROM, registros del SFR, etc., según progresa la ejecución del programa. 
 
Características: 
Es un potenciómetro (resistencia variable) miniatura de 10 kOhms, 0,2 Watts y 150 Volts, con 
caña estriada de 2,54 cm, sin interruptor (Switch). Color: gris 
 
 
 
 
 
 
 
 
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. 
Un LCD de 16x2 quiere decir que 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. 
Se puede dividir en los Pines de alimentación, pines de control y los pines del bus de datos 
bidireccional. Por lo general podemos encontrar además en su estructura los pines de Ánodo de 
led backlight y cátodo de led backlight que son los que encienden el LED del LCD 
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 y Vss. 
 
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 está 
activado para recibir datos, pero si E (1) se encuentra activo y podemos escribir o leer 
desde el LCD. 
El PIC16F84A es uno de los microcontroladores más populares. Todas las instrucciones se 
ejecutan en un solo ciclo excepto las de salto que necesitan dos, cuenta con un módulo oscilador 
de 20MHz, Tiene una Unidad Aritmética Lógica (ALU) de 8 bits y registro de trabajo W del que 
normalmente recibe un operando que puede ser cualquier registro, memoria, puerto de 
Entrada/Salida o el propio código de instrucción. Cuenta con 18 pines incluyendo los de alimentación, 
13 pueden ser usados como E/S. 
Algunas de sus especificaciones son 
• Manufactura: Microchip
• Voltaje de alimentación: de 2 a 5,5 V
• Cuenta únicamente con 35 palabras de instrucciones
• Memoria de Programa: FLASH 1024 palabras regrabable (1 K x 14 bits)
• Memoria RAM de 68 bytes
• Memoria EEPROM de 64 bytes
• Temperatura de operación: -55° a 125°C
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 más significativos del bus de datos (D4 a D7). En este caso vamos
a explicar la comunicación con el bus de 4 bits.
 
En física, el periodo es el tiempo que tarda en efectuarse una onda o vibración completa, es 
decir, un ciclo o una oscilación completa. Este se mide en segundos (s) y se representa con una 
T . 
Es el número de ciclos producidos por segundo. Se indica con la letra f. Se mide en ciclos/segundo 
o, más comúnmente, en Hertz (Hz). Se relaciona con el periodo mediante la fórmula 
𝑇 =
1
𝑓
 
O, inversamente 
𝑓 =
1
𝑇
 
 
Se conoce por onda cuadrada a la onda que alterna su valor entre dos valores extremos sin 
pasar por los valores intermedios (al contrario de lo que sucede con la onda senoidal y la onda 
triangular, etc.) Se usa principalmente para la generación de pulsos eléctricos que son usados 
como señales (1 y 0) que permiten ser manipuladas fácilmente, un circuito electrónico que genera 
ondas cuadradas se conoce como generador de pulsos, este tipo de circuitos es la base de la 
electrónica digital. Estas ondas, tal como una senoidal, tienen su frecuencia y su periodo 
Un motor de corriente continua convierte la energía eléctrica en mecánica. Se compone de dos 
partes: el estator y el rotor. El estator es la parte mecánica del motor donde están los polos 
del imán. El rotor es la parte móvil del motor con devanado y un núcleo, al que llega la corriente 
a través de las escobillas. Su aplicación más común es en proyectos de estudiantes, ya que su 
revolución depende del voltaje de entrada (Vin). Es posible controlar la velocidad y el par de estos 
motores utilizando técnicas de control de motores CD. Tiene las siguientes características 
eléctricas. 
El primer problema a considerar es la forma de alimentar el motor, dado que la corriente 
máxima que proporcionan las líneas de salida es de 25 mA. Esta corriente es muy baja para 
alimentar un motor de CD directamente. Por ello, se utiliza un puente H, el cual hace uso de 
transistores. El sentido de giro de un motor de corriente continua depende de la polaridad que 
se aplica en sus terminales. Por lo tanto, para cambiar el giro, es necesario intercambiar las 
terminales del motor o cambiar la polaridad de la alimentación. La manera más sencilla de 
controlar un motor de CC es mediante la conmutación realizada con el puente H. 
Está formado por 2 puentes H (un driver de 4 canales), cada uno con cuatro transistores que 
trabajan en conmutación y se comportan como interruptores controlados por la señal que 
llega por las entradas I1 e I2. 
 Cuando se tiene I1 en 1 e I2 en 0, los 
transistores Q3 y Q2 entran en 
saturación, mientras que Q1 y Q4 están 
en corte. Así, el motor gira en un sentido 
Cuando se tiene I1 en 0 e I2 en 1, los 
transistores Q1 y Q4 entran en saturación, 
mientras que Q2 y Q3 están en corte. Así, 
el motor gira en el sentido contrario 
El diagrama de bloques se muestra a continuación. La señal de control EN11 activa o 
desactiva la pareja de canales formada por los drivers 1 y 2. Mientras que la señal EN2 
controla los drivers 3 y 4. Las salidas OUT se asocian con el subíndice de las IN. La tabla 
muestra el funcionamiento de los drivers. 
 
Un botón pulsador (push button) es, básicamente, un interruptor que se puede accionar pulsando 
sobre él. Mientras lo mantenemos pulsado el interruptor estará cerrado, generando continuidad; 
cuando lo soltemos, el interruptor se abrirá. 
 
 
 
 
Para el giro en dos sentidos, tenemos: 
Cuando la entrada C esté en LOW y la D en HIGH, el motor gira en un sentido. 
Cuando la entrada está en C esté en HIGH y la D en LOW, se cambia el sentido del giro. 
Mientras que, para el control de velocidad, es utilizada la técnica de PWM, que es la modulación de 
ancho de pulso. La tensión continua media se controla manteniendo la frecuencia constante y 
variando el tiempo en el que la señal permanece en alto. Es decir, se varía el tiempo que la señal 
permanece en alto y el tiempo que permanece en bajo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
• Laptop con simulador Proteus y compilador MPLAB. 
Dentro del simulador 
• 3 Push button 
• 1 potenciómetro de 10kΩ 
• 3 resistencia de 10kΩ 
• 1 LCD LM016L 
• 1 PIC 16F84A 
• 1 osciloscopio 
• 1 motor de corriente directa 
• 1 driver L293B o L293D. 
• 1 capacitor de 100nF 
• 1 fuente de alimentación de 12V para el driverMaterial y equipo 
Desarrollo de la práctica 
Primero que nada, se tiene el siguiente circuito en Proteus: 
 
 
El código en MPLAB es el siguiente 
Para esta práctica, la LCD se conecta como comúnmente para poder utilizar la subrutina, 
mientras que los Push se conectan: 
• Al pin 3 del puerto A para el encendido y apagado 
• Al pin 4 del puerto A para 30% de la velocidad en un sentido. 
• Al pin 2 del puerto B para 60% de la velocidad en el otro sentido. 
Mientras se van presionando los botones, el motor girará según las indicaciones, además de que 
en la LCD se mostrará el mensaje correspondiente, es decir, indicará si está encendido, apagado, 
al 30 o 60 por ciento de la velocidad, todo esto en la línea 1. Mientras que, en la línea 2, se estará 
mostrando mi primer apellido (Arreola) y mi número de control (18130973), es decir “Arreola 
18130973”. 
El osciloscopio se conecta con la intención de ver la modulación de ancho de pulso. En él, podremos 
ver, por ejemplo, para una velocidad del 30%, cómo el 30% del ciclo se encuentra en alto, mientras 
que el otro 70% está en bajo. Y, con la del 60%, pasaría lo mismo: 60% del tiempo en alto y 40% 
en bajo. 
 
 
 
 
Donde, fue algo un poco más “complejo” que los anteriores que se habían realizado. 
Anteriormente solo se había estado trabajando con un solo pulsador, sin embargo, ahora se está 
trabajando con tres, lo cual es un poco más “avanzado”. 
Al presionar el “PulsadorON”, el motor encenderá y estaría a toda velocidad. Y se mostrará el 
mensaje “Encendido” Al soltarlo, el motor se apagará, y se mostrará el mensaje “Apagado”. Con 
el “Pulsador30” activado, el motor girará al 30% de su velocidad máxima en un sentido, mostrando 
en la pantalla LCD el mensaje “30% de velocidad”, mientras que, si se presiona el “Pulsador60”, 
girará al 60% de su velocidad en el sentido contrario y se mostrará el mensaje “60% de velocidad”. 
Y, si no se presionan estos botones, el motor permanecerá apagado, enviando el mensaje 
“Apagado”. 
Al mismo tiempo, en la LCD se estará mostrando el mensaje “Arreola 18130973”, como un método 
de identificación personal. 
Algunos de los problemas que se presentaron al realizar este programa fue el “testeo” del 
pulsador, ya que, inicialmente, se preguntaba si su estado era 1. Sin embargo, al hacer esto, el 
programa funcionaba solamente de manera secuencial, según se acomodaban las órdenes, 
además de, en ocasiones, quedarse “colgada” en la primera instrucción. Por eso, fue necesario 
cambiar el “testeo” del bit a 0, de esa manera, el programa se puede correr de una manera 
apropiada, sin la necesidad de que se realice secuencialmente. 
Otro problema que se presentó fue al momento de tratar de imprimir un mensaje más largo 
en la segunda línea del LCD, la razón de esto es que, al intentar de hacer un corrimiento o, 
mostrar, inicialmente, un mensaje, mantenerlo unos milisegundos, borrarlo, y escribir uno nuevo, 
se generan lapsos de tiempo “largos”, lo cual interviene directamente en el PWM que controla la 
velocidad del motor. Por esta razón, solamente se decidió trabajar con el mensaje “Arreola 
18130973”, lo cual es “suficiente” como para identificarme como alumno. 
 
 
 
 
 
Resultados 
Para comprobar el funcionamiento del circuito, comenzamos la simulación en Proteus 
Comenzando con ningún botón presionado, se tiene lo siguiente, donde el motor está 
apagado (sin girar). Obsérvese que la salida EN1, IN1 e IN2 del PIC no envían señal al driver. 
Si se presiona el botón pulsador de encendido, se tiene lo siguiente. Donde, el motor se 
encuentra girando en sentido antihorario. Obsérvese cómo el pin EN1 y el IN2 llevan un 
“1”, mientras que el IN1 lleva un “0”. 
 Ahora, si se suelta el pulsador de encendido y presionamos el pulsador que indica el 30% 
de velocidad, se tiene. 
Donde, en el simulador, claramente se observa como disminuye la velocidad. Para 
comprobar el funcionamiento del PWM, veamos la señal en el osciloscopio 
 Ahora, si se suelta el pulsador anterior y presionamos el pulsador que indica el 60% de 
velocidad, se tiene. 
 
Y, en el osciloscopio 
Estas pulsaciones de botones se pueden hacer en cualquier instante, es decir, no tienen 
que seguir una secuencia. Por ejemplo, directamente se puede presionar el de 60% de 
velocidad sin haber tenido que pasar por l encendido o por el 30% de velocidad. 
Fuentes de información 
Automatización para todos (2019). Utilizar Push Button con Arduino. Recuperado 
el 02 de junio de 2021 desde: .https://www.automatizacionparatodos.com/push-
button-con-arduino/ 
ELECTROGH (2015). Control de velocidad PWM. Recuperado el 02 de junio de 2021 
desde: http://electrogh.blogspot.com/2015/09/control-de-velocidad-pwm.html 
EMBA (2011). Fundamentos del sonido. Recuperado el 02 de junio de 2021 desde: 
http://www.emba.com.ar/biblioteca/Frecuencia%20-%20Periodo%20-%20Longuitu
d%20de%20Onda%20-%20(%20RESUMEN%20).pdf 
Geek Factory. PIC16F84A Microcontrolador 8 bits. Recuperado el 02 de junio de 
2021 desde: https://www.geekfactory.mx/tienda/componentes-
electronicos/circuitos-integrados/pic16f84a-microcontrolador-8-bits/ 
LinkFang (2020). Onda cuadrada. Recuperado el 02 de junio de 2021 desde: 
https://es.linkfang.org/wiki/Onda_cuadrada 
Palacios, E. & Remiro, F. & López, L. Microcontrolador PICF84: Desarrollo de 
proyectos (1ª. edición). México: AlfaOmega 
Makertronix. Motor DC 5V (Braun). Recuperado el 10 de junio de 2021 desde: 
https://makertronix.com/catalogo/motor-dc-5v-braun-.html 
330 Ohms. MOTOR DE DC - 1.5 A 5V. Recuperado el 10 de junio de 2021 desde: 
https://www.330ohms.com/products/hobby-motor-gear 
Todo electrodo. ¿Qué es una LCD?. Recuperado el 02 de junio de 2021 desde: 
http://todoelectrodo.blogspot.com/2013/02/lcd-16x2.html 
https://www.automatizacionparatodos.com/push-button-con-arduino/
https://www.automatizacionparatodos.com/push-button-con-arduino/
http://electrogh.blogspot.com/2015/09/control-de-velocidad-pwm.html
http://www.emba.com.ar/biblioteca/Frecuencia%20-%20Periodo%20-%20Longuitud%20de%20Onda%20-%20(%20RESUMEN%20).pdf
http://www.emba.com.ar/biblioteca/Frecuencia%20-%20Periodo%20-%20Longuitud%20de%20Onda%20-%20(%20RESUMEN%20).pdf
https://www.geekfactory.mx/tienda/componentes-electronicos/circuitos-integrados/pic16f84a-microcontrolador-8-bits/
https://www.geekfactory.mx/tienda/componentes-electronicos/circuitos-integrados/pic16f84a-microcontrolador-8-bits/
https://es.linkfang.org/wiki/Onda_cuadrada
https://makertronix.com/catalogo/motor-dc-5v-braun-.html
https://www.330ohms.com/products/hobby-motor-gear
http://todoelectrodo.blogspot.com/2013/02/lcd-16x2.html

Continuar navegando

Otros materiales