Arduino Motor Shield

Arduino Motor Control shield is a motor driver shield which can be used with Arduino UNO and MEGA board for controlling various type of motors.

Arduino motor shield is based on L293D motor driver which allow DC motors to drive on either direction. It means you can control set of two dc motor with a single IC.

L293D chip consists of two H-Bridge circuit inside the IC which make it possible to rotate two motors independently. Due to its small size, L293D is an ideal choice for robotics applications,

L293D motor driver which can be used to drive:

  • One 4 Wire stepper motor
  • 2 to 6 DC Motor
  • 2 servo motor

L293D motor driver specification:

  • MAX current: 6000mA per channel
  • Peak output current: 1.2 Amp

 Board description:

 

 

S1, S2:

Used to control servo motors MAX-2

M1, M2, M3, M4:

Used to control DC motors MAX-4

RESET:

Used to reset board

EXT POWER:

Used to provide power from external source.

L293D MOTOR DRIVER:

Main motor driver chip to control motor direction.

Working with Arduino motor control shield:

Hardware and software requirements:

  • L293D H-Bridge motor Driver shield
  • Arduino UNO
  • DC Motor
  • “Motor.h” Library 
  • Arduino IDE

 How to control Motor using Arduino:

Step 1:

Attach Arduino Motor control shield to Arduino

Step 2:

Connection:

 

Connect DC motor wires to M2 Terminals

Step 3:

Uploading the code

Copy and paste the code below in Arduino

#include <Motor.h> //Import Motor.h Library
 
AF_DCMotor motor(2, MOTOR12_64KHZ); // Define motor #2, 64KHz pwm
/* AF_DCMotor motor(2);*/ Another way to define
 
void setup() {
  Serial.begin(9600); // Open Serial communication at baud rate 9600 bps
  Serial.println("Testing the Motor");
  
  motor.setSpeed(200); // Set the motor speed at 200 to 255 PWM
}
 
void loop() {
  Serial.print("....TURNING.... "); 
  
  motor.run(FORWARD);      // turn it on going forward
  delay(1000); // delay at 1 second
 
  Serial.print("Turning Backward");
  motor.run(BACKWARD);     // the other way
  delay(1000); // delay at 1 second
  
  Serial.print("Release or Stop");
  motor.run(RELEASE);      // Motor will stop
  delay(1000); // delay at 1 second
}

Click on upload to upload the code to Arduino

Conclusion:

After uploading the code you will notice that motor will run:

  • Forward for 1 sec
  • Backward for 1 sec
  • Stay still for 1 sec

You can make changes in the code for running motor in different direction on different speed