Robotics, Tutorials & Guides

Motor Driver Test on an Arduino

Introduction

There are prolly a billion tutorials for this and mine is prolly not the best but I am writing it anyways. Here is a piece of arduino code that can be used to test if your motor driver is connected correctly.

Connections

I am assuming that the motor driver L293D or L298 has been connected such that the Enable pin is high by default i.e. connected to VCC. In the next tutorial I will put up a circuit like how I think should be done. None the less, the direction 1 pin is connected to 12 pin of the Arduino and direction 2 pin is connected to 13 pin of the arduino.

The Code

The code is as follows:

/*!
*	\file		motorTest.ino
*	\author 	Inderpreet Singh (google.com/+InderpreetSingh)
* 	\license	GPL2(see license.txt)
*
*	\section 	Description
*
*	\section	HISTORY
*	v1.0
*
*        \description  This arduino firmware is used to test L293D motor Drivers
*                      Change the Motor driver pins at the beginning and the rest
*                      will work automatically.
*
* I put a lot of time and effort into our project and hence this copyright 
* notice ensures that people contribute as well as each contribution is 
* acknowledged. Please retain this original notice and if you make changes
* please document them along with your details.
*
* The latest copy of this project/library can be found at: 
* https://github.com/inderpreet/
*
*/
// ----------------------------------------------------------------------------
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// L298D Pins
int D1=12
int D2=13
//int D3=
//int D4=
//int E1=
//int E2=

// Direction Routines
void motorStop(void){
  digitalWrite(D1,LOW);
  digitalWrite(D2,LOW);
}

void motor1CK(int t){
  digitalWrite(D1, LOW);
  digitalWrite(D2, HIGH);
  delay(t);
  motorStop();
}

void motor1ACK(int t){
  digitalWrite(D2, LOW);
  digitalWrite(D1, HIGH);
  delay(t);
  motorStop();
}
// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(D1, OUTPUT);     
  pinMode(D2, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  motor1CK(5);               // Rotate motor Clockwise for 5 seconds
  motor1ACK(5);              // Rotate motor Anticlockwise for 5 seconds
}

copy and paste the code in the arduino IDE and upload. Test and lemme know.

Cheers

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s