INSTITUTO TECNOLOGICO DE SAN LUIS POTOSI
Departamento de Eléctrica-Electrónica-Mecatrónica
Profesor: Carlos E. Canto Quintal M.I.
INTERFACES PARA AUTOMATIZACION Y CONTROL

PRÁCTICA 4
INTEGRANTES DEL ALUMNO:
AGUILAR GAYTAN BRENDA ARACELI
CANO ESPINOZA CRISTOPHER
LOPEZ PALAU NELIDA ELIZABETH
MARTINEZ ESCOBAR JUAN FERNANDO
OBJETIVO
Variar el control del PWM del microcontroladores pic 16f877a para posicionar un servomotor en una posición angular de 45°, 90° y 180°.
MATERIAL
· Protoboard
· Pic 16f877a
· 3 push button
· Servomotor
· Cristal de 4 MHz
INTRODUCCION
SERVOMOTOR
Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Está conformado por un motor, una caja reductora y un circuito de control. Los servos se utilizan frecuentemente en sistemas de radio control y en robótica, pero su uso no está limitado a estos. Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a estos dispositivos.
Un servo normal o estándar tiene 3kg por cm. de torque, lo cual es bastante fuerte para su tamaño. También potencia proporcional para cargas mecánicas. Un servo, por consiguiente, tiene un consumo de energía reducido.
La corriente que requiere depende del tamaño del servo. Normalmente el fabricante indica cual es la corriente que consume. Eso no significa mucho si todos los servos van a estar moviéndose todo el tiempo. La corriente depende principalmente del par, y puede exceder un amperio si el servo está enclavado.
En el caso del motor HS-311, la posición de 0º se consigue con un pulso de 0.5 ms, la posición central de 90º con un pulso de 1.5 ms y el extremo de 180º con un pulso de 2.5 ms.
En la siguiente tabla se representan algunos fabricantes de servomotores y los tiempos que utilizan para posicionar al servo en una posición determinada, así como los colores de los cables empleados.
PIC 16F877A
El PIC 16F877. Este microcontrolador es fabricado por Microchip familia a la cual se le denomina PIC. El modelo 16F877 posee varias características que hacen a este micro controlador un dispositivo muy versátil, eficiente y práctico para ser empleado en la aplicación que posteorimente será detallada.
Algunas de estas características se muestran a continuación:
· Soporta modo de comunicación serial, posee dos pines para ello.
· Amplia memoria para datos y programa.
· Memoria reprogramable: La memoria en este PIC es la que se denomina FLASH; este tipo de memoria se puede borrar electrónicamente (esto corresponde a la "F" en el modelo).
· Set de instrucciones reducidas (tipo RISC), pero con las instrucciones necesarias para facilitar su manejo.
En siguiente tabla de pueden observar las características más relevantes del dispositivo:
CARACTERÍSTICAS | 16F877 |
Frecuencia máxima | DX-20MHz |
8KB | |
368 | |
Posiciones EEPROM de datos | 256 |
Puertos E/S | A,B,C,D,E |
Número de pines | 40 |
Interrupciones | 14 |
Timers | 3 |
Módulos CCP | 2 |
Comunicaciones Serie | MSSP, USART |
Comunicaciones paralelo | PSP |
Líneas de entrada de CAD de 10 bits | 8 |
Juego de instrucciones | 35 Instrucciones |
Longitud de la instrucción | 14 bits |
Arquitectura | Harvard |
CPU | Risc |
Canales Pwm | 2 |
Pila Harware | - |
Ejecución En 1 Ciclo Máquina | - |
PROCEDIMIENTO
Se programa el pic con el código que a continuación se muestra y se conecta el circuito correspondiente:
CONTRET EQU 0X35
CONTRET1 EQU 0X36
ORG 0X00
GOTO INICIO
ORG 0X05
INICIO: BSF STATUS,RP0 ;BANCO 1
MOVLW 0Xff ;puerto b de entrada para las posiciones (botones en los primeros 4)
MOVWF TRISB
MOVLW 0XFF ;PONEMOS (REGISTRO DE PERIODO) CON VALOR DE 255 (CALCULADO POR FORMULA PARA CRIsTAL DE 2MHZ)
MOVWF PR2
BCF TRISC,0X02 ;PONEMOS RC2 DE SALIDA QUE ES POR DONDE SALEN LOS PULSOS (VA CONECTADO AL SERVOMOTOR)
BCF STATUS,RP0 ;banco 0
CALL CERO ;INICIALIZA EN CERO GRADOS
MOVLW 0X06
MOVWF T2CON ;ACTIVAMOS EL TIMER 2 PREESCALADOR 1 SOBRE 16
MAS: BTFSC PORTB,0X00
CALL PIMEDIOS
BTFSC PORTB,0X01
CALL PI
BTFSC PORTB,0X02
CALL CERO
BTFSC PORTB,0X03
CALL PICUARTOS
CALL RETARDO
GOTO MAS
PIMEDIOS: MOVLW 0X2F ;0111 1101
MOVWF CCPR1L ;MOVEMOS HSB A CCPR1L
MOVLW 0X2C ;-- 01 Y MODO PWM 11--
MOVWF CCP1CON ;MENOS SIGNIFICATIVOS BITS
RETURN
PI: MOVLW 0X3E ;1111 1011
MOVWF CCPR1L ;MOVEMOS HSB A CCPR1L
MOVLW 0X2C ;-- 00 Y MODO PWM 11--
MOVWF CCP1CON ;MENOS SIGNIFICATIVOS BITS
RETURN
CERO: MOVLW 0X1F ;0111 1101
MOVWF CCPR1L ;MOVEMOS HSB A CCPR1L
MOVLW 0X1C ;-- 01 Y MODO PWM 11--
MOVWF CCP1CON ;MENOS SIGNIFICATIVOS BITS
RETURN
PICUARTOS: MOVLW 0X23 ;0111 1101
MOVWF CCPR1L ;MOVEMOS HSB A CCPR1L
MOVLW 0X0C ;-- 01 Y MODO PWM 11--
MOVWF CCP1CON ;MENOS SIGNIFICATIVOS BITS
RETURN
RETARDO: MOVLW 0X50
MOVWF CONTRET
MOVWF CONTRET1
XX: DECFSZ CONTRET,F
GOTO XX
X: DECFSZ CONTRET1,F
GOTO X
RETURN
circuito:
CONCLUSIONES
Mediante el aprendizaje sobre el pwm de un microcontrolador y variándolo se consiguió posicionar con exactitud un servomotor en diferentes ángulos programados
No hay comentarios:
Publicar un comentario