Sensore segui linea

Share

Ecco un esempio di codice Arduino per un sensore di linea che fa seguire un robot una linea tracciata sul terreno:

#define LeftMotor 9   // Collega il motore sinistro al pin 9
#define RightMotor 10 // Collega il motore destro al pin 10
#define SensorLeft A0 // Collega il sensore di linea sinistro ad A0
#define SensorRight A1 // Collega il sensore di linea destro ad A1
#define Threshold 500  // Soglia per la lettura dei sensori (può variare)

void setup() {
  pinMode(LeftMotor, OUTPUT);
  pinMode(RightMotor, OUTPUT);
  pinMode(SensorLeft, INPUT);
  pinMode(SensorRight, INPUT);
}

void loop() {
  int leftValue = analogRead(SensorLeft);
  int rightValue = analogRead(SensorRight);

  // Controlla se entrambi i sensori sono sulla linea
  if (leftValue > Threshold && rightValue > Threshold) {
    // Vai avanti
    digitalWrite(LeftMotor, HIGH);
    digitalWrite(RightMotor, HIGH);
  } 
  // Controlla se solo il sensore sinistro è sulla linea
  else if (leftValue > Threshold) {
    // Gira a sinistra
    digitalWrite(LeftMotor, LOW);
    digitalWrite(RightMotor, HIGH);
  } 
  // Controlla se solo il sensore destro è sulla linea
  else if (rightValue > Threshold) {
    // Gira a destra
    digitalWrite(LeftMotor, HIGH);
    digitalWrite(RightMotor, LOW);
  } 
  else {
    // Non vede la linea, ferma il motore
    digitalWrite(LeftMotor, LOW);
    digitalWrite(RightMotor, LOW);
  }
}

Assicurati di collegare i sensori di linea ai pin corretti e di calibrare la soglia (Threshold) in base alle tue condizioni specifiche. Questo codice fa muovere un robot in avanti quando entrambi i sensori sono sulla linea, lo fa girare a sinistra quando solo il sensore sinistro è sulla linea e lo fa girare a destra quando solo il sensore destro è sulla linea. Se entrambi i sensori non rilevano la linea, il robot si ferma.