Here’s a tutorial on how to use the L293D Motor Driver with an Arduino for DC motor control, including direction control.
Materials Needed
- Arduino (e.g., Uno, Nano, etc.)
- L293D Motor Driver IC
- DC Motor
- Power supply (batteries or adapter)
- Breadboard and jumper wires
- Optional: External power source for the motor (if higher voltage/current is needed)
Circuit Diagram
- Connect L293D IC pins as follows:
- Pin 1 (Enable 1-2): Connect to Arduino Digital Pin 9 (PWM-enabled pin).
- Pin 2 (Input 1): Connect to Arduino Digital Pin 7.
- Pin 3 (Output 1): Connect to one terminal of the DC motor.
- Pin 4 and Pin 5 (GND): Connect to GND.
- Pin 6 (Output 2): Connect to the other terminal of the DC motor.
- Pin 7 (Input 2): Connect to Arduino Digital Pin 8.
- Pin 8 (Vcc2): Connect to external motor power supply (e.g., 9V or 12V).
- Pin 16 (Vcc1): Connect to Arduino 5V.
- Pin 12, 13 (GND): Connect to GND.
Arduino Code
// Motor driver pins
#define ENA 9 // Enable pin
#define IN1 7 // Input 1
#define IN2 8 // Input 2
void setup() {
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
}
void loop() {
// Move motor forward
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 150); // Speed (0-255)
delay(2000);
// Stop motor
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
delay(1000);
// Move motor backward
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENA, 150); // Speed (0-255)
delay(2000);
// Stop motor
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
delay(1000);
}