Seguidor De Linea
Enviado por maartiinciitho • 17 de Septiembre de 2013 • 331 Palabras (2 Páginas) • 459 Visitas
Seguidor de lineas.
En este proyecto se utilizó un pequeño diseño para realizar el seguidor de lineas. Cuenta con 2 sensores que serán los encargados de seguir la linea, arduino se encargara de realizar la parte lógica ya que este tomara las desciones a partir de las señales de entrada mandadas por los sensores.
El proyecto es muy fácil, solo se tiene que tener cuidado de que todo se encuentre en buen funcionamiento y que todo este conectado de una forma correcta y tener cuidado de que no se cometan fallas.
El equipo necesario es:
-2 motores CD
-2 sensores OP8012
-Base
-Arduino
Con lo anterior se realizara el proyecto, se tomara en cuenta de que este proyecto debe de seguir una linea negra con fondo blanco. Esto lo hará porque la programación esta hecha de forra que cuando un sensor contenga un alto mande una señal a arduino y haga girar el motor del lado contrario, esto para que se mueva hacia el lado que debe de ir.
La programación:
//Driver para motores
const int AdelanteIzq = 10;
const int AdelanteDer = 5;
const int AtrasIzq = 11;
const int AtrasDer = 6;
//Entradas digitales, sensores de linea
const int sensorIzq = 2;
const int sensorDer = 3;
//Para lecturas de linea
int sensorValueIzq = 0;
int sensorValueDer = 0;
void setup() {
pinMode(AdelanteIzq, OUTPUT);
pinMode(AtrasIzq, OUTPUT);
pinMode(AdelanteDer, OUTPUT);
pinMode(AtrasDer, OUTPUT);
pinMode(sensorIzq,INPUT);
digitalWrite(sensorIzq, HIGH); //pull-up
pinMode(sensorDer,INPUT);
digitalWrite(sensorDer, HIGH); //pull-up
pinMode(13,OUTPUT); //indicador de fuera de linea
}
void loop() {
//Lectura de sensores
sensorValueIzq = digitalRead(sensorIzq);
sensorValueDer = digitalRead(sensorDer);
//Indicador de línea
if (sensorValueIzq == 1 || sensorValueDer ==1 )
{
digitalWrite(13,HIGH);
} else
{
digitalWrite(13,LOW);
}
if (sensorValueIzq == 1 && sensorValueDer ==1) //Fuera de linea, se detiene
{
digitalWrite(AdelanteIzq,0);
digitalWrite(AdelanteDer,0);
digitalWrite(AtrasDer,0);
digitalWrite(AtrasIzq,0);
} else if (sensorValueIzq == 0 && sensorValueDer ==0) //Sobre la linea, camina adelante
{
digitalWrite(AdelanteIzq,1);
digitalWrite(AdelanteDer,1);
digitalWrite(AtrasDer,0);
digitalWrite(AtrasIzq,0);
} else if (sensorValueIzq ==
...