#include const int MATRIX_DIN = A0; const int MATRIX_CLK = A1; const int MATRIX_CS = A2; LedControl matrix = LedControl(MATRIX_DIN, MATRIX_CLK, MATRIX_CS, 1); // Режимы робота enum RobotMode { STOP, FORWARD, BACKWARD, TURN_LEFT, TURN_RIGHT }; RobotMode robotMode = STOP; void setup() { matrix.shutdown(0, false); matrix.setIntensity(0, 12); matrix.clearDisplay(0); } void loop() { // Здесь можно добавить чтение датчиков или ИК-сигналов // Для примера просто меняем режим каждые 2 секунды static unsigned long lastChange = 0; if (millis() - lastChange >= 2000) { lastChange = millis(); robotMode = (RobotMode)((robotMode + 1) % 5); updateDisplay(); } } void updateDisplay() { matrix.clearDisplay(0); switch(robotMode) { case FORWARD: // Вертикальная линия в центре — едет вперёд for (int i = 2; i <= 5; i++) { matrix.setLed(0, i, 3, true); } break; case BACKWARD: // Вертикальная линия внизу — едет назад for (int i = 4; i <= 7; i++) { matrix.setLed(0, i, 3, true); } break; case TURN_LEFT: // Точки слева — поворот влево matrix.setLed(0, 3, 1, true); matrix.setLed(0, 4, 0, true); matrix.setLed(0, 5, 1, true); break; case TURN_RIGHT: // Точки справа — поворот вправо matrix.setLed(0, 3, 6, true); matrix.setLed(0, 4, 7, true); matrix.setLed(0, 5, 6, true); break; case STOP: default: // Центральная точка — стоп matrix.setLed(0, 3, 3, true); matrix.setLed(0, 3, 4, true); matrix.setLed(0, 4, 3, true); matrix.setLed(0, 4, 4, true); break; } }