circuito para hacer que un carrito avance, de vuelta

#1
Hola soy nuevo en el foro, estoy estudiando electronica y me encargaron armar un circuito y montarlo en un carrito de juguete, basicamente el programa y el circuito tiene que hacer que avance el carrito y con un sensor detectar un objeto retroceder y dar vuelta, y repetir la tarea cada que encuentre un objeto en frente de el...tengo que usar un PIC F1684A

tengo hecho un programa que hasta ahora solo arranca el motorcito pero estoy bloqueado para que el programa haga las demas funciones, de antemano agradezco cualquier ayuda que me proporcionen

;Este programa enciende un LED una vez (al encender el led enciende el motor)

processor 16f84a
include <p16f84a.inc>
__config _XT_OSC & _WDT_OFF & _PWRTE_ON

ORG 0 ;INICIA EN DIRECCION CERO

BSF STATUS,RP0 ;SELECCIONA REGISTROS BANCO 1
MOVLW B'11111111' ;CONFIGURA PUERTO A
MOVWF TRISA

MOVLW B'00000000' ;CONFIGURA PUERTO B
MOVWF TRISB

BCF STATUS, RP0 ;SELECCIONA REGISTROS DE BANCO CERO


INICIO CLRF PORTB
CHECK BTFSC PORTA,2
GOTO CHECK
BSF PORTB,4
END
 
#3
gracias por el link voy a conseguir el motor cd...ya se que es mucho pedir...pero acabo de empezar con el proyecto...y necesito un diagrama del circuito lo mas parecido a mis necesidades, para verificarlo en el protoboard e ir haciendo las modificaciones necesarias....gracias de nuevo!!
 
#4
usa el modulo de potencia l293d q es para q puedas dar los sentidos a tus motores y hacer q el robot retroceda, gire, avanse.
dps cn el tema de lso obstaculos puedes usar un led infrarrojo y un reseptor... y listo... :)
Saludos
espero te sirba
 
#5
lo unico que necesitas en realidad es hacer un programa sencillo, el PIC puede hacer todo el trabajo.

en pseudocodigo el programa hace esto

inicio
declara variables (tres para el contador, a,b,c, dos para los motores, i, d, y una para el tiempo)
inicializa registros (puerto A (pa) puerto B (pb))
Configuración
puerto A como entradas (solo se usa una, por ejemplo PA0, el resto pueden ir como salidas para evitar errores)
Puerto B como salidas (solo se usan cuatro para controlar dos motores)

inicio programa
manda a puerto B la orden de avanzar (pon el nibble binario 0101 en las 4 lineas que uses para controlar los motores)
inicio de ciclo
lee el puerto A, si no hay nada (manda estado alto en el circuito que tenemos), no hagas nada
si encuentras un valor de 0 (el switch esta presionado), salta a la rutina bump
regresa al ciclo
para (pon tu nibble en 0000)
configura tus contadores (carga el valor 255 en cada uno, y ejecuta un codigo de retardo)
reversa (nibble 1010)
ejecuta codigo de retardo
para (0000)
gira (nibble 1001 o 0110 de acuerdo a si quieres que gire a la izquierda o derecha)
ejecuta codigo de retardo
para (0000)
regresa al inicio del programa

y el codigo fuente te lo mando si necesitas mas ayuda mas tarde.
el circuito es el que anexo
el "patigrama" del circuito lo tienes que buscar, ya que no recuerdo los numeros de los pines, (te puedo decir que el L293D lo tienes que conectar de esta forma, los 4 pines mas externos (los de las esquinas) van al positivo, son el poder para el circuito, los motores, y dos pines de "enable" que activan el circuito.
los cuatro pines mas centrales (dos de cada lado) van a negativo, son tierras.
los cuatro pines que les siguen, (los mas pegados a las tierras) son las salidas a los motores
y los cuatro pines que quedan, son las entradas de control digital
el PIC tiene su alimentación al centro, (no recuerdo cual es el positivo y cual es el negativo).
espero que te sirva de ayuda.
 

Adjuntos

Temas similares