j. La carcasa a utilizar será en acrílico por su bajo peso y costo. El diseño y la forma están por definir hasta el montaje total del carrito. Ésta influye en el consumo de potencia que al final tenga el seguidor.
k. El PIC elegido es el que hemos venido utilizando en el laboratorio, pues ya es conocido por nosotros y nos brinda los rendimientos que necesitamos para esta aplicación. De pronto el oscilador debería ser de una frecuencia un poco mayor, pero nos damos cuenta que tampoco es tan crítico este aspecto para el uso que le vamos a dar. El oscilador indicado debería ser más o menos del doble, generalmente a trabajar con un rango de frecuencias de 10MHz.
Figura 7. PIC 16f877A.
l. Por último, la elección del lenguaje a utilizar para programar el PIC, fue crítica puesto que en la materia hemos venido trabajando en lenguaje C y es muy fácil trabajar con él por su alto nivel. Sin embargo, como habíamos comenzado a trabajar en un diseño anterior que no nos dio y a último momento nos decidimos por trabajar el proyecto actual nos vimos abocados a pedir asesoría y basarnos en un programa previo que venía diseñado para un PC16F45A. Utilizamos el compilador CCS y miramos el código y de ahí nosotros desarrollamos nuestro propio código en ASSEMBLER directamente. No nos pareció necesario, es más, nos pareció innecesario pasarlo luego a C. por esta razón presentamos en ASSEMBLER el código, ya que de todas maneras así lo compila sobre el PIC.
INCLUDE "P16F877A.Inc" CBLOCK .12 aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9, aux10,aux11,aux12,CONTADOR,aux13,aux14,a ux15
Endc
ORG 00
GOTO INICIO ORG 05
INICIO bsf STATUS,RP0
clrf TRISB
movlw b'11111111'
movwf TRISA
bcf STATUS,RP0
CLRF PORTB CLRF PORTA movlw .4
movwf CONTADOR movlw b'00001111' movwf aux4
movlw b'00000110'
movwf aux5
movlw b'00000011'
movwf aux6
movlw b'00000001'
movwf aux7
movlw b'00000000'
movwf aux8
movlw b'00001100'
movwf aux9
movlw b'00001000' movwf aux10 movlw b'00000111' movwf aux11 movlw b'00001110' movwf aux12
CICLO movf PORTA,0 xorwf aux4,0 btfsc STATUS,2
GOTO ADELANTECON
movf PORTA,0 xorwf aux5,0 btfsc STATUS,2
GOTO ADELANTE
movf PORTA,0 xorwf aux6,0 btfsc STATUS,2
GOTO DERECHA
movf PORTA,0 xorwf aux7,0 btfsc STATUS,2
GOTO DERECHA
movf PORTA,0 xorwf aux8,0 btfsc STATUS,2
GOTO ATRAS
movf PORTA,0 xorwf aux9,0 btfsc STATUS,2
GOTO IZQUIERDA
movf PORTA,0 xorwf aux10,0 btfsc STATUS,2
GOTO IZQUIERDA
movf PORTA,0 xorwf aux11,0 btfsc STATUS,2
GOTO DERECHA
movf PORTA,0 xorwf aux12,0 btfsc STATUS,2
GOTO IZQUIERDA
GOTO CICLO
DERECHA
movlw b'00000101'
movwf PORTB
call pausa
movlw b'00000000'
movwf PORTB call pausa GOTO CICLO
IZQUIERDA
movlw b'00000110'
movwf PORTB
call PAUSA
movlw b'00000000'
movwf PORTB call PAUSA GOTO CICLO
ADELANTECON
movlw b'00000100'
movwf PORTB
call PAUSA2
DECFSZ CONTADOR,1
GOTO CICLO GOTO PARAR
ADELANTE
movlw b'00000100'
movwf PORTB
GOTO CICLO
atras movlw b'00001000'
movwf PORTB
GOTO CICLO
PAUSA movlw .1 movwf aux1 movlw .40 movwf aux2 movlw .40
movwf aux3 decfsz aux3,F GOTO $1 decfsz aux2,F GOTO $5 decfsz aux1,F GOTO $9
Return
PAUSA2 movlw .1 movwf aux13 movlw .250 movwf aux14 movlw .120 movwf aux15 decfsz aux15,F GOTO $1 decfsz aux14,F GOTO $5 decfsz aux13,F GOTO $9
Return
PARAR
CLRF PORTB
goto PARAR END
– Nos pudimos dar cuenta que es muy fácil realizar casi cualquier programa o montaje utilizando tanto lenguaje C como el ASSEMBLER, sabiendo de dónde partir y cuáles serán los objetivos propuestos.
– La compilación de todos los códigos deben pasar invariablemente a ASSEMBLER pero es mucho más fácil programar en lenguaje C, aunque a veces para afinar detalles se puede ir al código básico y realizarlo mejor.
– A la hora del montaje encontramos dificultades especialmente a la hora de calibrar nuestros motores aún utilizando los componentes más idóneos para el caso. Esta dificultad nos impidió presentar el proyecto en el tiempo señalado.
– Los sensores también fueron de alguna dificultad, aunque al final se lograron calibrar teniendo en cuenta los parámetros exactamente y con la mayor precisión posible.
– Nos queda con marcado interés la conclusión casi obvia de tener en cuenta los imprevistos a la hora de realizar cualquier montaje pues, aunque la electrónica digital es en sí bastante precisa al contrario de la analógica, siempre hay inconvenientes y retrasos, generalmente debidos al factor humano.
– También como en estos proyectos se combinan factores analógicos, mecánicos y digitales, esta confluencia hace aún más crítico el tiempo de preparación de los proyectos.
– Por último, al ir desarrollando el proyecto nos dimos cuenta de que hay muchísimas aproximaciones a un mismo problema y que es necesario tener en cuenta sobre todos dos aspectos: mínimo número de componentes y costos. Teniendo en cuenta estos factores se puede llevar a cabo un trabajo eficiente, sin tener en cuenta estos ítems se puede llevar a cabo un trabajo sólo eficaz.
Autor:
Luis Leonardo Rivera Abaúnza
UNIVERSIDAD DE IBAGUÉ
PROGRAMA INGENIERÍA ELECTRÓNICA
LABORATORIO DE ELECTRÓNICA DIGITAL III
Colombia, 18 de mayo de 2009
Página anterior | Volver al principio del trabajo | Página siguiente |