TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: halowin en 24 de Junio de 2008, 11:47:05
-
Buenas.
Ya acabé mi primer proyectillo del coche que avanza y si choca retrocede sucesivamente.
Lo he hecho con un 16F84A, 2 bumpers para detectar el choque delantero y otro el trasero, un driver L293B que da la potencia a un motor DC, pero tengo un problema frustrante:
¡¡¡ El motor no responde a los estímulos de los bumpers !!!
Para asegurarme de que todo está bien, he puesto a la salida del driver dos leds con sus resitencias y éstos detectan los bumpers perfectamente, cambiando de uno a otro la luz según choca por delante o por detras.
El motor funciona bien ya que empieza avanzando, pero no cambia con los choques.
Alguna ayudita...
-
Hola halowin, tendrías que poner el código y el esquema para que te pudiéramos ayudar.
-
Hola jfmateos aqui dejo el codigo, veré como dejo el esquema:
;----------------------------------------------------------
List p=16F84
;----------------------------------------------------------
;cabecera standar
;----------------------------------------------------------
PORTA EQU 5
PORTB EQU 6
TRISA EQU 5
TRISB EQU 6
STATUS EQU 3
INTCON EQU 0x0B
TMR0 EQU 1
OPTION_R EQU 1
W EQU 0
F EQU 1
SENTI EQU 0x0C ;sentido del giro 01 o 10 RB1,RB2
;-----------------------------------------------------------
;zona reset
;-----------------------------------------------------------
ORG 0
GOTO INIC
ORG 5
;-----------------------------------------------------------
;configura PORTB de salida y PORTA de entrada
;-----------------------------------------------------------
INIC BSF STATUS,5 ;bit 5 de STATUS a 1=banco 1
CLRF TRISB ;PORTB de salida
MOVLW b'00000011' ;PORTA de entrada
MOVWF TRISA ;RA0,RA1 entradas, resto salidas
BCF STATUS,5 ;banco 0
;------------------------------------------------------------
;;Habilito el driver L293B sacando 1 por RB3
;;------------------------------------------------------------
MOVLW b'00001010' ;habilito L293B RB3=1 y avanza
MOVWF SENTI ;avanza: RB2=0 RB1=1
CALL MUEVE
;;------------------------------------------------------------
;bucle infinito testeando RA0 y RA1
;------------------------------------------------------------
TESTA BTFSS PORTA,0 ;choco por alante ? (RA0 choque delantero 1=si 0=no)
GOTO TESTB
;CALL PAUSA ;no se usa
BAJA_A BTFSC PORTA,0
GOTO BAJA_A
CALL CHG
TESTB BTFSS PORTA,1 ;choco por atras ?
GOTO TESTA
;CALL PAUSA
BAJA_B BTFSC PORTA,1
GOTO BAJA_B
CALL CHG
GOTO TESTA
CHG MOVF SENTI,0
XORLW b'00000110' ;cambio sentido
MOVWF SENTI
CALL MUEVE
RETURN
MUEVE MOVF SENTI,0 ;W
MOVWF PORTB
RETURN
PAUSA
;-------- pausa 40ms ----
MOVLW .100
MOVWF TMR0
BSF STATUS,5 ;banco 1
MOVLW b'00000111' ; prescaler 256*156=39936 us
MOVWF OPTION_R
BCF STATUS,5 ;banco 0
DESBO BTFSS INTCON,2
GOTO DESBO
BCF INTCON,2 ;restablezco flag
RETURN
;------------------
END
-
El esquema:
Lo intento copiar y pegar aqui pero no se puede, no se como hacerlo para dejarlo aqui.
-
Carga la imagen en un host gratuito, como imageshack.us... imageshack te da un link, lo copias y luego le das a este ícono: (http://www.todopic.com.ar/foros/Themes/babylon/images/bbc/img.gif)
Entre los dos pares de corchetes que aparecerán pegas el link y listo, tu imagen se verá en el mensaje.
La otra opción es que comprimas el archivo de proteus en un .rar y lo adjuntes.
Ok saludos, nos leemos! :mrgreen:
P.D. Acabo de recordar que me parece haber visto por alguna parte un hilo "Cómo subir imágenes" o algo así... creo que en el subforo "Funcionamiento de Todopic"... puedes pasearte por allí a ver si lo consigues.
-
A la tarde dejaré el esquema.
Con respecto a que no respondía el motor a los estímulos, he de deciros que en vez del motorcillo con el que estaba probando lo he cambiado por un FUTABA y funciona al 100%.
¿ A qué se debe eso ?
-
Hola.
He dejado el "ESQUEMA.BMP" en MEGAUPLOAD: hay que meter 3 letras y esperar 45 segundos o viceversa.
http://www.megaupload.com/?d=6UJU7AQH
Como vereis no esta ni en Proteus ni Eagle ni nada de eso, con el Paint a palo seco.
Voy a intentar dejarlo tambien en el almacen del foro, si lo consigo irá con el mismo nombre pero .rar.
NOTA:
1.- Los pines (18 RA1 y 17 RA0 llevan dos bumpers con la pata común al PIC, la otra a +5v y la otra a masa.
Funciona perfectamente, solo me falta que alguien me explique porque el motor DC gira bien pero no responde a los cambios y el FUTABA si lo hace.
Gracias.
-
Aqui lo dejo, quizas sea mas facil el acceso.
Un saludo
-
Por favor
Alguien me puede explicar porque no me funciona con el motor normal y SI con el Futaba.
El esquema y el programa ya están en este hilo.
Gracias.
-
Los bumper donde los has puesto???
si es depués de la resistencia de 10k conectada a 5V (entre el pin y la reistencia) al tener el divisor de tensión en la entrada del pin con las dos resistencias iguales, al pin le llegan unos 2.5V. NO SE, NO ES FIJO, pero puede que tengas un prolema de tensiones. Revisa el datasheet del pic para ver que te reconozca los 2.5V como un "1" lógico.
Otra cosa que puede ser es que el motor que has puesto consuma más que el futaba y tengas la fuente de alimentación demasido justa con lo que no de suficiente corriente.
Las dos respuestas que te he dado son posibles, nada fijo. Estoy en el curro y sólo lo he visto por encima. Cuando tenga tiempo intento mirarlo más a fondo (si no te han contestado antes :mrgreen:)
Un saludo y suerte!!!
-
Aqui dejo la conexion de los bumpers.
La misma estructura para el choque delantero y trasero.
La pata común entran en (18=RA1 y 17=RA0)
Puede que el esquema "esquema.bmp" llame a confusión, pero es como os comento en este "bumper.bmp"
Saludos.
-
El esquema lo tienes bien.
Si puedes puede a poner una fuente de alimentacion para el motor y otra para el cicuito.
Puede ser por que el motor meta mucho ruido y al pic se le vaya la pinza o corriente.
Lo del ruido a mi me pasó la solución teórica es ponerle un condensador
-
trabajas con pics y motores es un verdadero dolor de cabeza; ojalá microchip desarrolle algo al respecto. Te recomiendo como comoenta slalen alimentaciones independientes, aunque no vendría mal añadir uns optos para aislar potencia y control
-
Los optos no son necesarios al usar el L293, lo único un filtro en la fuente para eliminar ruidos.
Microchip seguramente tenga algún driver estilo el L293, pero seguro que es más barato hacerlo por tu cuenta.