Below is the code I wrote for the L298N, which works fine. How do I adjust the code to work for the MDD10A, as I only have DIR1 and DIR2, instead of EN1, IN1, IN2, IN3, IN4, En2?
Also, is there a way to power the arduino thru the motor driver (I don't see a 5v connection)?
- CODE: SELECT_ALL_CODE
int sw1=10;
int sw2=11;
int sw3=12;
int sw4=6;
int state1;
int state2;
int state3;
int state4;
//MOTOR A
int enA = 9;
int in1 = 8;
int in2 = 7;
// Motor B
int enB = 3;
int in3 = 5;
int in4 = 4;
void setup() {
pinMode(sw1,INPUT_PULLUP);
pinMode(sw2,INPUT_PULLUP);
pinMode(sw3,INPUT_PULLUP);
pinMode(sw4,INPUT_PULLUP);
Serial.begin(9600);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop() {
state1 = digitalRead(sw1);
state2 = digitalRead(sw2);
state3 = digitalRead(sw3);
state4 = digitalRead(sw4);
if (state1 == 0) { //Make a Right turn
analogWrite(enB, 50);
analogWrite(enA, 0);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
else if (state2 == 0) { //Forward Movement
analogWrite(enA, 250);
analogWrite(enB, 250);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
else if (state3 == 0) { //Take a left turn
analogWrite(enA, 50);
analogWrite(enB,0);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
else if (state4 == 0) { //Backward Movement
analogWrite(enA, 50);
analogWrite(enB, 50);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}
else {
analogWrite(enA, 0);
analogWrite(enB, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
Serial.print("1-");
Serial.print(state1);
Serial.print(" 2-");
Serial.print(state2);
Serial.print(" 3-");
Serial.print(state3);
Serial.print(" 4-");
Serial.println(state4);
delay(250);
}