//a1,a2 = LOW,HIGH --->clockwise //a1,a2 = HIGH,LOW --->anti-clockwise //b1,b2 = LOW,HIGH --->anti-clockwise //b1,b2 = HIGH,LOW --->clockwise //a1,a2,b1,b2 = LOW,LOW,LOW,LOW --->brake //int a_enable=2;// uncomment it if your enable pins are connected to the microcontroller //int b_enable=5; #define a1 2 #define a2 3 #define b2 4 #define b1 5 void setup () { for(int i=2;i<6;i++) pinMode(i,OUTPUT); //digitalWrite(a_enable,HIGH);// uncomment it if your enable pins are connected to the microcontroller //digitalWrite(b_enable,HIGH); } void motor_left() // Test,for the left wheel { digitalWrite(b1,LOW); //anti-clockwise digitalWrite(b2,HIGH); delay(2500); digitalWrite(b1,LOW); //brake digitalWrite(b2,LOW); delay(1000); digitalWrite(b1,HIGH); //clockwise digitalWrite(b2,LOW); delay(2500); digitalWrite(b1,LOW); //brake digitalWrite(b2,LOW); delay(1000); } void motor_right() // Test,for the right wheel { digitalWrite(a1,LOW); //clockwise digitalWrite(a2,HIGH); delay(2400); digitalWrite(a1,LOW); //brake digitalWrite(a2,LOW); delay(1000); digitalWrite(a1,HIGH); //anti-clockwise digitalWrite(a2,LOW); delay(2400); digitalWrite(a1,LOW); //brake digitalWrite(a2,LOW); delay(1000); } void motor_both()// Test,for both the wheel working simultaneously { //To Turn LEFT digitalWrite(b1,HIGH); //clockwise digitalWrite(b2,LOW); digitalWrite(a1,LOW); //clockwise digitalWrite(a2,HIGH); delay(2500); //To BRAKE digitalWrite(b1,LOW); //left brake digitalWrite(b2,LOW); digitalWrite(a1,LOW); //right brake digitalWrite(a2,LOW); delay(1000); //To Turn RIGHT digitalWrite(b1,LOW); //anti-clockwise digitalWrite(b2,HIGH); digitalWrite(a1,HIGH); //anti-clockwise digitalWrite(a2,LOW); delay(2500); //To BRAKE AGAIN digitalWrite(b1,LOW); //left brake digitalWrite(b2,LOW); digitalWrite(a1,LOW); //right brake digitalWrite(a2,LOW); delay(1000); } void loop() { motor_left(); //Quite sensible to understand.......... motor_right(); motor_both(); }