// Пины для моторов (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);
}