//This motor shield use Pin 6,5,7,4 to control the motor
// Simply connect your motors to M1+,M1-,M2+,M2-
// Upload the code to Arduino/Roboduino
// Through serial monitor, type 'a','s', 'w','d','x' to control the motor
// www.dfrobot.com
// Last modified on 24/12/2009
intEN1 = 6;
intEN2 = 5; //Roboduino Motor shield uses Pin 9
intIN1 = 7;
intIN2 = 4; //Latest version use pin 4 instead of pin 8
voidMotor1(intpwm, boolean reverse)
{
analogWrite(EN1,pwm); //set pwm control, 0 for stop, and 255 for maximum speed
if(reverse)
{
digitalWrite(IN1,HIGH);
}
else
{
digitalWrite(IN1,LOW);
}
}
voidMotor2(intpwm, boolean reverse)
{
analogWrite(EN2,pwm);
if(reverse)
{
digitalWrite(IN2,HIGH);
}
else
{
digitalWrite(IN2,LOW);
}
}
voidsetup()
{
inti;
// for(i=6;i<=9;i++) //For Roboduino Motor Shield
// pinMode(i, OUTPUT); //set pin 6,7,8,9 to output mode
for(i=4;i<=7;i++) //For Arduino Motor Shield
pinMode(i, OUTPUT); //set pin 4,5,6,7 to output mode
Serial.begin(9600);
}
voidloop()
{
intx,delay_en;
charval;
while(1)
{
val = Serial.read();
if(val!=-1)
{
switch(val)
{
case'w'://Move ahead
Motor1(100,true); //You can change the speed, such as Motor(50,true)
Motor2(100,true);
break;
case'x'://move back
Motor1(100,false);
Motor2(100,false);
break;
case'a'://turn left
Motor1(100,false);
Motor2(100,true);
break;
case'd'://turn right
Motor1(100,true);
Motor2(100,false);
break;
case's'://stop
Motor1(0,false);
Motor2(0,false);
break;
}
}
}
}
INTRODUCTION
This Motor shield for
Arduino uses L293 chip which allow to drive two 7-12V DC motors with maximum 1A
current. This shield can be directly mount onto standard Arduino Duemilanove
and Arduino Mega.