Está en la página 1de 11

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877

Lina Mara Aguilar linamaria_a_l@hotmail.com


RESUMEN El proyecto se fundamenta en el diseo de un controlador de velocidad de un motor DC basado en un PIC 16F877. En una pantalla LCD se visualizar la velocidad real del motor y la velocidad deseada por el usuario que es introducida a travs de un teclado. La estrategia de control es proporcional y la velocidad del motor se vara por medio de la modulacin por ancho de pulso PWM.

Javier Mauricio Roln maorolon2@hotmail.com

Luis Javier Martinez javiermm@engineer.com

programa principal del microcontrolador PIC16F877 que realiza la estrategia de control proporcional y visualiza en la pantalla LCD las velocidades deseada y real del motor, y la etapa de aislamiento y potencia que esta conformada por un optoacoplador y un mosfet de potencia. Para el programa principal del microcontrolador diseamos una librera que incluye rutinas para el envo de datos y comandos a la pantalla LCD como recurso para este y futuros proyectos que involucren una pantalla LCD. A continuacin se presenta una descripcin de las etapas de controlador de teclado y del programa principal del microcontrolador.

DESARROLLO El proyecto es un controlador de velocidad de un motor DC bajo condiciones variables de carga y voltaje, basado en un sistema con microcontrolador PIC16F877. La velocidad deseada y la velocidad real se visualizan en una pantalla LCD de 2 lneas por 16 caracteres. El usuario puede introducir la velocidad deseada a travs de un teclado decimal para una velocidad no mayor a 199RPM que es la nominal del motor. El programa que contiene el microcontrolador PIC16F877 cumple las siguientes funciones: Mediante una interrupcin generada por el timer0 se almacenan los pulsos contador por el timer1 en modo contador durante un perodo de conteo preestablecido en el timer0 que esta dado por los parmetros del motor, este perodo equivale a 60mseg. Tambin, mediante una interrupcin externa se obtiene la velocidad deseada tecleada por el usuario a travs del teclado decimal. Despus de tener almacenados estos dos datos, se realiza la diferencia entre la velocidad deseada y la velocidad real y se incrementa o decrementa el ancho del pulso del PWM, segn el resultado sea positivo o negativo respectivamente y de este modo se consigue variar la velocidad del motor DC y llegar hasta la deseada por el usuario. Bsicamente las partes que conforman el proyecto son: el controlador de teclado, que se implement en una GAL22V10 y permite codificar los dgitos en binario e interrumpir el microcontrolador, el

CONTROLADOR DE TECLADO Para el ingreso de la velocidad deseada se implement en una GAL22V10 un controlador de teclado decimal utilizando la herramienta PALASM. Para el desarrollo del controlador de teclado se program una mquina de estados de Moore, la cual contiene 11 estados, 5 salidas, 10 entradas, las cuales se resumen de la siguiente manera: Salidas: OUT4: Genera una seal que habilita al microcontrolador para que este realice la lectura del puerto. Est conectado al pin RA4. OUT3 - OUT0: Generan el nmero tecleado en binario para ser ledo por el PIC en los pines RA3 RA0. Entradas: Los dgitos del teclado son las entradas de la GAL, las cuales generan los cambios de estado en la mquina de Moore. Las teclas # y * no son entradas de la GAL ya que estas estn conectadas directamente al PIC. La entrada dada por * es la interrupcin externa al microcontrolador. Estados:

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com Javier Mauricio Roln maorolon2@hotmail.com Luis Javier Martinez javiermm@engineer.com

La mquina de estados de Moore est compuesta por 11 estados, empezando por un estado de reposo en el cual el habilitador OUT4 no est activado y 10 estados, uno para cada dgito (0 a 9) en los cuales se activa el habilitador y se forma en binario el nmero tecleado. OUT4 OUT3 OUT2 OUT1 OUT0 Estado X 0 1 2 3 4 5 6 7 8 9 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1

PROGRAMA DEL MICROCONTROLADOR PIC16F877 Declaracin de registros de uso general en las posiciones de memoria disponibles en el banco0
UNI DEC CEN VELREAL VELDES DUTY TEMPORAL TUNI TDEC TCEN RESTA DUTYT REALUNI REALDEC REALCEN TEMVELREAL CONT NUMERO DECX CENX Temporal_1 Temporal_2 DELAY DELAY1 EQU DELAY2 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 37H 38H 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 2BH 2CH 2DH 2EH 2FH 30H 31H 32H 33H 34H 35H 36H

Procedimiento para el ingreso de datos mediante el teclado para la velocidad deseada: Para ingresar la velocidad deseada, el usuario debe visualizar el teclado decimal y seguir los siguientes pasos: 1. Oprimir asterisco (*), lo cual genera una interrupcin en el PIC y este queda a la espera de la entrada de dgitos. 2. Oprimir dgito a dgito la velocidad deseada, ingresando primero las centenas, luego el nmero de decenas y por ltimo las unidades. El sistema est diseado para recibir cualquier cantidad de datos, de los cuales slo admitir los tres ltimos dgitos organizndolos en el orden anteriormente mencionado. Debido a que a velocidad nominal del motor es 199 RPM, ste puede ser el mximo valor digitado. Si se digita un valor mayor a este, el dato no ser admitido y el sistema retornar el ltimo dato vlido recibido. 3. Oprimir numeral (#), con lo cual se guarda el dato y el controlador comenzar el respectivo proceso para obtener la nueva velocidad deseada en el motor.

ORG 0X00 GOTO PRINCIPAL ORG 0X04 GOTO INTER

Librerias que incluyen las rutinas de manejo de la pantalla LCD y los registros especiales SFRs del PIC 16F877.
INCLUDE INCLUDE "LCD.INC" "P16F877.INC"

Declaracin de la tabla del mensaje inicial, segn el valor contenido en el registro W, se devuelve el carcter ASCII a visualizar en la pantalla LCD, empleando el PCL para el desplazamiento a travs del mensaje
Tabla_Mensajes: MOVWF PCL

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com Javier Mauricio Roln maorolon2@hotmail.com Luis Javier Martinez javiermm@engineer.com

Rutina de declaracin del mensaje inicial a visualizar en la pantalla, la directiva dt genera

tantas instrucciones retlw como caracteres se contengan encerrados entre comillas, la posicin inicial de cada mensaje es asignada arbitrariamente segn el pcl
Mens_0 EQU dt Mens_1 EQU dt $;Mens_1 apunta al primer carcter " 000 000 ",0x00 $;Mens_0 apunta al primer carcter "VD(RPM) VR(RPM)",0x00

del motor, al atenderse la interrupcin el dato guardado en el timer-contador1 se almacena en el registro VELREAL, se realiza la resta entre la velocidad deseada y la velocidad real para obtener el cam bio en el ancho del pulso del PWM que controlar la velocidad del motor. Es en esta rutina donde tambin se aplica la constante de proporcionalidad (0.5) del motor que representa la estrategia de control proporcional empleada en este proyecto. El ancho de pulso del PWM es almacenado en el registro DUTY y llevado al exterior mediante el SFR CCPR1L. Adems la velocidad real es separada en unidades, decenas y centenas y finalmente es visualizada en la pantalla LCD
INT_TIMER BCF BCF MOVLW MOVWF DECFSZ GOTO BCF MOVF MOVWF BCF MOVF SUBWF BTFSS GOTO MOVWF RRF RRF RRF ANDLW ADDWF BTFSS GOTO MOVLW MOVWF L5 BCF GOTO L3 MOVWF COMF INCF MOVWF RRF RRF RRF ANDLW SUBWF BTFSC GOTO MOVLW MOVWF L6 BCF L4 BCF STATUS,RP0 INTCON,T0IF 0X14 TMR0 CONT,1 L9 T1CON,TMR1ON TMR1L,0 VELREAL STATUS,RP0 VELREAL,0 VELDES,0 STATUS,C L3 ROTAR ROTAR,1 ROTAR,1 ROTAR,0 b'00011111' DUTY,1 STATUS,C L5 0FFH DUTY STATUS,C L4 RESTA RESTA,1 RESTA,0 ROTAR ROTAR,1 ROTAR,1 ROTAR,0 b'00011111' DUTY,1 STATUS,C L6 00H DUTY STATUS,C STATUS,RP0

Rutina que visualiza en la pantalla LCD el mensaje inicial cuyo inicio est indicado en el acumulador W. El fin de un mensaje se determina mediante el cdigo 0x00. Los registros Temporal_1 y Temporal_2 contienen la posicin de memoria del carcter a visualizar y el cdigo ascii de dicho carcter, repectivamente
Mensaje MOVWF Temporal_1 Mensaje_1 MOVF Temporal_1,W CALL Tabla_Mensajes MOVWF Temporal_2 MOVF Temporal_2,F BTFSS STATUS,Z GOTO No_es_ultimo RETURN No_es_ultimo CALL LCD_DATO INCF Temporal_1,F GOTO Mensaje_1

Rutina de atencin de interrupcin, si es externa (debida al teclado) o si es interna (debida al timer0)


INTER BTFSC INTCON,INTF ;Ha sido el TECLADO ? GOTO INTER_TECLADO BTFSS INTCON,T0IF ;Ha sido el TIMER ? RETFIE

Rutina de atencin de la interrupcin debida al timer0, es utilizada para obtener la velocidad real

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com
MOVF MOVWF CLRF CLRF MOVLW MOVWF BSF MOVF MOVWF CLRF CLRF CLRF MOVLW SUBWF INCF BTFSC GOTO MOVLW ADDWF DECF MOVLW SUBWF INCF BTFSC GOTO MOVLW ADDWF DECF MOVF MOVWF MOVLW MOVWF MOVLW CALL MOVLW ADDWF CALL MOVLW ADDWF CALL MOVLW ADDWF CALL RETFIE DUTY,0 CCPR1L TMR1L TMR1H 0X14 TMR0 T1CON,TMR1ON VELREAL,0 TEMVELREAL REALUNI REALDEC REALCEN .100 TEMVELREAL,1 REALCEN,1 STATUS,C L7 .100 TEMVELREAL,1 REALCEN,1 .10 TEMVELREAL,1 REALDEC,1 STATUS,C L8 .10 TEMVELREAL,1 REALDEC,1 TEMVELREAL,0 REALUNI 05H CONT b'11001011' LCD_REG 30H REALCEN,0 LCD_DATO 30H REALDEC,0 LCD_DATO 30H REALUNI,0 LCD_DATO

Javier Mauricio Roln maorolon2@hotmail.com

Luis Javier Martinez javiermm@engineer.com

no se toma en cuenta y se visualiza en pantalla la velocidad deseada ingresada en la interrupcin anterior.


INTER_TECLADO BCF CLRF CLRF CLRF CLRF CLRF BSF CLRF BSF MOVLW MOVWF MOVLW MOVWF BCF CLRF BCF BCF BTFSC GOTO BTFSS GOTO MOVF MOVWF MOVF MOVWF MOVF ANDLW MOVWF MOVLW CALL MOVLW ADDWF CALL MOVLW ADDWF CALL MOVLW ADDWF CALL MOVLW MOVWF DECFSZ GOTO GOTO MOVLW MOVWF DECFSZ GOTO GOTO MOVLW MOVWF DECFSZ GOTO GOTO STATUS,RP0 TCEN TDEC TUNI PORTA PORTB STATUS,RP0 TRISA STATUS,RP0 B'00111111' TRISA B'00000001' TRISB STATUS,RP0 PORTA STATUS,RP0 INTCON,INTF PORTA,5 MULTIPLICACION PORTA,4 L1 TDEC,0 TCEN TUNI,0 TDEC PORTA,0 0FH TUNI b'11000010' LCD_REG 30H TCEN,0 LCD_DATO 30H TDEC,0 LCD_DATO 30H TUNI,0 LCD_DATO 19H DELAY DELAY,1 LRET2 L1 0C8H DELAY1 DELAY1,1 LRET4 LRET1 0C8H DELAY2 DELAY2,1 LRET3 LRET

L7

L8

L1

L9

Rutina de atencin de interrupcin del teclado, se presenta cuando se pulsa asterisco para ingresar una velocidad deseada. El usuario tiene la posibilidad de ingresar la cifra de tres dgitos en el orden de centenas, decenas y unidades permitindose un solapamiento en estos, y al oprimir numeral se finaliza y se toma el dato pulsado como la velocidad deseada. Cada vez que se pulsa un digito este se visualiza en pantalla y debido a que la mxima velocidad del motor es 199 RPM si el usuario ingresa un nmero mayor a este

LRET1 LRET2 LRET LRET4 LRET3

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com
TERMINAR MOVF MOVF MOVWF MOVF MOVWF MOVF MOVWF MOVLW CALL MOVLW ADDWF CALL MOVLW ADDWF CALL MOVLW ADDWF CALL RETFIE

Javier Mauricio Roln maorolon2@hotmail.com


MOVF MOVWF MOVF MOVWF GOTO RESTAURAR1 MOVF MOVWF MOVLW ANDWF BTFSS GOTO MOVLW ANDWF BTFSS GOTO MOVLW ANDWF BTFSS GOTO GOTO

Luis Javier Martinez javiermm@engineer.com


DEC,0 TDEC UNI,0 TUNI L12 TCEN,0 CENX b'11111101' CENX,1 STATUS,Z RESTAURAR b'11111111' TDEC,0 STATUS,Z RESTAURAR b'11111111' TUNI,0 STATUS,Z RESTAURAR VALIDO

CEN,0 TCEN,0 CEN TDEC,0 DEC TUNI,0 UNI b'11000010' LCD_REG 30H CEN,0 LCD_DATO 30H DEC,0 LCD_DATO 30H UNI,0 LCD_DATO

L12

MULTIPLICACION CLRF NUMERO MOVF TCEN,0 MOVWF CENX MOVLW B'11111110' ANDWF CENX,1 BTFSS STATUS,Z GOTO RESTAURAR VALIDO MOVF TCEN,0 MOVWF CENX BTFSC CENX,0 GOTO LA CLRF CENX GOTO LB MOVLW .0 LR ADDLW .100 DECFSZ CENX,1 GOTO LR MOVWF NUMERO LB MOVF TDEC,0 MOVWF DECX MOVLW b'11111111' ANDWF DECX,1 BTFSC STATUS,Z GOTO L10 MOVLW 0H LC ADDLW .10 DECFSZ DECX,1 GOTO LC GOTO L11 L10 MOVLW .0 L11 ADDWF NUMERO,0 ADDWF TUNI,0 MOVWF NUMERO MOVWF VELDES GOTO TERMINAR RESTAURAR MOVF CEN,0 MOVWF TCEN

Programa principal, contiene la inicializacin de los registros especiales que permiten el control de los timer, del PWM, el triestado de los puertos, la preescala asociada a los timer empleados, la habilitacin de las interrupciones empleadas: internas (timer0) y externas (teclado). Adems se inicializa la pantalla LCD enviando los comandos necesarios y se visualiza en ella el mensaje inicial mediante un llamado a las subrutinas de la librera LCD.INC. Los registros SFRs empleados son los de triestado de los puertos (TRISX), el OPTION_REG para definir la preescala del timer 0, el INTCON que activa las interrupciones interna y externa, el T1CON que activa al timer 1 como contador, el T2CON que activa el timer 2 como generador de la preescala del PWM. La preescala asociada con el timer 1 en modo contador es 256 y el dato asignado al timer 0 en modo contador es 235 (se guarda el complemento de este numero), adems se inicializa un contador que repite la interrupcin 5 veces antes de atenderla para cumplir con el perodo de conteo necesario que corresponde a 60ms. En el registro PR2 se carga el perodo del PWM empleado para este proyecto, es asignado FFH que corresponde a una frecuencia de 19.53KHz.
PRINCIPAL BCF BCF BCF STATUS,RP0 STATUS,RP1 STATUS,C

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com Javier Mauricio Roln maorolon2@hotmail.com Luis Javier Martinez javiermm@engineer.com
;Preescaler de 256 para el TMR0 CLRF PORTA CLRF PORTB CLRF PORTC MOVLW 0xFF MOVWF VELDES MOVLW 0x00 MOVWF DUTY BSF STATUS,RP0 MOVLW 06H MOVWF ADCON1 MOVLW 3FH MOVWF TRISA MOVLW b'00000001' MOVWF TRISB MOVLW b'00000001' MOVWF TRISC MOVLW 05H MOVWF CONT BCF STATUS,RP0 CLRF CCPR1L CLRF CCPR1H BCF STATUS,RP0 MOVLW b'10110000' MOVWF INTCON ;ACTIVA LA INTERRUPCIN DEL TMR0 BCF STATUS,RP0 MOVLW b'00000011' MOVWF T1CON ;TIMER1 EN ONN BCFSTATUS,RP0 MOVLW b'00001111' MOVWF CCP1CON ;CONFIGURAR PWM BSFSTATUS,RP0 MOVLW 0FFH MOVWF PR2 ;CARGA EL PERIODO DEL PWM BCF STATUS,RP0 MOVLW B'00000100' MOVWF T2CON ;T2 EN ON CLRF PORTD CLRF PORTC BSF STATUS,RP0 CLRF TRISD MOVLW b'00000001' MOVWF TRISC BCF STATUS,RP0 CALL LCD_INI ;INICIALIZACION DE LA PANTALLA LCD MOVLW Mens_0 CALL Mensaje ;VISUALIZACIN DEL MENSAJE DE LA LINEA 1 DE LA LCD MOVLW b'11000000' CALL LCD_REG MOVLW Mens_1 ;VISUALIZACIN DEL MENSAJE INICIAL DE LA LINEA 2 DE LA LCD CALL Mensaje BSF STATUS,RP0 MOVLW b'00000111' MOVWF OPTION_REG BCF STATUS ,RP0 MOVLW 0x14 ;COMPLEMENTO DE PARA EL TIMER0 MOVWF TMR0 BCF STATUS,RP0 MOVLW b'00000011' ;TIMER1 EN ONN MOVWF T1CON GOTO L2 END

L2

LIBRERIA QUE CONTIENE LAS RUTINAS DE MANEJO DE LA PANTALLA LCD


LCD.INC

Las siguientes rutinas presentan a continuacin permiten realizar las tareas bsicas de control para la visualizacin de un mensaje en la pantalla LCD. Declaracin de palabras especiales empleadas en el control de la pantalla LCD, se declaran como un nivel alto o bajo en pines especiales del puerto empleado para el control Puerto C.
#define ENABLE bsf PORTC,5 ;ACTIVA SEAL E #define DISABLE bcf PORTC,5 SEAL E #define LEER bsf PORTC,4 ;COLOCA LA LCD EN MODO RD #define ESCRIBIR bcf PORTC,4 ;COLOCA LA LCD EN MODO WR #define OFF_COMANDO bcf PORTC,3 RS (MODO COMANDO) #define ON_COMANDO bsf PORTC,3 ;ACTIVA RS (MODO DATO)

;DESACTIVA

;DESACTIVA

Rutina de lectura del flan Busy de la pantalla LCD para mantener el retardo necesario en los comandos y datos enviados a ella.

LCD_BUSY

LCD_BUSY_1

ENABLE ;ACTIVA LA LCD OFF_COMANDO LEER ;COLOCA LA LCD EN MODO RD BSF STATUS,RP0 MOVLW H'FF' MOVWF TRISD BCF STATUS,RP0 nop BTFSC PORTD,7 ;CHEQUEA BIT DE BUSY

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com Javier Mauricio Roln maorolon2@hotmail.com Luis Javier Martinez javiermm@engineer.com
MOVLW 01H ;BORRA LCD Y HOME (RESET). CALL LCD_REG RETURN

GOTO CD_BUSY_1 DISABLE ;DESACTIVA LA LCD SF STATUS,RP0 CLRF TRISD BCF STATUS,RP0 ESCRIBIR ;COLOCA LA LCD EN MODO WR RETURN

CONCLUSIONES

Rutina de escritura de datos en la memoria DDRAM de la pantalla LCD, el carcter se encuentra almacenado en el acumulador W.
LCD_DATO ENABLE ON_COMANDO ;ACTIVA RS (MODO DATO) MOVWF PORTD ;VALOR ASCII A EXTERIORIZAR POR PORTD DISABLE CALL LCD_BUSY ;ESPERA QUE SE LIBERE LA LCD RETURN

Rutina de escritura de comandos de control en la pantalla LCD, el comando se encuentra presente en el acumulador W.
LCD_REG ENABLE OFF_COMANDO ;DESACTIVA RS (MODO COMANDO) MOVWF PORTD ;CDIGO DE COMANDO. DISABLE CALL LCD_BUSY ;ESPERA QUE SE LIBERE LA LCD RETURN

La mayor ventaja que tiene el microcontrolador PIC16F877 frente a los dems microcontroladores es que este posee mdulos internos especficos que son empleados generalmente en sistemas de control y deban implementarse en hardware externo al microcontrolador. Estos mdulos son entre otros conversor anlogo- digital, timers y contadores, mdulo generador de PWM. La forma de operar estos mdulos es a travs de los registros especiales SFRs direccionando bit a bit cada uno de ellos para configurar, activar o desactivar cada una de sus funciones.

Rutina de inicializacin de la pantalla LCD, con los codigos necesarios para configurar la LCD en modo de 8 bits, el display en ON, el cursor en OFF y sin parpadear, en forma que incremente las direcciones, y borrar la LCD.
LCD_INI MOVLW 38H CALL LCD_REG ;ENVIO DEL COMANDO MOVLW 0CH ;DISPLAY ON, CURSOR OFF, NO PARPADEA. CALL LCD_REG MOVLW 06H ;INCREMENTA CONTADOR DE DIRECCIONES. CALL LCD_REG

Al emplear el mulo PWM en el PIC16F877 encontramos que se presenta el inconveniente que dependiendo del oscilador de c ristal empleado se puede obtener una frecuencia mxima del PWM y una resolucin de bits. Para nuestro caso el PWM es de 19.6KHz, y para conseguirlo a una resolucin de 10 bits fue necesario emplear un oscilador de 20MHz que permitan obtener las 200 velocidades del motor.

Del microcontrolador PIC16F877 nos fue de gran utilidad el time0 en modo temporizador y el timer1 en modo

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com Javier Mauricio Roln maorolon2@hotmail.com Luis Javier Martinez javiermm@engineer.com

contador para realizar el tacmetro que nos permita obtener la velocidad real del motor. En nuestro caso el timer0 interrumpe al microcontrolador cada 60 milisegundos (perodo de conteo) y el timer1 almacena la cuenta de los pulsos enviados por el encoder evitando el uso de hardware externo.

El diseo de la librera que maneja el envo de datos y comandos a la pantalla LCD mediante rutinas nos permiti el ahorro de lneas del programa principal y en proyectos posteriores facilitar la visualizacin de caracteres en la pantalla LCD.

Para ingresar los datos desde el teclado hasta el microcontrolador nos fue necesario implementar una GAL22V10 que codifique los dgitos en forma binaria y habilite la lectura del dgito oprimido ya que contabamos con un puerto de 6 pines (PORTA) disponible para esta tarea.

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com Javier Mauricio Roln maorolon2@hotmail.com Luis Javier Martinez javiermm@engineer.com

A continuacin se muestra el esquema del circuito completo del controlador de velocidad, donde se incluyen el teclado decimal, la pantalla LCD y el dispositivo de potencia.

Las siguientes fotografas muestran el teclado decimal empleado para ingresar la velocidad deseada, la pantalla LCD donde se visualizan la velocidad deseada y la velocidad real del motor en RPM (revoluciones por minuto) y el motor empleado en el proyecto con capacidades nominales de 20V y 3A.

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com Javier Mauricio Roln maorolon2@hotmail.com Luis Javier Martinez javiermm@engineer.com

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERA ELECTRNICA MICROCONTROLADORES Controlador de velocidad de un motor DC basado en un PIC 16F877
Lina Mara Aguilar linamaria_a_l@hotmail.com Javier Mauricio Roln maorolon2@hotmail.com Luis Javier Martinez javiermm@engineer.com

La prxima fotografa muestra el circuito completo del sistema controlador de velocidad del motor DC empleando un PIC16F877.

Ing. Gabriel Snchez Surez gabrielsanchezsuarez@hotmail.com

También podría gustarte