Собрал робота который должен ездить по линии, использовал arduino uno, troyka shield, motor shield, вот код: int leftDirPin = 4; int leftSpeedPin = 5; int rightSpeedPin = 6; int rightDirPin = 7; int leftLinePin = 10; int rightLinePin = 11; int runSpeed = 50; void setupMotorShield() { pinMode(leftDirPin, OUTPUT); pinMode(leftSpeedPin, OUTPUT); pinMode(rightDirPin, OUTPUT); pinMode(rightSpeedPin, OUTPUT); } void go() { analogWrite(leftSpeedPin, runSpeed); analogWrite(rightSpeedPin, runSpeed); } void stop() { analogWrite(leftSpeedPin, 0); analogWrite(rightSpeedPin, 0); } void goForward() { digitalWrite(leftDirPin, HIGH); digitalWrite(rightDirPin, HIGH); go(); } void turnLeft() { digitalWrite(leftDirPin, LOW); digitalWrite(rightDirPin, HIGH); go(); } void turnRight() { digitalWrite(leftDirPin, HIGH); digitalWrite(rightDirPin, LOW); go(); } void setup() { setupMotorShield(); } void loop() { boolean whiteLeft = digitalRead(leftLinePin); boolean whiteRight = digitalRead(rightLinePin); if (whiteLeft && whiteRight) { goForward(); } else if (!whiteLeft && !whiteRight) { stop(); } else if (whiteRight) { turnLeft(); } else { turnRight(); } } А робот не едет, на motor shield два красных светодиода.
Переделайте процедуру SETUP Код (C++): void setup() { setupMotorShield(); goForward(); delay(1000); } И сразу станет понятно, судьба ли роботу ездить.