amigo mio: yo no soy un experto en programacion pero con pic basic es muy simple fijate en el foro hay un tutorial.Me gustaría hacer este proyecto pero creo que me quedaría en la programación
bueno, despues de depurar un poco de soft para que el robot siga un az de luz, estoy aqui para dejarles el codigo en pbp y el hexa para cargar al pic. el codigo en pbp, esta explicado linea por linea, asi que creo que lo van a entender bien y seguramente, lo podran modificar segun sus propias ideas.
lo que hace el programa, es que el robot este parado mientras no haya luz, si la luz llega a la fotoresistencia deredha, el robot gira a la izquierda, si da en la fotoresistencia izquierda, el robot gira a la derecha. y por ultimo, si la luz da en ambas fotoresistencias, el robot va hacia la luz.
es un programita simple, como para empezar a hacer que nuestro bot se mueva. mañana subire un video para mostrar como funciona el mio.
saludos y espero les sea de utilidad.
Código:
'****************************************************************
'* Name : luzadicto.bas *
'* Author : Cesar Dario Quinteros *
'* Notice : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 28/03/2011 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
'configuracion de fuses
@ DEVICE MCLR_OFF, INTRC_OSC, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
CMCON = 7 ' desactivo el convertidor AD del puerto A
TrisA=%11111111 'todo el port A como entrada
TrisB=%00000000 'todo el port B como salida
PORTA = %11111111 'todo el port A en 1
PORTB = %00000000 'todo el port B en 0
resder var byte 'variable para guardar el valor del ldr derecho
resizq var byte 'variable para guardar el valor del ldr izquierdo
b2 var byte 'variable de comparacion
start: 'etiqueta star, inicia el programa
pot porta.6, 255,resder 'lee la ldr conectada en porta 6 y guarda el valor en resder
pot porta.7, 255,resizq 'lee la ldr conectada en porta 7 y guarda el valor en resizq
If resder and resizq >80 then adelante 'si resder y resizq tienen valor mayor a 80, ir a etiqueta adelante
if resder > resizq then izquierda 'si resder es mayor a resizq, ir a etiqueta izquierda
if resizq > resder then derecha 'si resizq es mayor a resder, ir a etiqueta derecha
if resizq and resder <= 80 then pare ' si resizq y resder son menores o iguales a 80, ir a etiqueta pare
pare: ' etiqueta pare
PORTB = %00000000 'todo el puerto b en 0
goto start 'vuelve a start
adelante: 'etiqueta adelante
portb = %00001001 'port B 0 y port B 3 a 1 ir adelante
goto start 'vuelve a start
izquierda: 'etiqueta izquierda
b2 = resder-resizq 'b2 es igual a resder menos resizq
if b2 > 15 then left1 'si b2 es mayor a 15 ir a left1
goto adelante 'ir a etiqueta adelante
left1: 'etiqueta left1
portb = %00001010 'port B 1 y port B 3 a 1 giro hacia la izquierda
goto start 'vuelve a start
derecha: 'etiqueta derecha
b2 = resizq-resder 'b2 es igual a resizq menos resder
if b2 > 15 then right1 'si b2 es mayor a 15, ir a etiqueta right1
goto adelante 'ir a etiqueta adelante
right1: 'etiqueta right1
portb = %00000101 'port B 0 y port B 2 a nivel 1 giro a la derecha
goto start 'vuelve a start
end 'fin del programa
Adjuntos
Última edición: