INTRODUCCIÓN AL CONTENIDO

En el siguiente blog se podrá evidenciar el proceso que se tuvo para realizar un carro seguidor de linea, se espera poder mostrar el proceso completo y su finalización. Para ello fue necesario leer los datasheet de los elementos a utilizar.

CÓDIGOS

CODIGO 1
int PinIN1 = 9;  //Motor derecho
int PinIN2 = 10;  //Motor derecho
int PinIN3 = 11;  //Motor izquierdo
int PinIN4 = 12;  //Motor izquierdo
int Sensor1 = 7; //Sensor derecha
int Sensor2 = 8; //Sensor izquierda

int ENA= 3;
int ENB= 5;

//Definicion variables para la lectura de los sensores
int sen1=0;
int sen2=0;
/*
void Atras()
{
  digitalWrite (PinIN1, HIGH);
  digitalWrite (PinIN2, LOW);
}

void Adelante()
{
  digitalWrite (PinIN1, LOW);
  digitalWrite (PinIN2, HIGH);
  digitalWrite (PinIN3, LOW);
  digitalWrite (PinIN4, HIGH);
}

void Detener()
{
  digitalWrite (PinIN1, LOW);
  digitalWrite (PinIN2, LOW);
  digitalWrite (PinIN3, LOW);
  digitalWrite (PinIN4, LOW);
}

void Izquierda()
{
  digitalWrite (PinIN1, LOW);
  digitalWrite (PinIN2, HIGH);
  digitalWrite (PinIN3, LOW);
  digitalWrite (PinIN4, LOW);
}

void Derecha()
{
  digitalWrite (PinIN1, LOW);
  digitalWrite (PinIN2, LOW);
  digitalWrite (PinIN3, LOW);
  digitalWrite (PinIN4, HIGH);
}
*/

void setup() {
  // inicializar la comunicación serial a 9600 bits por segundo:
  Serial.begin(9600);
  // configuramos los pines como salida
  pinMode(PinIN1, OUTPUT);
  pinMode(PinIN2, OUTPUT);
  pinMode(PinIN3, OUTPUT);
  pinMode(PinIN4, OUTPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  }


void loop() {


  sen1= digitalRead(Sensor1);
  sen2= digitalRead(Sensor2);
  //1 negro, 0 blanco
  if(sen1==0 && sen2==0)
  {
    digitalWrite (PinIN1, LOW);
    digitalWrite (PinIN2, HIGH);
    digitalWrite (PinIN3, LOW);
    digitalWrite (PinIN4, HIGH);
  }

  if(sen1==1)
  {
    digitalWrite (PinIN1, LOW);
    digitalWrite (PinIN2, HIGH);
    digitalWrite (PinIN3, LOW);
    digitalWrite (PinIN4, LOW);
  }
  if(sen2==1)
  {
    digitalWrite (PinIN1, LOW);
    digitalWrite (PinIN2, LOW);
    digitalWrite (PinIN3, LOW);
    digitalWrite (PinIN4, HIGH);
  }

  if(sen1==1 && sen2==1)
  {
    digitalWrite (PinIN1, LOW);
    digitalWrite (PinIN2, LOW);
    digitalWrite (PinIN3, LOW);
    digitalWrite (PinIN4, LOW);
  }

  analogWrite(ENA,100);
  analogWrite(ENB,100);
  delay(2000);

}

CÓDIGO 2 (PRUEBA PARA MOTORES)

int PinIN1 = 9;  //Motor derecho
int PinIN2 = 10;  //Motor derecho
int PinIN3 = 11;  //Motor izquierdo
int PinIN4 = 12;  //Motor izquierdo
int Sensor1 = 7; //Sensor derecha
int Sensor2 = 8; //Sensor izquierda

int ENA= 3;
int ENB= 5;

//Definicion variables para la lectura de los sensores
int sen1=0;
int sen2=0;
/*
void Atras()
{
  digitalWrite (PinIN1, HIGH);
  digitalWrite (PinIN2, LOW);
}

void Adelante()
{
  digitalWrite (PinIN1, LOW);
  digitalWrite (PinIN2, HIGH);
  digitalWrite (PinIN3, LOW);
  digitalWrite (PinIN4, HIGH);
}

void Detener()
{
  digitalWrite (PinIN1, LOW);
  digitalWrite (PinIN2, LOW);
  digitalWrite (PinIN3, LOW);
  digitalWrite (PinIN4, LOW);
}

void Izquierda()
{
  digitalWrite (PinIN1, LOW);
  digitalWrite (PinIN2, HIGH);
  digitalWrite (PinIN3, LOW);
  digitalWrite (PinIN4, LOW);
}

void Derecha()
{
  digitalWrite (PinIN1, LOW);
  digitalWrite (PinIN2, LOW);
  digitalWrite (PinIN3, LOW);
  digitalWrite (PinIN4, HIGH);
}
*/

void setup() {
  // inicializar la comunicación serial a 9600 bits por segundo:
  Serial.begin(9600);
  // configuramos los pines como salida
  pinMode(PinIN1, OUTPUT);
  pinMode(PinIN2, OUTPUT);
  pinMode(PinIN3, OUTPUT);
  pinMode(PinIN4, OUTPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  }


void loop() {
  /*
  // Aplicamos PWM al pin ENB, haciendo girar el motor, cada 2 seg aumenta la velocidad
  analogWrite(ENA,5);
  analogWrite(ENB,5);


  */
 // MotorHorario();
  //Serial.println("Giro del Motor en sentido horario");
  //delay(1000
 
 
  sen1= digitalRead(Sensor1);
  sen2= digitalRead(Sensor2);
  //1 negro, 0 blanco
  do{
  if(sen1==0 && sen2==0)
  {
    digitalWrite (PinIN1, LOW);
    digitalWrite (PinIN2, HIGH);
    digitalWrite (PinIN3, LOW);
    digitalWrite (PinIN4, HIGH);
  }

  if(sen1==1)
  {
    digitalWrite (PinIN1, LOW);
    digitalWrite (PinIN2, HIGH);
    digitalWrite (PinIN3, LOW);
    digitalWrite (PinIN4, LOW);
  }
  if(sen2==1)
  {
    digitalWrite (PinIN1, LOW);
    digitalWrite (PinIN2, LOW);
    digitalWrite (PinIN3, LOW);
    digitalWrite (PinIN4, HIGH);
  }

  if(sen1==1 && sen2==1)
  {
    digitalWrite (PinIN1, LOW);
    digitalWrite (PinIN2, LOW);
    digitalWrite (PinIN3, LOW);
    digitalWrite (PinIN4, LOW);
  }

  analogWrite(ENA,100);
  analogWrite(ENB,100);
  delay(2000);
  } while(sen1==1 || sen1==0 || sen2==1 || sen2==0);


  /*
  Serial.println(sen1);
  Serial.println("Sensor2");
  Serial.println(sen2);
   delay(10000); */
}



NOTA: EN MI CARPETA HAY MÁS CÓDIGOS PERO TODOS SON VARIACIÓN DEL CÓDIGO DOS DE LA VARIACIÓN DE MOTORES, TODO PARA NO IR A MODIFICAR EL CÓDIGO Y LUEGO AL NECESITARLO NO TENERLO.