π DC Motor Direction Control using Arduino
This Arduino project demonstrates how to control the direction of a DC motor using two push buttons.
Press Button 1 β Motor rotates Forward
Press Button 2 β Motor rotates Reverse
No button pressed β Motor Stops
π§ Concept
The project uses two GPIO pins to drive a motor driver (like L293D or L298N) through the Arduino. Each button sends a digital HIGH signal to decide the direction of motor rotation.
βοΈ Components Required Component Quantity Arduino UNO 1 DC Motor 1 L293D / L298N Motor Driver 1 Push Buttons 2 10kΞ© Resistors (for pull-down) 2 Jumper Wires As required Breadboard 1 External Power Supply (for motor) 1 π§© Circuit Connections Arduino Pin Connected To D5 Motor Driver IN1 (Forward) D6 Motor Driver IN2 (Reverse) D2 Button 1 D3 Button 2 5V VCC (Motor Driver + Buttons) GND Common Ground
β‘ Important: Never power the motor directly from Arduino. Use a motor driver with a separate motor power source.
π§Ύ Code
#define Motor_Forward 5
#define Motor_Reverse 6
#define Button1 2
#define Button2 3
void setup()
{
pinMode(Motor_Forward,OUTPUT);
pinMode(Motor_Reverse,OUTPUT);
pinMode(Button1,INPUT);
pinMode(Button2,INPUT);
}
unsigned char button1_state,button2_state;
void loop()
{
button1_state = digitalRead(Button1);
button2_state = digitalRead(Button2);
if(button1_state == HIGH)
{
digitalWrite(Motor_Forward,HIGH);
digitalWrite(Motor_Reverse,LOW);
}
else if(button2_state == HIGH)
{
digitalWrite(Motor_Forward,LOW);
digitalWrite(Motor_Reverse,HIGH);
}
else
{
digitalWrite(Motor_Forward,LOW);
digitalWrite(Motor_Reverse,LOW);
}
}π How It Works
When Button 1 is pressed β Arduino sends a HIGH signal to pin 5. Motor Driver drives the motor forward.
When Button 2 is pressed β Pin 6 goes HIGH. Motor Driver reverses polarity β Motor runs backward.
When neither is pressed β Both control pins are LOW β Motor stops.