Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: gtr2018 en 13 de Octubre de 2018, 21:22:25
Título: Seguidor de linea pic 18f4550 con PIC C
Publicado por: gtr2018 en 13 de Octubre de 2018, 21:22:25
Buen día, quería saber si por favor me podrían ayudar con un código de seguidor de linea, voy a utilizar componentes como: cny70, motorreductores de 3000 rpm 10:1, 4 pilas AA de 1,2 a 1500mAh c/u Y en cuanto al puente H no se cual sea el mas adecuado para este proyecto.
Tengo entendido que el pic lee el sensor cny70 como "1" o "0", entonces no se hace conversiones.
El código no me genera error pero no estoy seguro que sea suficiente para qu el carrito funcione correctamente, por el momento voy a probar con 2 cny70, la velocidad de los motores es por PWM, les agradezco gracias.
Título: Re:Seguidor de linea pic 18f4550 con PIC C
Publicado por: KILLERJC en 14 de Octubre de 2018, 08:34:14
Hay varias cosas mal en tu programa..
- Siempre necesitas un loop infinito, asi que ese while, deberia ser while(1), si queres luego accionar segun un boton, ponelo dentro de un if. - La lectura de los pines no se realiza de esa forma. necesitas usar el input(PIN_XX) para leer el pin, con poner PIN_XX NO vas a leer el pin. Ya que PIN_XX es un numero. O cambias los defines:
Código: C
#Define sensor1 input(Pin_C4) // sensor 1
#Define sensor2 input(Pin_C5) // sensor 2
- Para que encendes y apagas lo leds ? Deberias tenerlos encendidos siempre, y observar las salidas. - Deberias tener unos "estados"... ejemplo si detectas 10 (me refiero a que la derecha toco la linea ) procedes a disminuir la velocidad de la derecha, pero ahora necesito reaccionar distinto. Se que deberia pasar a 00 (donde va encarrilado) y luego llegar a 01, pero que pasa si se va a 00, y luego 10 ?, A lo que me refiero es que vas a tener que tratar de reaccionar antes estos problemas. - Despues trataste de leer el sensor 1 y 2, y que te den 1 y 0 respectivamente, pero lo repetiste 2 veces!.
Con 2 sensores es "relativamente facil" ya que hace tope 1 y corregis, para mas sensores es donde considero que se vuelve mas complejo, vas a necesitar un PID para los motores, tal ves interpolar los sensores para obtener mas resolucion, y actuar acorde a lo que obtengas.