Ответ:

Пример для Arduino и двухмоторной платформы с драйвером L298N. Предполагается, что входы IN1–IN4 драйвера подключены к выводам Arduino 8–11, а светодиод через резистор 220–330 Ом — к выводу 7 и GND. У драйвера должны быть подключены питание двигателей и общий GND с Arduino; для регулировки скорости входы ENA и ENB подключают к PWM-выводам. В этом примере они включены перемычками, поэтому моторы работают с полной скоростью.

Светодиод подключается последовательно с резистором: вывод 7 Arduino → резистор → анод светодиода; катод светодиода → GND. Направление вращения, соответствующее движению робота вперёд, зависит от подключения моторов.

Программа включает светодиод только в функции движения вперёд. При движении назад и остановке он выключен.

const int IN1 = 8;
const int IN2 = 9;
const int IN3 = 10;
const int IN4 = 11;
const int LED_PIN = 7;

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(LED_PIN, OUTPUT);
}

void stopRobot() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
  digitalWrite(LED_PIN, LOW);
}

void moveForward() {
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
  digitalWrite(LED_PIN, HIGH);
}

void moveBackward() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
  digitalWrite(LED_PIN, LOW);
}

void loop() {
  moveForward();
  delay(2000);
  stopRobot();
  delay(500);

  moveBackward();
  delay(2000);
  stopRobot();
  delay(1000);
}

Для реального робота программу движения можно вызывать по командам или показаниям датчиков; функции задают требуемую связь между направлением движения и светодиодом.