0% encontró este documento útil (0 votos)
113 vistas7 páginas

Modo PWM Interesante

Este documento presenta una guía práctica para utilizar el módulo CCP en modo PWM en microcontroladores PIC. La guía explica cómo configurar el módulo Timer2 y CCP para generar PWM y controlar la velocidad de un motor DC variando un voltaje analógico. También incluye instrucciones para agregar un botón y modificar el programa para detener el motor al presionar el botón.

Cargado por

anon_612977932
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
113 vistas7 páginas

Modo PWM Interesante

Este documento presenta una guía práctica para utilizar el módulo CCP en modo PWM en microcontroladores PIC. La guía explica cómo configurar el módulo Timer2 y CCP para generar PWM y controlar la velocidad de un motor DC variando un voltaje analógico. También incluye instrucciones para agregar un botón y modificar el programa para detener el motor al presionar el botón.

Cargado por

anon_612977932
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Microcontroladores.

Gua 5

Facultad: Ingeniera Escuela: Electrnica Asignatura: Microcontroladores Lugar de ejecucin: Laboratorio de microprocesadores, Edif. 3 Electrnica.

Tema: Utilizacin del mdulo CCP (PWM) en los microcontroladores PIC.


Objetivo general
Utilizar el mdulo CCP de los microcontroladores PIC en modo PWM para disear sistemas que manejen cargas de potencia.

Objetivos especficos
Conocer la forma de inicializacin del mdulo CCP en modo PWM. Conocer la forma de inicializacin del mdulo Timer2. Realizar el control de potencia en un motor DC a partir de un voltaje analgico. Verificar la forma correcta en que se cargan los registros del Timer2 de tal forma de poder generar ciclos de trabajo de 0 a 100%.

Materiales y equipo
Computadora personal con puerto paralelo, sistema operativo Windows XP, software MPLAB y WinPic800. Tarjeta de entrenamiento CP-PIC877 V1.0 R1. Programador ET-CAB10PIN V2. Fuente de poder de 12V con borne redondo de 5mm. Cable de cinta plana de 28 pines con conector para breadboard. Breadboard. 1 transistor MOSFET IRF540 (canal N). 1 Diodo rectificador 1N4001. 1 Motor DC pequeo de 12V, con consumo mximo (sin carga) de 1A. 1 Potencimetro de 1K. 1 Botn pulsador simple. 1 Resistencia de 10K. Multmetro digital. Cable UTP categora 5.

Microcontroladores. Gua 5

Procedimiento
1. Construya el circuito que se le presenta en la figura 1. Dicho circuito se conectar a la tarjeta de entrenamiento con el diagrama de pines que aparece en la figura 2.

Figura 1 - Diagrama de conexin para el circuito en la breadboard.

Figura 2 Organizacin de los pines de I/O de la tarjeta entrenadora.

2. Una vez ensamblado el circuito, conecte el cable plano a la tarjeta entrenadora. Solicite a su docente de laboratorio que verifique su circuito (el circuito se encender ms adelante).

Microcontroladores. Gua 5

3. A continuacin ejecute el programa MPLAB. Cree un nuevo proyecto con el PIC16F877. 4. Agregue un nuevo archivo de cdigo fuente llamado Principal.asm (no olvide agregar la extensin .asm cuando lo guarde). Y copie el siguiente programa en el archivo:
;Programa de ejemplo para utilizacin de PWM controlado por ADC list p=16f877 ;Definicin del microcontrolador a usar #include <p16f877.inc> ;Cabecera que define los registros del MCU ;Bits de configuracin del MCU cfg1 equ _CP_OFF & _DEBUG_OFF & _WRT_ENABLE_OFF & _CPD_OFF & _LVP_ON cfg2 equ _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC __config cfg1 & cfg2 ;Declaracion de datos en memoria Mis_Variables udata ConteoRetardo res 1 ;Variable que guarda el conteo de retardo PROG1 code ;======================================================================== ;Rutina principal ;---------------clrf PORTA ;Se coloca el valor de los puertos a 0 antes de clrf PORTC ;establecerlos como salida bsf STATUS, RP0 ;Se selecciona el banco 1

;Se inicializa el registro ADCON1 del ADC movlw 0x0E ;Configura los canales para usar solo RA0/AN0 y movwf ADCON1 ;selecciona la justificacion a la izquierda ;Configuracion de los puertos de I/O movlw 0x01 ;Se coloca RA0 como entrada (analoga), el resto son movwf TRISA ;salidas clrf TRISC ;Todo el puerto C se establece como salidas ;Configuracion de Timer2 movlw d'254' ;Se carga el valor 254 a Timer2 de manera que se den movwf PR2 ;255 pasos de conteo y permita generar PWM a 100% bcf STATUS, RP0 ;Selecciona el banco 0 nuevamente

;Se termina de configurar el ADC movlw 0xC1 ;Selecciona el reloj interno, canal cero (AN0) y movwf ADCON0 ;activa el ADC ;Se termina de configurar el modulo Timer2 movlw 0x04; ;Selecciona post escala 1:1, pre escala 1:1 y movwf T2CON ;enciende el timer

Microcontroladores. Gua 5

;Frecuencia de conteo del Timer2: ;Fconteo = Fosc / (4 * PRESCALER) = 4MHz / (4 * 1) = 1MHz ;Se configura el modulo CCP movlw 0x0C ;Se selecciona el modo PWM y se limpian los LSB del movwf CCP1CON ;ciclo de trabajo ;Frecuencia del PWM: ;Fpwm = Fconteo / (PR2 + 1) = 1MHz / (254 + 1) = 3.92KHz Rutina: bsf ADCON0, GO_DONE btfsc ADCON0, GO_DONE goto $-1 movf ADRESH, w movwf CCPR1L movlw d'1' call Retardo goto Rutina ;Inicia la conversion del ADC ;Espera a que la conversion termine por ;medio de verificar el mismo bit ;Toma el resultado del ADC y lo transfiere al ;registro de ciclo de trabajo del PWM ;Espera durante 1ms a que el ADC muestree el ;nuevo dato ;Repite el proceso

;======================================================================== ;Rutina de retardo variable ;-------------------------;Esta rutina genera un retardo segun la cantidad de milisegundos indicada ;en el acumulador. Si el acumulador vale 0, el retardo es de 256ms. Retardo: movwf ConteoRetardo ;Guarda la cuenta de milisegundos en memoria Nuevo_Retardo: movlw d'250' Retardo_1ms: addlw -d'1' ;Resta uno a la cuenta en el acumulador - 1 clock btfss STATUS, Z ;Verifica si la cuenta llego a cero - 1 clock goto Retardo_1ms ;Continua iterando mientras no termina - 2 clock ;Calculo para el retardo interno: ;T = 4 x Numero de iteraciones x Intrucciones por iteracion ; -----------------------------------------------------; frecuencia de oscilador ;T = 4 x 250 x 4 ; ----------; 4MHz ;T = 1ms decfsz ConteoRetardo, f ;Decrementa la cuenta de milisegundos goto Nuevo_Retardo ;Mientras no sea cero, repite return ;Cuando llega a cero, retorna end ;Fin del programa Listado 1 Cdigo fuente del programa a implementar.

Microcontroladores. Gua 5

5. Agregue al proyecto el archivo de de guin de enlace (linker script) con el nombre 16f877.lkr. 6. Compile el programa y verifique que no se generen errores. 7. Prepare el programador conectando primero la cincha plana al ltimo conector del extremo del tablero, a continuacin conecte el programador al puerto paralelo de su PC. Prepare la tarjeta conectando el cable de poder a la misma y luego conectando la cincha que viene del programador al conector amarillo. Finalmente encienda la fuente de 5V. NOTA: No encienda todava la fuente de 12V. 8. Ejecute a continuacin el programa WinPic800. Asegrese de que est elegido el programador ETT-LOW VPP ICSP en el puerto paralelo correcto. Ejecute la rutina de deteccin automtica de dispositivo para que el software quede configurado. 9. Cargue el archivo .hex generado al compilar el programa y descrguelo en el PIC. Una vez terminado, corrobore que el programa fue programado correctamente con la rutina de comprobacin del Winpic800. 10. Ajuste la perilla del potencimetro al valor mnimo de 0V. Ahora encienda la fuente de 12V. 11. Mueva suavemente la perilla del potencimetro para ir elevando el voltaje aplicado al PIC. En este momento el motor debera de encenderse y elevar su velocidad a medida incrementa el voltaje. 12. Corrobore el funcionamiento del circuito variando el voltaje entre 0 y 5V, el motor cambiar su velocidad en proporcin directa al voltaje aplicado. 13. Apague el circuito y agregue el botn con la resistencia como pull-up al en cualquier pin de I/O disponible. 14. Modifique el programa para que el microcontrolador acepte el nuevo botn como una entrada. El programa deber apagar el motor siempre que se mantenga apretado dicho botn. 15. Encienda nuevamente la fuente de 5V, luego ajuste la perilla a 0V y encienda la fuente de 12V. Corrobore que el motor pueda ser controlado con la perilla siempre que no se presione el botn, y que se detenga mientras se presiona.

Microcontroladores. Gua 5

16. Apague la tarjeta de entrenamiento, desconecte el programador de la tarjeta y la PC, y apague su computadora. Deje todo en orden en su puesto de trabajo y entregue los materiales a su instructor.

Anlisis de resultados
Suponga que se tiene un medidor de velocidad conectado al motor, el cual devuelve un voltaje analgico que representa dicha velocidad. Qu cambios deberan hacerse al programa para que el sistema controle y se ajuste a un valor preestablecido de velocidad? Porque se carga el valor d254 al registro PR2 y no d255? Que ocurre si se carga dicho registro con el valor d100?

Investigacin complementaria
Investigue cules dispositivos puede operar correctamente si se les aplica PWM y cules no.

Referencias bibliogrficas
Hoja tcnica del microcontrolador PIC16F877A: http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf Palacios, Enrique - Remiro, Fernando y Lpez, Lucas. Microcontrolador PIC16F84: Desarrollo de proyectos. Segunda edicin. Coedicin Alfaomega RA-MA.

Microcontroladores. Gua 5 Hoja de cotejo: 5

Gua 5:Utilizacin del mdulo CCP (PWM) en los microcontroladores PIC.


Alumno: Docente: Puesto No: GL: Fecha:

EVALUACION % CONOCIMIENTO
25

1-4
Explica deficientemente cmo opera el mdulo Timer2 y el CCP. No cre el programa correctamente y posee muchos errores. El circuito armado presenta problemas y no opera. No hizo las modificaciones de los pasos 13 y 14 o las mismas no son correctas. Es un observador pasivo.

5-7
Explica cmo opera un mdulo pero no el otro. Cre el programa y se compila, pero no funciona ya en el dispositivo. El circuito ensamblado presenta algunos problemas. Hizo las modificaciones pero los resultados difieren de lo esperado. Participa ocasionalmente o lo hace constantemente pero sin coordinarse con su compaero. Hace un uso adecuado de lo recursos, respeta las pautas de seguridad, pero es desordenado.

8-10
Explica claramente cmo operan ambos mdulos. El programa creado se compila y funciona correctamente en el dispositivo. El circuito ensamblado funciona correctamente. Hizo las modificaciones y producen los resultados correctos. Participa propositiva e integralmente en toda la prctica.

Nota

APLICACIN DEL CONOCIMIENTO

25

25

20

ACTITUD

2.5

2.5

Es ordenado pero no hace un uso adecuado de los recursos.

Hace un manejo responsable y adecuado de los recursos conforme a pautas de seguridad e higiene.

TOTAL

100

También podría gustarte