Está en la página 1de 16

SEGUIDOR DE LUZ INTELIGENTE

Ignacio Olmedo

SEGUIDOR DE LUZ INTELIGENTE

Luciano Mulki Aguilera

Introduccin: Con el fin de incursionar en el mundo de los microcontrladores PIC, y mas especficamente en el manejo de motores paso a paso, nos propusimos el desafo de desarrollar un sistema que reuniera las herramientas del control de giro por pasos mediante pulsos y las del manejo de seales analgicas. De manera que as fuimos definiendo lo que sera un seguidor de luz inteligente, es decir, un sistema compuesto bsicamente por una LDR, un PIC y el motor paso a paso de una impresora, que llevara a cabo la funcin de sensar la cantidad de luz en un arco de giro, sobre un solo eje, y luego apuntar o posicionarse hacia el punto de mayor luz sensada. El sistema, as tambin, tiene la capacidad de establecer un lazo cerrado de control, ya que despus de posicionarse hacia el punto de mayor iluminacin estar chequeando que el valor de luz no cambie drsticamente, si lo hace, inicia un nuevo sensado y nuevo posicionamiento. Hardware: La electrnica del circuito que gobierna el proceso est compuesto por: - En primer lugar por el micro controlador de Microchip, el PIC16F873A. - El 74LS245 que es un buffer octal del tipo tres estados de 8 bits, para aislar el PIC de la carga que pueda representar las interfaces del motor y de los LEDs de visualizacin. - El ULN2003, (Arreglo de 7 Darlington integrados con diodos de descarga) que es un driver para el manejo de motores paso a paso con tensiones TTL, y hasta 50V de tensin de salida y 500mA.

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE

Configuracin de los pines del ULN2003

- LDR: El sensado se realiza a partir de un LDR tpica. La variacin de la tensin provocada por la variacin de la resistencia (LDR) en la rama colocada a en la entrada analgica AN0 del PIC, es transformada a valores digitales y va siendo comparada con el valor anterior obtenido,

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


quedndose as con el mayor valor, y relacionando ste con el nmero de pasos dados, colocar al motor nuevamente, en el paso en el cual, el PIC ley mayor valor de LUX.

- Motor paso a paso: El giro controlado se lleva a cabo a partir de un motor paso a paso unipolar (5 hilos) de impresora (PM35L048)

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE

Cabe destacar la caracterstica de que el motor utilizado es del tipo constructivo unipolar ya que la manera de excitar las bobinas es distinto al de los bipolares. Los dos motores son del tipo de imn permanente, pero veamos algunas diferencias importantes a la hora de disear al hardware y el software.

Bobinados motor unipolar bipolar

Bobinados motor

*Motor Unipolar: tiene 2 bobinados con punto medio, Los puntos 1 y 2 generalmente van a tensin positiva y se activan cada uno de los cuatro bobinados que quedan conectndolos a masa. *Motor Bipolar: tambin 2 bobinados pero sin puntos medios, es ms difcil de accionar ya que se necesitan puentes de transistores para manejar cada bobina. - Final de carrera: Se le incorpor a la estructura del dispositivo un interruptor construido a mano que consta de dos contactos metlicos que cumplirn el rol de interruptor final de carrera, es utilizado para dar lmite al giro en un sentido en el posicionamiento del sensor.

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE

Imagen del PCB de la plaqueta terminada con los componentes montados Software: Para el diseo del Software se parti de la idea de utilizar la poderosa herramienta que nos brinda el CONVERSOR A/D del PIC16F873A y esto combinarlo con la posibilidad que nos brindan los motores de conocer y controlar paso por paso sus avances. Entonces, se determin que lo que llevar a cabo el bloque del programa ser: - luego de posicionarse en el punto de inicio, esto con ayuda del final de carrera. - sensar la luz paso por paso, utilizando el ADRESH de la conversin. - comparar el valor del sensado con el del paso anterior, guardando el mayor valor, y el nmero de paso en el que se provoc el mayor valor. - de manera que al finalizar el recorrido con todos los pasos y los censados recurra al numero de paso guardado (en el que adquiri el mayor valor de luz) para posicionarse all. - luego, con el dato del mayor valor guardado realizar una comparacin, chequeando continuamente que el valor actual no descienda de un umbral constante establecido a partir del mayor valor posible, y estableciendo as un control de lazo cerrado, con la posibilidad de definir la sensibilidad del sensor por software. - adems, hubo que agregar bloques de programa que permitan disminuir el error en el posicionamiento, es decir un bloque que se encargue de administrar el energizado de las bobinas a partir del reconocimiento de pasos para que no haya errores en le precisin por saltos indeseados. A continuacin se presenta el cdigo fuente el cual fue escrito en lenguaje ensamblador con el editor y compilador del MPLAB y el pic quemado por puerto serie con el programador JDM y el software ICprog. list p=16f873A

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


#include <p16f873A.inc> datoA equ 31h datoB equ 32h datoC equ 33h medpas equ 34h reg equ 0x35 paraposfi equ 36h OPTION_REGequ 81h posision equ 0x20 mayor equ 0x21 mayorm equ 0x22 conscan equ 0x23 adgo equ 02h CARRY equ 00h posisionm equ 0x24 actual equ 0x25 indec equ 0x26 cambio equ 0x27 ultimini equ 0x28 ;-------------------------------------------------------------------------------------------------------------------------------reset org 00h goto start org 05h ;--------------------------------------------------------------------------------------------------------------------------------start movlw b'00000000' movwf mayor movlw b'00000000' movwf actual movlw b'00000000' movwf posision movlw b'00000000' movwf posisionm clrf reg movlw b'00000000' movwf medpas movlw b'00000000' movwf cambio movlw b'00000000' movwf conscan movlw b'00000000' movwf indec call inpto call ptoinicio call retardo call escaneo call guardo

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


;call ptoinicio call retardo call posfinal call test ;--------------------------------------------------------------------------------------------------------------------------------inpto bcf STATUS,RP1 bsf STATUS,RP0 clrf TRISA bsf TRISA,0 clrf TRISB clrf TRISC bsf TRISC,3 movlw b'00001110' movwf ADCON1 bcf STATUS,RP0 movlw b'01000001' movwf ADCON0 return

;--------------------------------------------------------------------------------------------------------------------------ptoinicio clrf conscan clrf posision bsf PORTC,5 clrw movwf PORTB btfss PORTC,3 return clrw movwf

PORTB

movlw b'00010000' movwf PORTB movlw b'00010000' movwf ultimini call retardo clrw movwf PORTB btfss PORTC,3 return movlw movwf movlw b'00100000' PORTB b'00100000'

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


movwf ultimini call retardo clrw movwf PORTB btfss PORTC,3 return movlw b'01000000' movwf PORTB movlw b'01000000' movwf ultimini call retardo clrw movwf PORTB btfss PORTC,3 return

movlw b'10000000' movwf PORTB movlw b'10000000' movwf ultimini call retardo clrw movwf PORTB btfss PORTC,3 return goto ptoinicio ;--------------------------------------------------------------------------------------------------------------------------------escaneo call CONVERCION bcf PORTC,5 bsf PORTC,6 movlw b'11111111';para que el siguiente paso sea desde 0 movwf posision loop clrw movwf PORTB clrc btfsc ultimini,4 goto jump

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE

deljump

rrf ultimini,1 movf ultimini,0 movwf paraposfi movf ultimini,0 movwf PORTB call CONVERCION clrw movwf PORTB call Medpaso movf medpas,0 movwf PORTB call CONVERCION

incf conscan,1 movf conscan,0 Sublw .32 btfsc STATUS,CARRY goto loop return Medpaso btfsc ultimini,7 goto medpaso1 btfsc ultimini,6 goto medpaso2 btfsc ultimini,5 goto medpaso3 btfsc ultimini,4 goto medpaso4 medpaso1 movlw movwf return movlw movwf return movlw b'11000000' ;192 medpas b'01100000';96 medpas b'00110000';48

medpaso2

medpaso3

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


movwf return medpaso4 movlw movwf return medpas b'10010000';144 medpas

jump

clrc rrf ultimini,1 clrc rrf ultimini,1 clrc rrf ultimini,1 clrc rrf ultimini,1 clrc rrf ultimini,1 goto deljump ;-------------------------------------------------------------------------------------------------------------------------------guardo movf posisionm,w movwf indec return ;--------------------------------------------------------------------------------------------------------------------------------posfinal movf ultimini,0 movwf paraposfi movf indec,0 sublw 0x40; son 64 los pasos para el semiciclo completo movwf reg movf paraposfi,0 ; lo unoc que le cambio para que no salte de scan a ;posfinalcomo del scan sale siempre con mediopaso movwf PORTB; repito el ultimo paso completo q se ejecuto en escaneo ;que es el que le sigue para volver call retardo decfszreg,1 delmedio btfsc paraposfi,7 goto jump2

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE

deljump2

rlf

paraposfi,1

movf paraposfi,0 movwf PORTB call retardo decfszreg,1 ;incfszindec,1 goto Medpaso2 return Medpaso2 btfsc paraposfi,7 goto medpaso42 btfsc paraposfi,6 goto medpaso12 btfsc paraposfi,5 goto medpaso22 btfsc paraposfi,4 goto medpaso32 goto delmedio medpaso12 movlw b'11000000' ;192 movwf PORTB call retardo decfszreg,1 ;incfszindec,1 goto delmedio return medpaso22 movlw movwf b'01100000';96 PORTB

call retardo decfszreg,1 ;incfszindec,1 goto delmedio return medpaso32 movlw movwf b'00110000';48 PORTB

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


call retardo decfszreg,1 ; incfsz indec,1 goto delmedio return medpaso42 movlw b'10010000';144 movwf PORTB call retardo decfszreg,1 ; incfsz indec,1 goto delmedio return

jump2 rlf rlf rlf rlf rlf paraposfi,1 paraposfi,1 paraposfi,1 paraposfi,1 paraposfi,1

goto deljump2 ;--------------------------------------------------------------------------------------------------------------------------------CONVERCION incf posision,1 call retardo call retardo ADCON0,adgo btfsc ADCON0,adgo goto espera movf ADRESH,W movwf actual subwf mayor,0 ; mayor-actual btfss STATUS,CARRY call gmyp0 clrc return ;--------------------------------------------------------------------------------------------------------------------------------gmyp0 movf posision,w movwf posisionm movf actual,0 movwf mayor espera bsf

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


return ;--------------------------------------------------------------------------------------------------------------------------------sinsalto ;--------------------------------------------------------------------------------------------------------------------------------retardo movlw b'01000001' movwf datoB delay2 movlw b'11111111' movwf datoA delay1 decfszdatoA,1 goto delay1 decfszdatoB,1 goto delay2 return ;--------------------------------------------------------------------------------------------------------------------------------retardo2 movlw b'11111111' movwf datoB delay22 movlw b'11111111' movwf datoA delay12 decfszdatoA,1 goto delay12 decfszdatoB,1 goto delay22 return ;--------------------------------------------------------------------------------------------------------------------------------test bcf PORTC,6 bsf PORTC,7 movlw b'00000000' movwf indec movlw b'00000000' movwf cambio movlw movwf call clrf bsf btfsc goto movf b'00000000' PORTB

espera1

retardo2 posisionm ADCON0,adgo ADCON0,adgo espera1 ADRESH,w

movwf cambio bcf PORTC,7 incf cambio,1 incf cambio,1

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf incf sensibilidad de 0.3V cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1 cambio,1; incremento 30 unidades para una

movf mayor,w subwf cambio,0 ; cambio-mayor btfss STATUS,CARRY; goto reset goto test end ;si el valor nuevo de la conversin ; es menor que el 10%;del ultimo mayor valor reinicia ; y escanea Conclusin: Finalmente, el dispositivo fue ensayado probando seguir la luz de una luminaria tipo velador con una lmpara incandescente de 75W, pero estamos firmemente convencidos, de que puede seguir fielmente cualquier fuente de luz, incluso la solar. Y aunque no se trate de fuentes puntuales de luz, al ser un sistema inteligente, buscar la posicin donde capte mayor iluminancia. Tambin se puede notar el hecho de que al disponer de un sistema de control automtico, el aparato sabr sortear los errores por saltos y vibraciones,

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

SEGUIDOR DE LUZ INTELIGENTE


posicionndose correctamente aunque no fuera en el primer intento.

Ignacio Olmedo y Luciano Mulki Aguilera (Ingeniera Electrnica)

También podría gustarte