COCHE SEGUIDOR DE LÍNEA NEGRA

En esta práctica se va a realizar un coche que usando dos sensores infrarrojos siga una línea negra:


 int sensor1 =13;//Declaro los sensores infrarrojos

int sensor2=12;


//Motor A

int ENA=11;

int IN1=10;

int IN2=9;


//Motor B 

int ENB=5;

int IN3=6;

int IN4=7;


void setup() {


 Serial.begin(9600);//Declaro los pines de salida 


  pinMode(sensor1,INPUT);

  pinMode(sensor2,INPUT);

   pinMode(ENA, OUTPUT);

  pinMode(ENB, OUTPUT);

  pinMode(IN1, OUTPUT);

  pinMode(IN2, OUTPUT);

  pinMode(IN3, OUTPUT);

  pinMode(IN4, OUTPUT);

}

void Adelante()


{

 //Direccion motor A

 digitalWrite(IN1, HIGH);

 digitalWrite(IN2, LOW);

 analogWrite(ENA, 80);//Velocidad motor A

  //Direccion motor B

 digitalWrite (IN3, LOW);

 digitalWrite (IN4, HIGH);

 analogWrite (ENB,80); //Velocidad motor B

}

void Derecha ()

{

 //Direccion motor A

 digitalWrite (IN1, HIGH);

 digitalWrite (IN2, LOW);

 analogWrite (ENA, 80); //Velocidad motor A

 //Direccion motor B

 digitalWrite (IN3, LOW);

 digitalWrite (IN4, HIGH);

 analogWrite (ENB, 0); //Velocidad motor A

}

void Izquierda ()

{

 //Direccion motor A

 digitalWrite (IN1, LOW);

 digitalWrite (IN2, HIGH);

 analogWrite (ENA, 0); //Velocidad motor A

 //Direccion motor B

 digitalWrite (IN3, LOW);

 digitalWrite (IN4, HIGH);

 analogWrite (ENB, 100); //Velocidad motor A

}

void Parar ()

{

 //Direccion motor A

 digitalWrite (IN1, LOW);

 digitalWrite (IN2, LOW);

 analogWrite (ENA, 0); //Velocidad motor A

 //Direccion motor B

 digitalWrite (IN3, LOW);

 digitalWrite (IN4, LOW);

 analogWrite (ENB, 0); //Velocidad motor A

}


void loop (){


  int value1=0;//Introduzco una nueva variable

int value2=1;

  value1=digitalRead(sensor1);//Declaro dicha variable

  

  value2=digitalRead(sensor2);//Declaro dicha variable

//Si los dos sensores están detectando línea negra el coche va hacia adelante.

  if (value1==HIGH&&value2==HIGH)

  {

  Adelante();

  }

  //Si el sensor 1 detecta línea negra y el 2 no, el coche gira hacia la derecha.

  if (value1==HIGH&&value2==LOW)

  {

    Derecha();

  }

Si el sensor 2 detecta línea negra y el 1 no, el coche gira hacia la izquierda.

  if(value1==LOW&&value2==HIGH)

  {

    Izquierda();

  }

}








  

Comentarios