const int MO1_IN1 = 3;
const int MO1_IN2 = A0;
const int MO1_IN3 = 5;
const int MO1_IN4 = A1;
const int MO2_IN1 = 6;
const int MO2_IN2 = A2;
const int MO2_IN3 = 10;
const int MO2_IN4 = A3;
const int sleep = A4;
const int fault1 = 4;
const int fault2 = A5;
int pot;
void setup() {
Serial.begin(9600);
pinMode(MO1_IN1, OUTPUT);
pinMode(MO1_IN2, OUTPUT);
pinMode(MO1_IN3, OUTPUT);
pinMode(MO1_IN4, OUTPUT);
pinMode(MO2_IN1, OUTPUT);
pinMode(MO2_IN2, OUTPUT);
pinMode(MO2_IN3, OUTPUT);
pinMode(MO2_IN4, OUTPUT);
pinMode(sleep, OUTPUT);
pinMode(fault1, INPUT_PULLUP);
pinMode(fault2, INPUT_PULLUP);
digitalWrite(MO1_IN1, LOW);
digitalWrite(MO1_IN2, LOW);
digitalWrite(MO1_IN3, LOW);
digitalWrite(MO1_IN4, LOW);
digitalWrite(MO2_IN1, LOW);
digitalWrite(MO2_IN2, LOW);
digitalWrite(MO2_IN3, LOW);
digitalWrite(MO2_IN4, LOW);
}
void loop() {
digitalWrite(sleep, HIGH);
pot = 255;
analogWrite(MO2_IN1, pot);
digitalWrite(MO1_IN2, LOW);
analogWrite(MO1_IN3, pot);
digitalWrite(MO1_IN4, LOW);
analogWrite(MO2_IN1, pot);
digitalWrite(MO2_IN2, LOW);
analogWrite(MO2_IN3, pot);
digitalWrite(MO2_IN4, LOW);
delay(1000);
pot = 120;
analogWrite(MO2_IN1, pot);
digitalWrite(MO1_IN2, LOW);
analogWrite(MO1_IN3, pot);
digitalWrite(MO1_IN4, LOW);
analogWrite(MO2_IN1, pot);
digitalWrite(MO2_IN2, LOW);
analogWrite(MO2_IN3, pot);
digitalWrite(MO2_IN4, LOW);
delay(1000);
pot = 255;
analogWrite(MO2_IN1, 255-pot);
digitalWrite(MO1_IN2, HIGH);
analogWrite(MO1_IN3, 255-pot);
digitalWrite(MO1_IN4, HIGH);
analogWrite(MO2_IN1, 255-pot);
digitalWrite(MO2_IN2, HIGH);
analogWrite(MO2_IN3, 255-pot);
digitalWrite(MO2_IN4, HIGH);
delay(1000);
pot = 120;
analogWrite(MO2_IN1, 255-pot);
digitalWrite(MO1_IN2, HIGH);
analogWrite(MO1_IN3, 255-pot);
digitalWrite(MO1_IN4, HIGH);
analogWrite(MO2_IN1, 255-pot);
digitalWrite(MO2_IN2, HIGH);
analogWrite(MO2_IN3, 255-pot);
digitalWrite(MO2_IN4, HIGH);
delay(1000);
}
In that code, the motor is connected to:
const int MO1_IN1 = 3;
const int MO1_IN2 = A0;
That motor is only working when it's going backwards, this part:
pot = 255;
analogWrite(MO2_IN1, 255-pot);
digitalWrite(MO1_IN2, HIGH);
analogWrite(MO1_IN3, 255-pot);
digitalWrite(MO1_IN4, HIGH);
analogWrite(MO2_IN1, 255-pot);
digitalWrite(MO2_IN2, HIGH);
analogWrite(MO2_IN3, 255-pot);
digitalWrite(MO2_IN4, HIGH);
delay(1000);
pot = 120;
analogWrite(MO2_IN1, 255-pot);
digitalWrite(MO1_IN2, HIGH);
analogWrite(MO1_IN3, 255-pot);
digitalWrite(MO1_IN4, HIGH);
analogWrite(MO2_IN1, 255-pot);
digitalWrite(MO2_IN2, HIGH);
analogWrite(MO2_IN3, 255-pot);
digitalWrite(MO2_IN4, HIGH);
delay(1000);
And when in backwards, its speed isn't changing while all the other motors are.
When in forward the motor doesn't move, or output any voltage (I measured it in my voltmeter). @PaulRB, @kmin