// Пины управления скоростью и направлением мотора constexpr auto pinM1Speed = 9; constexpr auto pinM1Direction = A1; constexpr auto pinM2Speed = 10; constexpr auto pinM2Direction = A0; int pins[] = {pinM1Speed, pinM1Direction, pinM2Speed, pinM2Direction}; void setup() { // Настраиваем все пины управление моторами в режим выхода for (int i = 0; i < 4; i++) { pinMode(pins[i], OUTPUT); } } void loop() { // Крутим мотор M1 в одну сторону в течении 1 секунды motorsDrive(255, 0); delay(1000); // Крутим мотор M1 в другую сторону в течении 1 секунды motorsDrive(-255, 0); delay(1000); // Крутим мотор M2 в одну сторону в течении 1 секунды motorsDrive(0, 255); delay(1000); // Крутим мотор M2 в другую сторону в течении 1 секунды motorsDrive(0, -255); delay(1000); // Стоим на месте motorsDrive(0, 0); delay(1000); } // Функция управления моторами void motorsDrive(int M1Speed, int M2Speed) { if (M1Speed > 0) { digitalWrite(pinM1Direction, HIGH); } else { digitalWrite(pinM1Direction, LOW); } if (M2Speed > 0) { digitalWrite(pinM2Direction, HIGH); } else { digitalWrite(pinM2Direction, LOW); } analogWrite(pinM1Speed, abs(M1Speed)); analogWrite(pinM2Speed, abs(M2Speed)); }