// Шаблон среднего уровня. Напиши код в разделе «Твоя часть» по целям в комментариях. const int LEFT_SENSOR_PIN = A4; const int RIGHT_SENSOR_PIN = A5; // Впиши свои измерения из бортового журнала. const int LEFT_WHITE = 0; const int LEFT_BLACK = 0; const int RIGHT_WHITE = 0; const int RIGHT_BLACK = 0; const int LEFT_DIR_PIN = 7; const int LEFT_SPEED_PIN = 6; const int RIGHT_DIR_PIN = 4; const int RIGHT_SPEED_PIN = 5; const int FORWARD = HIGH; int speed = 100; // начальная скорость, подбираем на подставке // ===== Твоя часть: напиши сам ===== void loop() { int leftValue = analogRead(LEFT_SENSOR_PIN); int rightValue = analogRead(RIGHT_SENSOR_PIN); // Реши, линия ли под каждым датчиком, — перенеси свои условия из L31_Line_Detect. // Колёса выполняют твою таблицу правил: линия под датчиком — его колесо стоит. // Колесо, которое правило остановило, снова едет, когда его датчик видит белое. } // ===== Готовое: настройка и защита — не меняй ===== void setup() { pinMode(LEFT_DIR_PIN, OUTPUT); pinMode(LEFT_SPEED_PIN, OUTPUT); pinMode(RIGHT_DIR_PIN, OUTPUT); pinMode(RIGHT_SPEED_PIN, OUTPUT); analogWrite(LEFT_SPEED_PIN, 0); analogWrite(RIGHT_SPEED_PIN, 0); digitalWrite(LEFT_DIR_PIN, FORWARD); digitalWrite(RIGHT_DIR_PIN, FORWARD); // Без измерений робот не поедет: программа остановится здесь. if (LEFT_WHITE == LEFT_BLACK || RIGHT_WHITE == RIGHT_BLACK) { while (true) { } } delay(2000); // время убрать руки от робота }