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
Publicar un comentario