Вы находитесь на странице: 1из 21

UNIVERSIDAD TECNOLGICA DE CAMPECHE

Titulo de la prctica Control de servomotor con sensores

Integrantes Sergio Jhavet Jasso Gonzlez Luis Joen Chagala Santana Geiner David Chan Graniel

Materia Micro controladores para la Automatizacin y control

Profesor Isidro Javier Domnguez

Grado y Grupo 5C

Fecha de entrega 2012-03-20

Introduccin

Un Servo es un dispositivo pequeo que tiene un eje de rendimiento controlado. Este puede ser llevado a posiciones angulares especficas al enviar una seal codificada. El control de posicin lo efecta el servo internamente mediante un potencimetro que va conectado mecnicamente al eje de salida y controla un PWM (modulador de anchura de pulsos) interno para as compararlo con la entrada PWM externa del servo, mediante un sistema diferencial, y asi modificar la posicin del eje de salida hasta que los valores se igualen y el servo pare en la posicin indicada, en esta posicin el motor del servo deja de consumir corriente y tan solo circula una pequea corriente hasta el circuito interno, si forzamos el servo (moviendo el eje de salida con la mano) en este momento el control diferencial interno lo detecta y enva la corriente necesaria al motor para corregir la posicin.

Objetivo

Controlar la posicin de un servomotor con sensores pticos aplicando un pulso de duracin y frecuencia especfica.

Marco terico

servo motor

Un Servo es un dispositivo pequeo que tiene un eje de rendimiento controlado. Este puede ser llevado a posiciones angulares especficas al enviar una seal codificada. Con tal de que una seal codificada exista en la lnea de entrada, el servo mantendr la posicin angular del engranaje. Cuando la seal codificada cambia, la posicin angular de los piones cambia. En la prctica, se usan servos para posicionar superficies de control como el movimiento de palancas, pequeos ascensores y timones. Microcontrolador

Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completo en un solo circuito integrado. Sensor ptico (CNY-70)

El CNY70 es un sensor de infrarrojos de corto alcance basado en un emisor de luz y un receptor, ambos apuntando en la misma direccin, y cuyo funcionamiento se basa en la capacidad de reflexin del objeto, y la deteccin del rayo reflectado por el receptor. Resistencia

Se denomina resistor al componente electrnico diseado para introducir una resistencia elctrica determinada entre dos puntos de un circuito. Fuente de alimentacin

En electrnica, una fuente de alimentacin es un dispositivo que convierte las tensiones alternas de la red de suministro, en una o varias tensiones, prcticamente continuas, que alimentan los distintos circuitos del aparato electrnico al que se conecta. Posicin

La posicin de una partcula indica su localizacin en el espacio o en el espacio-tiempo. Se representa mediante sistemas de coordenadas. En general, en un sistema fsico o de otro tipo, se utiliza el trmino posicin para referirse al estado fsico o situacin distinguible que exhibe el sistema. As es comn hablar de la posicin del sistema en un diagrama que ilustre variables de estado del sistema.

Especificaciones

Material

Ficha tcnica

justificacin

Sistema de control:

1500s neutra 4.8V ~ 6.0V (DC)

Servomotor

Voltaje de operacin:

(vigor-vts05a)

ETS Direccin: Hacia la izquierda / pulso viaja 800 a 2200 microsegundos. a prueba de tensin: Velocidad de operacin: 0.17sec/60 sin carga Stall torque: 1.2kgf.cm (16,66 g / cm) Salida de ngulo Corriente de: Corriente de parada: Ancho de Banda muerta a 4,8 V en 6,0 V 0.19sec/60 sin carga

1.0kgf.cm (13,89 g / cm)

170 0,25 A 0.7A 5sec

La seleccin de este servomotor fue por motivos econmicos ya que este servo motor se encuentra entre los ms econmicos de su categora. El servo esta dentro de las necesidades para la prctica de censar 9 posiciones adems es capaz de mover los sensores ,resistencias y la placa dndonos una gran ventaja frente a la competencia La seleccin de este microcontrolador fue a la cantidad de entradas y salidas este PIC nos proporciono dicha capacidad, la cantidad de registros a manejar adems de que tenamos memoria suficiente para la programacin.

PIC (microchip 16f84a)


1024 palabras de memoria de programa 68 bytes de RAM de datos 64 bytes de datos EEPROM 14-bit de ancho palabras de instruccin 8 bits de ancho bytes de datos 15 registros de funciones especiales de hardware Ocho de nivel de pila de hardware profunda - Pin RB0/INT externa - Desbordamiento del temporizador TMR0 - PORTB <07:04> interrupciones en el cambio - EEPROM de datos de escritura completa

Material

Ficha tcnica

Justificacin

CNY-70

La seleccin de este tipo de sensor ptico se debi a la amplia gama de informacin y mtodos de implementacin adems de que es muy respetado frente a sus rivales como el tcrt500 que es ms complicado de instalar

Capacitor

Categora: Cermica> Disco capacidad: 22uF Tensin nominal: 1000 V la tolerancia: 10 Temperatura de servicio: N750 Arte del nmero de MA506-4MHz Circuitos de temporizacin Categora => Osciladores => Crystal / Cuarzo Osciladores Descripcin de Cristal SMD 12.000000mhz Empresa N.D.

El microcontrolador exige el uso de estos capacitores para funcionar adecuadamente El microcontrolador exige el uso de estos capacitores para funcionar adecuadamente adems 4mhz es el clculo del PIC Se escogi este cargador debido ala salida de voltaje que se obtiene ya que es la optima para el trabajo del PIC y a su vez alimenta el motor.

Oscilador

Fuente de alimentacin
( LG STAU34ER/U33ER)

Entrada: DC 110-220Vca Fabricante: LG Del fabricante # parte: CLA-305 / SGCC0003402 Embalaje: A granel, envasado en bolsas de polietileno Salida: 5.1V/700mA

Diagrama

Descripcin

En este diagrama podemos observar la manera en que va conectador el


microcontrolador Datos de entrada: Desde RB0 hasta RB7 Datos de salida: RA0 Pin 5: VSS Pin 14: VDD Pin 15: crystal oscilador Pin 16: crystal oscilador

Procedimiento

La posicin de un servo motor est determinada por el ancho del pulso que se aplica a su pin de control. En el caso del motor vigor- vts05a la posicin de 0 se consigue con un pulso de 800ms, la posicin de 90 se consigue con un pulso de 1500ms, la posicin de 180 se consigue con un pulso de 2200ms. Con los datos del servomotor listos procedemos a elaborar un diagrama de flujo el cual nos ayudara a guiarnos para realizar el programa para el microchip, este diagrama de flujo es hecho en el programa nipple el cual nos va a generar un archivo con lenguaje ensamblador para despus compilarlo y quemarlo en el microchip. Primero que nada en la programacin se deben declarar nuestros puertos de entrada para los cuales utilizamos el portB , como puerto de salida utilizamos el portA como salida , en esta salida ira conectada al pin3(naranja) del servomotor y mandaremos dichos pulsos y visualizaremos el movimiento del servo . Los sensores son CNY70 El fotodiodo se encarga de emitir luz cuya intensidad es funcin de la resistencia que pongamos en serie con l y la tensin a la que le alimentemos. El fototransistor se encarga de recibir esta luz cuando se refleja sobre alguna superficie, y dependiendo de la cantidad de luz recibida trabaja en sus distintas regiones y pasa ms o menos intensidad por l. Por lo que podemos detectar distintas superficies en funcin de la luz que reflejen, y as es como seguimos una lnea negra sobre un fondo blanco, o viceversa. Cuando el sensor se encuentre sobre la parte negra (la lnea) esta absorber gran parte de la luz emitida por el diodo, por lo que nuestro transistor estar en corte y apenas tendremos intensidad a travs de ste, cuando el sensor se sita sobre una superficie blanca, gran parte de la luz emitida por el diodo ser reflejada al fototransistor, pasando ste de su regin de corte a la de activa o saturacin y teniendo una intensidad bastante mayor. Cada vez que los sensores 1, 2,3 (sensores principales) estn mandando 1 el servomotor debe estar siempre en 90, en caso de que uno de estos sensores se apague y un sensor auxiliar mande 1 el micro debe mandar un tren de pulsos para corregir su posicin.

Conclusin

El control de posicin lo efecta el servo internamente mediante un PWM, La posicin de un servo motor est determinada por el ancho del pulso que se aplica a su pin de control. En el caso del motor vigor- vts05a la posicin de 0 se consigue con un pulso de 800ms, la posicin de 90 se consigue con un pulso de 1500ms, la posicin de 180 se consigue con un pulso de 2200ms.

Seales

ANGULO 180

ANGULO 90

Cdigo del programa ;-----------------------------------------------------------; Cdigo assembler generado por Niple V5.2.0 ; Proyecto: sensor 9 ; Autor: ; Fecha: 20/03/2012 ; PIC: 16F84A ; Velocidad de reloj: 4 Mhz ; Descripcion: ;-----------------------------------------------------------LIST P=PIC16F84A

_XT_OSC _WDT_OFF _PWRTE_ON _CP_OFF

equ 0x3FFD equ 0x3FFB equ 0x3FF7 equ 0x3FFF

__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF ;-----------------------------------------------------------; Declaracin de Registros

;-----------------------------------------------------------w status porta equ 0x0000 equ 0x0003 equ 0x0005

portb pclath _np_tiempo _np_tiempo1 _np_tiempo2 trisa trisb

equ 0x0006 equ 0x000a equ 0x000e equ 0x0010 equ 0x0011 equ 0x0085 equ 0x0086

;-----------------------------------------------------------; Declaracin de Bits

;-----------------------------------------------------------c ra0 ra3 rb0_int rb1 rb2 rb3 rb4 rb5 rb6 rb7 rp0 rp1 z equ 0 ;carry / borrow bit equ 0 ;bit 0 del puerto a equ 3 ;bit 3 del puerto a equ 0 ;bit 0 del puerto b equ 1 ;bit 1 del puerto b equ 2 ;bit 2 delpuerto b equ 3 ;bit 3 del puerto b equ 4 ;bit 4 del puerto b equ 5 ;bit 5 del puerto b equ 6 ;bit 6 del puerto b equ 7 ;bit 7 del puerto b equ 5 ;registrer bank select bit equ 6 ;registrer bank select bit equ 2 ;bit cero

;-----------------------------------------------------------; Inicio

;------------------------------------------------------------

reset org 0 goto paso2 ;-----------------------------------------------------------; programa principal

;-----------------------------------------------------------paso2 movlw b'11111111' eeeeeeee bsf status,rp0 movwf trisb movlw b'00000000' xxxsssss movwf trisa paso4 nop bcf status,rp0 btfsc portb,rb0_int goto paso10 bsf porta,ra0 movlw .80 call tiempo_10_1000_uc ;temporizador 800 use ;cambiar a banco 0 ;si el bit rb0_int = 1 ;configurar el puerto a como ;configurar el puerto b como ;cambiar a banco 1

bcf porta,ra0 movlw .19 call tiempo_1_100_mc movlw .20 call tiempo_10_1000_uc goto paso4 paso10 btfsc portb,rb1 goto paso15 bsf porta,ra0 movlw .97 call tiempo_10_1000_uc nop nop nop nop nop bcf porta,ra0 movlw .19 call tiempo_1_100_mc movlw .2 call tiempo_10_1000_uc nop nop ;temporizador 19025 use ;fin del temporizador 975 use ;temporizador 975 use ;si el bit rb1 = 1 ;cierra el ciclo ;temporizador 19200 use

nop nop nop goto paso4 paso15 btfss portb,rb2 goto paso20 bsf porta,ra0 movlw .1 call tiempo_1_100_mc movlw .15 call tiempo_10_1000_uc bcf porta,ra0 movlw .18 call tiempo_1_100_mc movlw .85 call tiempo_10_1000_uc goto paso4 paso20 btfss portb,rb3 goto paso31 bsf porta,ra0 movlw .1 call tiempo_1_100_mc ;temporizador 1325 use ;si el bit rb3 = 0 ;cierra el ciclo ;temporizador 18850 use ;temporizador 1150 use ;si el bit rb2 = 0 ;fin del temporizador 19025 use ;cierra el ciclo

movlw .32 call tiempo_10_1000_uc nop nop nop nop nop bcf porta,ra0 movlw .18 call tiempo_1_100_mc movlw .67 call tiempo_10_1000_uc nop nop nop nop nop btfss porta,ra3 goto paso20 paso26 btfss portb,rb4 goto paso31 bsf porta,ra0 movlw .1 ;temporizador 1500 use ;si el bit rb4 = 0 ;fin del temporizador 18675 use ;si el bit ra3 = 0 ;cierra el ciclo ;temporizador 18675 use ;fin del temporizador 1325 use

call tiempo_1_100_mc movlw .50 call tiempo_10_1000_uc bcf porta,ra0 movlw .18 call tiempo_1_100_mc movlw .50 call tiempo_10_1000_uc goto paso4 paso31 btfss portb,rb4 goto paso36 bsf porta,ra0 movlw .1 call tiempo_1_100_mc movlw .67 call tiempo_10_1000_uc nop nop nop nop nop bcf porta,ra0 movlw .18 ;temporizador 18325 use ;fin del temporizador 1675 use ;temporizador 1675 use ;si el bit rb4 = 0 ;cierra el ciclo ;temporizador 18500 use

call tiempo_1_100_mc movlw .32 call tiempo_10_1000_uc nop nop nop nop nop goto paso26 paso36 btfss portb,rb5 goto paso41 bsf porta,ra0 movlw .1 call tiempo_1_100_mc movlw .85 call tiempo_10_1000_uc bcf porta,ra0 movlw .18 call tiempo_1_100_mc movlw .15 call tiempo_10_1000_uc goto paso4 paso41 ;cierra el ciclo ;temporizador 18150 use ;temporizador 1850 use ;si el bit rb5 = 0 ;fin del temporizador 18325 use ;cierra el ciclo

btfsc portb,rb6 goto paso46 bsf porta,ra0 movlw .2 call tiempo_1_100_mc movlw .2 call tiempo_10_1000_uc nop nop nop nop nop bcf porta,ra0 movlw .17 call tiempo_1_100_mc movlw .97 call tiempo_10_1000_uc nop nop nop nop nop goto paso4 paso46

;si el bit rb6 = 1

;temporizador 2025 use

;fin del temporizador 2025 use

;temporizador 17975 use

;fin del temporizador 17975 use ;cierra el ciclo

btfsc portb,rb7 goto paso4 bsf porta,ra0 movlw .2 call tiempo_1_100_mc movlw .20 call tiempo_10_1000_uc bcf porta,ra0 movlw .17 call tiempo_1_100_mc movlw .80 call tiempo_10_1000_uc goto paso4

;si el bit rb7 = 1 ;cierra el ciclo

;temporizador 2200 use

;temporizador 17800 use

;cierra el ciclo

;-----------------------------------------------------------; Declaracin de Subrutinas

;------------------------------------------------------------

tiempo_1_100_mc movwf _np_tiempo goto tiempo_1_100_mc_1 tiempo_1_100_mc_bucle1 nop nop nop

nop nop nop nop tiempo_1_100_mc_1 movlw .246 movwf _np_tiempo1 tiempo_1_100_mc_bucle2 nop decfsz _np_tiempo1,1 goto tiempo_1_100_mc_bucle2 nop nop nop nop nop decfsz _np_tiempo,1 goto tiempo_1_100_mc_bucle1 return

tiempo_10_1000_uc movwf _np_tiempo goto tiempo_10_1000_uc_10

tiempo_10_1000_uc_bucle nop nop nop nop nop nop nop tiempo_10_1000_uc_10 decfsz _np_tiempo,1 goto tiempo_10_1000_uc_bucle return

End