const int LEFT_SENSOR = 7; const int RIGHT_SENSOR = 8; // Пины драйвера MX1508 const int LEFT_IN1 = 5; const int LEFT_IN2 = 6; const int RIGHT_IN1 = 9; const int RIGHT_IN2 = 10; int baseSpeed = 170; void setup() { pinMode(LEFT_SENSOR, INPUT); pinMode(RIGHT_SENSOR, INPUT); pinMode(LEFT_IN1, OUTPUT); pinMode(LEFT_IN2, OUTPUT); pinMode(RIGHT_IN1, OUTPUT); pinMode(RIGHT_IN2, OUTPUT); stopMotors(); } void loop() { int leftValue = digitalRead(LEFT_SENSOR); int rightValue = digitalRead(RIGHT_SENSOR); // Предположим: // 0 = датчик видит чёрную линию // 1 = датчик видит светлую поверхность if (leftValue == 0 && rightValue == 0) { moveForward(); } else if (leftValue == 0 && rightValue == 1) { turnLeft(); } else if (leftValue == 1 && rightValue == 0) { turnRight(); } else { stopMotors(); } } void moveForward() { analogWrite(LEFT_IN1, baseSpeed); analogWrite(LEFT_IN2, 0); analogWrite(RIGHT_IN1, baseSpeed); analogWrite(RIGHT_IN2, 0); } void turnLeft() { analogWrite(LEFT_IN1, 0); analogWrite(LEFT_IN2, 0); analogWrite(RIGHT_IN1, baseSpeed); analogWrite(RIGHT_IN2, 0); } void turnRight() { analogWrite(LEFT_IN1, baseSpeed); analogWrite(LEFT_IN2, 0); analogWrite(RIGHT_IN1, 0); analogWrite(RIGHT_IN2, 0); } void stopMotors() { analogWrite(LEFT_IN1, 0); analogWrite(LEFT_IN2, 0); analogWrite(RIGHT_IN1, 0); analogWrite(RIGHT_IN2, 0); }