TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: ElizabethBathory en 21 de Agosto de 2010, 03:05:51
-
Hoola Todos!
Quisiera pedirles ayuda con un robot sumo que estoy construyendo.. no tengo mucha experiencia en el area y estoy bastante embolatada. basicamente mi robot estara conformado por un pic 16F84A, 2 bumpers, 1 CNY70, 2 Servos trucados para el giro continuoo..
ahora mis preguntas son las siguientes.. he leido que debo usar un puente H para controlar los motores asi que el L293 me podria servir?.. pero como debe ir conectado los servos a este driver L293?
dejo el codigo para que me hagan el favor de decirme sii tngo algun error.. gracias de antemano
;Mi primer Robot "Sumobot" :D
;Autor: Elii ^^
;Componentes Pic 16f84A,CNY70,Bumpers(2),Servomotores trucados(2)
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
#DEFINE SensorCNY70 PORTA,0 ;Sensor optico CNY70
#DEFINE SensorBumper1 PORTA,1 ;Sensor Bumper1= izquierdo
#DEFINE SensorBumper2 PORTA,2 ;Sensor Bumper2= derecho
ORG 0
Inicio
bsf STATUS,RP0 ; Seleccion banco 1 de registro
bsf SensorCNY70 ; Esta linea como entrada
bsf SensorBumper1 ; Esta linea como entrada
bsf SensorBumper2 ; Esta linea como entrada
clrf PORTB ; Puerto B como salida
bcf STATUS,RP0 ; Seleccion Banco 0 de registros
Principal
btfsc SensorCNY70 ; Comprueba el estado 0 del CNY70
goto Retroceder
btfss SensorCNY70 ; Comprueba el estado 1 del CNY70
goto Avanzar
btfsc SensorBumper1 ; Comprueba el estado 0 del bumper1
goto GiroIzquierda
btfsc SensorBumper2 ; Comprueba el estado 0 del bumper2
goto GiroDerecha
GiroDerecha
movlw b'00001000' ; Para girar a la derecha.
goto ActivaSalida
GiroIzquierda
movlw b'00000001' ; Para girar a la izquierda.
goto ActivaSalida
Retroceder
movlw b'00000110' ; Vuelta atrás
goto ActivaSalida
Avanzar
movlw b'00001111' ; Avanza
goto ActivaSalida
ActivaSalida
movwf PORTB
goto Principal
END
Nada hay bajo el sol, que no
-
Hola Elizabeth, bienvenida al forp
Si estas usando servos trucados no es necesario el Puente H, pues los servos se manejan mediante un pulso que por lo general va de 1 a 2 ms con una frecuencia de 50 Hz y se conectan directamente al PIC, cuidado con los colores de los terminales.
Cuando ya esta trucado al enviarle una señal de 1ms gira a su maxima velocidad para un lado y con 2ms a maxima velocidad para el otro, con un pulso de 1.5ms el servo no gira se mantiene en reposo, por ejemplo si le das 1.25ms gira a la mitad de velocidad y asi para valores intermedios. Algunos servos necesitan señales con tiempos diferentes, es cuestion de probar.
Aqui un link util
http://www.todopic.com.ar/foros/index.php?topic=4629.0
Saludos
-
hola Eli, veo que te has decidido por el Assembler, muy buena idea ;-)
Estas siguiendo algún tutorial? Te recomiendo que visites este foro http://www.todopic.com.ar/foros/index.php?topic=23623.0
Y este para aprender de ejemplos http://www.todopic.com.ar/foros/index.php?topic=12345.0
Por el tema del L293 es conveniente que te consigas la hoja de datos, por lo general encuentras algun ejemplo ahi mismo. http://www.st.com/stonline/books/pdf/docs/1328.pdf
Y tambien alguna nota de aplicación http://www.st.com/stonline/books/pdf/docs/1681.pdf
En el programilla que pones veo que no estas definiendo bien los pines de entrada y salidas. Este código lo has compilado ya?
LIST P=16F84A, ; usar PIC 16F84A
#include <p16f84A.inc>
__CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC ; code protec off
; power up timer on
; watchdog off
; osc XT
#DEFINE SensorCNY70 PORTA,0 ;Sensor optico CNY70
#DEFINE SensorBumper1 PORTA,1 ;Sensor Bumper1= izquierdo
#DEFINE SensorBumper2 PORTA,2 ;Sensor Bumper2= derecho
ORG 0
Inicio
BSF STATUS,5 ; activa la pagina 1
MOVLW B'00111' ; carga 00111 en W
MOVWF TRISA ; RA0, RA1, RA2 Entradas, las demas salidas
MOVLW B'00000000' ; carga 00000000 en W
MOVWF TRISB ; puerto B todos salidas
BCF STATUS,5 ; volvemos a la pagina 0
Principal
........
END ; fin de programa
Prueba de seguir los ejemplo que te señalaba antes e ir avanzando de a poco con simples programas para fijar bien los conceptos.
Saludos, Willy
-
Holaa chicos ^^ gracias por sus respuestas, leere el material y les estare comentando si surgio alguna duda. :g)
Bye! :P
P.D: Willy si ya lo compilé y aparentemente no tenia error.. genero el .H pero.. pues aun no lo he simulado por que tenia la duda de los servos.