te gusta este proyecto

miércoles, 15 de diciembre de 2010

REPORTE DE LA PRACTICA 4

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.

CARACTERISTICAS

En siguiente tabla de pueden observar las características más relevantes del dispositivo:


CARACTERÍSTICAS
16F877
Frecuencia máxima
DX-20MHz
Memoria de programa flash palabra de 14 bits
8KB
Posiciones RAM de datos
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