Menu Close

Arduino Motor Shield

Robo India presents Line follower on Arduino Platform using motor shield and Da Vinci

 Buying links – You May buy this motor shield from our store.

http://roboindia.com/store/arduino-motor-shield

1. Arduino motor shield Introduction 

 Robo India offers Arduino compatible Motor shield that can run 2 servo and 2 stepper or 4 DC motor. This shield uses shift register IC. Data is given in serial mode that is converted to parallel by this shift register IC. Connection are as follows.

Board to Shift Register-

  • Digital Pin 8 – Data Pin
  • Digital Pin 12 – Latch Pin
  • Digital Pin 4 – Clock Pin
  • Digital Pin 7 – Enable Pin

Shift Register to Motors-

  • Q0 – M3 A
  • Q1 – M2 A
  • Q2 – M1 A
  • Q3 – M1 B
  • Q4 – M2 B
  • Q5 – M4 A
  • Q6 – M3 B
  • Q7 – M4 B

2. Assembly and Connections

After assembling the robot make the connection as given in the following diagram. The Power Jumper on the motor shield works as Switch to motor it will be useful while debugging.You may add a back light LED it is completely optional and does not included in the KIT. The function of Back Light LED is, It glows when robot stops. And it is OK if you don’t attach one. 

Make the connection as shown above. 

2.2 Testing motor Connection

It is difficult to find GND and positive supply terminal of motor. Transfer the following code to the Arduino Board. The robot should move in forward direction, if it not doing so, interchange the of the wire of motor. e.g. suppose left motor is rotating in back ward direction and right motor is rotating in forward direction then you have to interchange the wires of M3 terminal.

You may download this sketch from here.

//Robo India Line follower Tutorial
// This codes runs robo int the forward direction.

// Shield Pins Declaration 
int dataPin = 8;        
int latchPin = 12;
int clockPin = 4;
int en = 7;
void setup()
{
    pinMode(dataPin, OUTPUT);     // Setting up the motor shield. 
    pinMode(latchPin, OUTPUT);
    pinMode(clockPin, OUTPUT);
    pinMode(en, OUTPUT);    
    digitalWrite(en, LOW); 
 
 forward(); // This funtion for forward robot motion
 
  
 }

void loop()
{
}

void forward(void){
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 3);
        digitalWrite(latchPin, HIGH);  

}

void backward(void){
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 164);
        digitalWrite(latchPin, HIGH);  
}

void turn_left(void){
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 161);
        digitalWrite(latchPin, HIGH);  
}

void turn_right(void){
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 38);
        digitalWrite(latchPin, HIGH);  
}

void halt(void){
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 32);
        digitalWrite(latchPin, HIGH);  
}

Resources:

Robo India Motor Control Tutorial on Arduinio.

This motor shield is based on Adafruit Motor Shield. Resources can be found here.

If you have any query please write us at support@roboindia.com

Thanks and Regards
Content Development Team 
Robo India
http://roboindia.com


Leave a Reply