Загрузка данных


// Пины для моторов (LART R-5)
const int motorL_DIR = 4;  
const int motorL_PWM = 5;  
const int motorR_PWM = 6;  
const int motorR_DIR = 7;  

// Пины для датчиков линии (из твоего фото)
const int sensorL = 2; // Левый датчик на D2
const int sensorR = 3; // Правый датчик на D3

// Скорость (от 0 до 255). Начни со 120, если будет медленно - прибавь.
const int speed = 120; 

void setup() {
  pinMode(motorL_DIR, OUTPUT);
  pinMode(motorL_PWM, OUTPUT);
  pinMode(motorR_PWM, OUTPUT);
  pinMode(motorR_DIR, OUTPUT);
  
  pinMode(sensorL, INPUT);
  pinMode(sensorR, INPUT);
}

void loop() {
  // Читаем датчики. 
  // ВНИМАНИЕ: если робот ведет себя наоборот, замени HIGH на LOW
  bool leftSeeBlack = (digitalRead(sensorL) == HIGH);
  bool rightSeeBlack = (digitalRead(sensorR) == HIGH);

  if (leftSeeBlack && rightSeeBlack) {
    // ПЕРЕКРЕСТОК (оба на черном) -> СТОП
    stopRobot();
    while(true); // Замираем
  } 
  else if (!leftSeeBlack && !rightSeeBlack) {
    // Оба на белом -> Едем вперед
    moveForward();
  } 
  else if (leftSeeBlack && !rightSeeBlack) {
    // Левый на черном -> Поворот влево
    turnLeft();
  } 
  else if (!leftSeeBlack && rightSeeBlack) {
    // Правый на черном -> Поворот вправо
    turnRight();
  }
}

// Функции движения
void moveForward() {
  digitalWrite(motorL_DIR, HIGH);
  analogWrite(motorL_PWM, speed);
  digitalWrite(motorR_DIR, HIGH);
  analogWrite(motorR_PWM, speed);
}

void turnLeft() {
  analogWrite(motorL_PWM, 0); 
  analogWrite(motorR_PWM, speed);
}

void turnRight() {
  analogWrite(motorL_PWM, speed);
  analogWrite(motorR_PWM, 0);
}

void stopRobot() {
  analogWrite(motorL_PWM, 0);
  analogWrite(motorR_PWM, 0);
}