INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Javier Mauricio Mauricio Rolón
[email protected]
RESUMEN
El proyecto se fundamenta en el diseño de un controlador de velocidad de un motor DC basado en un PIC 16F877. En una una pantalla pantalla LCD se visualizará la velocidad real del motor y la velocidad deseada por el usuario que es introducida a través de un teclado. La estrategia de control es proporcional y la velocidad del motor se varía por medio de la modulación por ancho de pulso PWM. 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 líneas por 16 caracteres. El usuario puede introducir la velocidad deseada a través 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 interrupción generada por el timer0 se almacenan los pulsos contador por el timer1 en modo contador durante un período de conteo preestablecido en el timer0 que esta dado por los parámetros del motor, este período equivale a 60mseg. También, mediante una interrupción externa se obtiene la velocidad deseada tecleada por el usuario a través del teclado decimal.
Luis Javier Martinez
[email protected]
programa principal del microcontrolador 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 diseñamos una librería que incluye rutinas para el envío de datos y comandos a la pantalla LCD como recurso para este y futuros proyectos que involucren una pantalla LCD. A continuación se presenta una descripción de las etapas de controlador de teclado y del programa principal del microcontrolador. 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 máquina 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 señal que habilita al microcontrolador para que este realice la lectura del puerto. Está conectado conectado al pin RA4. OUT3 - OUT0: Generan el número tecleado en binario para ser leído por el PIC en los pines RA3 RA0. Entradas:
Después 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, según 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. Básicamente las partes que conforman el proyecto son: el controlador de teclado, que se implementó en una GAL22V10 y permite codificar los dígitos en binario e interrumpir el microcontrolador, el
Los dígitos del teclado son las entradas de la GAL, las cuales generan los cambios de estado en la máquina de Moore. Las teclas # y * no son entradas de la GAL ya que estas están conectadas directamente al PIC. La entrada dada por * es la interrupción externa al microcontrolador. Estados:
Ing. Gabriel Sánchez Suárez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Mauricio Rolón
[email protected]
La máquina 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 dígito (0 a 9) en los cuales se activa el habilitador y se forma en binario el número 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
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 interrupción en el PIC y este queda a la espera de la entrada de dígitos. 2. Oprimir dígito a dígito la velocidad deseada, ingresando primero las centenas, luego el número de decenas y por último las unidades. El sistema está diseñado para recibir cualquier cantidad de datos, de los cuales sólo admitirá los tres últimos dígitos organizándolos en el orden anteriormente mencionado. Debido a que a velocidad nominal del motor es 199 RPM, éste puede ser el máximo valor digitado. Si se digita un valor mayor a este, el dato no será admitido y el sistema retornará el último dato válido 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.
Luis Javier Martinez
[email protected]
PROGRAMA DEL MICROCONTROLADOR PIC16F877
“Declaración 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
ORG 0X00 GOTO PRINCIPAL ORG 0X04 GOTO INTER
“Librerias que incluyen las rutinas de manejo de la pantalla LCD y los registros especiales SFR’s del PIC 16F877.” INCLUDE INCLUDE
"LCD.INC" "P16F877.INC"
“Declaración de la tabla del mensaje inicial, según el valor contenido en el registro W, se devuelve el carácter ASCII a visualizar en la pantalla LCD, empleando el PCL para el desplazamiento a través del mensaje” Tabla_Mensajes: MOVWF PCL
Ing. Gabriel Sánchez Suárez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Mauricio Rolón
[email protected]
“Rutina de declaración del mensaje inicial a visualizar en la pantalla, la directiva dt genera tantas instrucciones retlw como caracteres se contengan encerrados entre comillas, la posición inicial de cada mensaje es asignada arbitrariamente según el pcl” Mens_0
Mens_1
EQU dt
$;Mens_0 apunta al primer carácter "VD(RPM) VR(RPM)",0x00
EQU dt
$;Mens_1 apunta al primer carácter " 000 000 ",0x00
“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 código 0x00. Los registros Temporal_1 y Temporal_2 contienen la posición de memoria del carácter a visualizar y el código ascii de dicho carácter, 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 atención de interrupción, 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 atención de la interrupción debida al timer0, es utilizada para obtener la velocidad real
Luis Javier Martinez
[email protected]
del motor, al atenderse la interrupción 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 cambio en el ancho del pulso del PWM que controlará la velocidad del motor. Es en esta rutina donde también 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. Además la velocidad real es separada en unidades, decenas y centenas y finalmente es visualizada en la pantalla LCD” INT_TIMER BCF STATUS,RP0 BCF INTCON,T0IF MOVLW 0X14 MOVWF TMR0 DECFSZ CONT,1 GOTO L9 BCF T1CON,TMR1ON MOVF TMR1L,0 MOVWF VELREAL BCF STATUS,RP0 MOVF VELREAL,0 SUBWF VELDES,0 BTFSS STATUS,C GOTO L3 MOVWF ROTAR RRF ROTAR,1 RRF ROTAR,1 RRF ROTAR,0 ANDLW b'00011111' ADDWF DUTY,1 BTFSS STATUS,C GOTO L5 MOVLW 0FFH MOVWF DUTY L5 BCF STATUS,C GOTO L4 L3 MOVWF RESTA COMF RESTA,1 INCF RESTA,0 MOVWF ROTAR RRF ROTAR,1 RRF ROTAR,1 RRF ROTAR,0 ANDLW b'00011111' SUBWF DUTY,1 BTFSC STATUS,C GOTO L6 MOVLW 00H MOVWF DUTY L6 BCF STATUS,C L4 BCF STATUS,RP0
Ing. Gabriel Sánchez Suárez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
L7
L8
L9
Javier Mauricio Rolón
[email protected]
MOVF DUTY,0 MOVWF CCPR1L CLRF TMR1L CLRF TMR1H MOVLW 0X14 MOVWF TMR0 BSF T1CON,TMR1ON MOVF VELREAL,0 MOVWF TEMVELREAL CLRF REALUNI CLRF REALDEC CLRF REALCEN MOVLW .100 SUBWF TEMVELREAL,1 INCF REALCEN,1 BTFSC STATUS,C GOTO L7 MOVLW .100 ADDWF TEMVELREAL,1 DECF REALCEN,1 MOVLW .10 SUBWF TEMVELREAL,1 INCF REALDEC,1 BTFSC STATUS,C GOTO L8 MOVLW .10 ADDWF TEMVELREAL,1 DECF REALDEC,1 MOVF TEMVELREAL,0 MOVWF REALUNI MOVLW 05H MOVWF CONT MOVLW b'11001011' CALL LCD_REG MOVLW 30H ADDWF REALCEN,0 CALL LCD_DATO MOVLW 30H ADDWF REALDEC,0 CALL LCD_DATO MOVLW 30H ADDWF REALUNI,0 CALL LCD_DATO RETFIE
Luis Javier Martinez
[email protected]
no se toma en cuenta y se visualiza en pantalla la velocidad deseada ingresada en la interrupción anterior.” INTER_TECLADO BCF CLRF CLRF CLRF
L1
“Rutina de atención de interrupción del teclado, se presenta cuando se pulsa asterisco para ingresar una velocidad deseada. El usuario tiene la posibilidad de ingresar la cifra de tres dígitos en el orden de centenas, decenas y unidades permitiéndose 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 máxima velocidad del motor es 199 RPM si el usuario ingresa un número mayor a este
LRET1 LRET2 LRET LRET4 LRET3
STATUS,RP0 TCEN TDEC TUNI
CLRF PORTA CLRF PORTB BSF STATUS,RP0 CLRF TRISA BSF STATUS,RP0 MOVLW B'00111111' MOVWF TRISA MOVLW B'00000001' MOVWF TRISB BCF STATUS,RP0 CLRF PORTA BCF STATUS,RP0 BCF INTCON,INTF BTFSC PORTA,5 GOTO MULTIPLICACION BTFSS PORTA,4 GOTO L1 MOVF TDEC,0 MOVWF TCEN MOVF TUNI,0 MOVWF TDEC MOVF PORTA,0 ANDLW 0FH MOVWF TUNI MOVLW b'11000010' CALL LCD_REG MOVLW 30H ADDWF TCEN,0 CALL LCD_DATO MOVLW 30H ADDWF TDEC,0 CALL LCD_DATO MOVLW 30H ADDWF TUNI,0 CALL LCD_DATO MOVLW 19H MOVWF DELAY DECFSZ DELAY,1 GOTO LRET2 GOTO L1 MOVLW 0C8H MOVWF DELAY1 DECFSZ DELAY1,1 GOTO LRET4 GOTO LRET1 MOVLW 0C8H MOVWF DELAY2 DECFSZ DELAY2,1 GOTO LRET3 GOTO LRET
Ing. Gabriel Sánchez Suárez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected] TERMINAR MOVF MOVF MOVWF MOVF
L12
CEN,0 TCEN,0 CEN TDEC,0
MOVWF DEC MOVF TUNI,0 MOVWF UNI MOVLW b'11000010' CALL LCD_REG MOVLW 30H ADDWF CEN,0 CALL LCD_DATO MOVLW 30H ADDWF DEC,0 CALL LCD_DATO MOVLW 30H ADDWF UNI,0 CALL LCD_DATO RETFIE
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
Javier Mauricio Rolón
[email protected] MOVF MOVWF MOVF MOVWF GOTO RESTAURAR1 MOVF MOVWF MOVLW ANDWF BTFSS GOTO MOVLW ANDWF BTFSS GOTO MOVLW ANDWF BTFSS GOTO GOTO
Luis Javier Martinez
[email protected] 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
“Programa principal, contiene la inicialización 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 habilitación de las interrupciones empleadas: internas (timer0) y externas (teclado). Además 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 librería LCD.INC. Los registros SFR’s 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), además se inicializa un contador que repite la interrupción 5 veces antes de atenderla para cumplir con el período de conteo necesario que corresponde a 60ms. En el registro PR2 se carga el período 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 Sánchez Suárez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Mauricio Rolón
[email protected]
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 INTERRUPCIÓN 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 ;VISUALIZACIÓN DEL MENSAJE DE LA LINEA 1 DE LA LCD MOVLW b'11000000' CALL LCD_REG MOVLW Mens_1 ;VISUALIZACIÓN DEL MENSAJE INICIAL DE LA LINEA 2 DE LA LCD CALL Mensaje BSF STATUS,RP0 MOVLW b'00000111' MOVWF OPTION_REG
L2
Luis Javier Martinez
[email protected]
;Preescaler de 256 para el TMR0
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
LIBRERIA QUE CONTIENE LAS RUTINAS DE MANEJO DE LA PANTALLA LCD
LCD.INC
“Las siguientes rutinas presentan a continuación permiten realizar las tareas básicas de control para la visualización de un mensaje en la pantalla LCD.” “Declaración 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 SEÑAL E #define DISABLE bcf PORTC,5 SEÑAL 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 Sánchez Suárez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Mauricio Rolón
[email protected]
GOTO CD_BUSY_1 DISABLE ;DESACTIVA LA LCD SF STATUS,RP0 CLRF TRISD BCF STATUS,RP0 ESCRIBIR ;COLOCA LA LCD EN MODO WR RETURN
Rutina de escritura de datos en la memoria DDRAM de la pantalla LCD, el carácter se encuentra almacenado en el acumulador W.” LCD_DATO
MOVLW 01H ;BORRA LCD Y HOME (RESET). CALL LCD_REG RETURN
CONCLUSIONES
•
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 ;CÓDIGO DE COMANDO. DISABLE CALL LCD_BUSY ;ESPERA QUE SE LIBERE LA LCD RETURN
•
“Rutina de inicialización 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
Luis Javier Martinez
[email protected]
•
La mayor ventaja que tiene el microcontrolador PIC16F877 frente a los demás microcontroladores es que este posee módulos internos específicos que son empleados generalmente en sistemas de control y debían implementarse en hardware externo al microcontrolador. Estos módulos son entre otros conversor análogo-digital, timers y contadores, módulo generador de PWM. La forma de operar estos módulos es a través de los registros especiales SFR’s direccionando bit a bit cada uno de ellos para configurar, activar o desactivar cada una de sus funciones.
Al emplear el móulo PWM en el PIC16F877 encontramos que se presenta el inconveniente que dependiendo del oscilador de cristal empleado se puede obtener una frecuencia máxima del PWM y una resolución de bits. Para nuestro caso el PWM es de 19.6KHz, y para conseguirlo a una resolución 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 Sánchez Suárez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Mauricio Rolón
[email protected]
contador para realizar el tacómetro que nos permita obtener la velocidad real del motor. En nuestro caso el timer0 interrumpe al microcontrolador cada 60 milisegundos (período de conteo) y el timer1 almacena la cuenta de los pulsos enviados por el encoder evitando el uso de hardware externo.
•
•
El diseño de la librería que maneja el envío de datos y comandos a la pantalla LCD mediante rutinas nos permitió el ahorro de líneas del programa principal y en proyectos posteriores facilitará la visualización 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 dígitos en forma binaria y habilite la lectura del dígito oprimido ya que contabamos con un puerto de 6 pines (PORTA) disponible para esta tarea.
Ing. Gabriel Sánchez Suárez
[email protected]
Luis Javier Martinez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Mauricio Rolón
[email protected]
Luis Javier Martinez
[email protected]
A continuación 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 fotografías 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 Sánchez Suárez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Mauricio Rolón
[email protected]
Ing. Gabriel Sánchez Suárez
[email protected]
Luis Javier Martinez
[email protected]
INGENIERÍA ELECTRÓNICA MICROCONTROLADORES “Controlador de velocidad de un motor DC basado en un PIC 16F877” Lina María Aguilar
[email protected]
Javier Mauricio Rolón
[email protected]
Luis Javier Martinez
[email protected]
La próxima fotografía muestra el circuito completo del sistema controlador de velocidad del motor DC empleando un PIC16F877.
Ing. Gabriel Sánchez Suárez
[email protected]