How to use L293D Motor Driver and Arduino with Direction Control

Here’s a tutorial on how to use the L293D Motor Driver with an Arduino for DC motor control, including direction control.

Materials Needed

  1. Arduino (e.g., Uno, Nano, etc.)
  2. L293D Motor Driver IC
  3. DC Motor
  4. Power supply (batteries or adapter)
  5. Breadboard and jumper wires
  6. 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.
circuit diagram l293d with arduino
Circuit Diagram
arduino l293d circuit
Motor, L293D Driver Connection with Arduino

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);
}

Leave a Comment