Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use l293 motor driver: Examples, Pinouts, and Specs

Image of l293 motor driver
Cirkit Designer LogoDesign with l293 motor driver in Cirkit Designer

Introduction

The L293 motor driver is an integrated circuit (IC) designed to control the direction and speed of DC motors. It is widely used in robotics, automation projects, and various electronic applications where motor control is required. The L293 is capable of driving two motors simultaneously and is known for its ease of use and versatility.

Explore Projects Built with l293 motor driver

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Bluetooth-Controlled Robotic Car with L293D Motor Driver and LED Indicators
Image of Bluetooth Car Diagram: A project utilizing l293 motor driver in a practical application
This circuit is a motor control system that uses an L293D driver shield to control four hobby gearmotors, with each motor connected to an LED and a resistor for status indication. The system is powered by a 2x 18650 battery pack and includes an HC-05 Bluetooth module for wireless communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and L293D Motor Controller with Wi-Fi Control
Image of Belajar Mengatur Kecepatan Motor DC w esp32: A project utilizing l293 motor driver in a practical application
This circuit is a motor control system using an ESP32 microcontroller to drive a DC motor via an L293D motor driver. The ESP32 generates PWM signals to control the motor speed and direction, while the LM2596 step-down module regulates the power supply from a 12V source to the required voltage levels for the ESP32 and motor driver.
Cirkit Designer LogoOpen Project in Cirkit Designer
L293D Motor Driver Control with Pushbutton Interface
Image of Task1: A project utilizing l293 motor driver in a practical application
This circuit uses an L293D motor driver to control two motors. The motor driver's enable and input pins are connected to pushbuttons, allowing manual control of the motor's direction and on/off state. A battery provides power to the system, with the L293D regulating the motor operation based on the pushbutton inputs.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino-Controlled Dual DC Motor Driver with Hall Effect Sensors and Indicator LEDs
Image of  bluetooth car: A project utilizing l293 motor driver in a practical application
This circuit controls two DC motors using an L293D motor driver, with an Arduino UNO as the microcontroller. The Arduino reads inputs from three Hall sensors and controls the motors' direction based on the sensors' states, while also indicating the sensors' status through three LEDs. Each LED and Hall sensor is connected to the Arduino with a current-limiting resistor, and the motors' operation is dependent on the Hall sensors' signals.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with l293 motor driver

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Bluetooth Car Diagram: A project utilizing l293 motor driver in a practical application
Bluetooth-Controlled Robotic Car with L293D Motor Driver and LED Indicators
This circuit is a motor control system that uses an L293D driver shield to control four hobby gearmotors, with each motor connected to an LED and a resistor for status indication. The system is powered by a 2x 18650 battery pack and includes an HC-05 Bluetooth module for wireless communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Belajar Mengatur Kecepatan Motor DC w esp32: A project utilizing l293 motor driver in a practical application
ESP32 and L293D Motor Controller with Wi-Fi Control
This circuit is a motor control system using an ESP32 microcontroller to drive a DC motor via an L293D motor driver. The ESP32 generates PWM signals to control the motor speed and direction, while the LM2596 step-down module regulates the power supply from a 12V source to the required voltage levels for the ESP32 and motor driver.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Task1: A project utilizing l293 motor driver in a practical application
L293D Motor Driver Control with Pushbutton Interface
This circuit uses an L293D motor driver to control two motors. The motor driver's enable and input pins are connected to pushbuttons, allowing manual control of the motor's direction and on/off state. A battery provides power to the system, with the L293D regulating the motor operation based on the pushbutton inputs.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of  bluetooth car: A project utilizing l293 motor driver in a practical application
Arduino-Controlled Dual DC Motor Driver with Hall Effect Sensors and Indicator LEDs
This circuit controls two DC motors using an L293D motor driver, with an Arduino UNO as the microcontroller. The Arduino reads inputs from three Hall sensors and controls the motors' direction based on the sensors' states, while also indicating the sensors' status through three LEDs. Each LED and Hall sensor is connected to the Arduino with a current-limiting resistor, and the motors' operation is dependent on the Hall sensors' signals.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Robotics
  • Automated machinery
  • Hobbyist projects
  • Educational platforms

Technical Specifications

Key Technical Details

  • Supply Voltage (Vcc1): 4.5V to 36V
  • Logic Supply Voltage (Vcc2): 4.5V to 7V
  • Output Current (each channel): 600mA
  • Peak Output Current (each channel): 1.2A
  • Enable Input Voltage: 4.5V to 7V

Pin Configuration and Descriptions

Pin Number Name Description
1 1,2EN Enable pin for Motor 1 and 2
2 1A Input 1 for Motor 1
3 1Y Output 1 for Motor 1
4 GND Ground (0V)
5 GND Ground (0V)
6 2Y Output 2 for Motor 1
7 2A Input 2 for Motor 1
8 Vcc2 Motor Supply Voltage
9 3,4EN Enable pin for Motor 2 and 3
10 3A Input 1 for Motor 2
11 3Y Output 1 for Motor 2
12 GND Ground (0V)
13 GND Ground (0V)
14 4Y Output 2 for Motor 2
15 4A Input 2 for Motor 2
16 Vcc1 Logic Supply Voltage

Usage Instructions

How to Use the Component in a Circuit

  1. Connect Vcc1 to a 5V power supply for the logic part of the IC.
  2. Connect Vcc2 to a power supply suitable for your motor (up to 36V).
  3. Connect the ground pins to the common ground of your system.
  4. Connect the enable pins (1,2EN and 3,4EN) to logic high to enable the motor outputs.
  5. Connect the input pins (1A, 2A for Motor 1 and 3A, 4A for Motor 2) to your control signals.
  6. Connect the output pins to the terminals of your DC motors.

Important Considerations and Best Practices

  • Use a separate power supply for Vcc2 if the motor voltage is higher than the logic voltage.
  • Place a decoupling capacitor close to the Vcc1 and Vcc2 pins to minimize voltage spikes.
  • Ensure that the current and power ratings of the motors do not exceed the IC's specifications.
  • Use heat sinks if operating near the peak current ratings to prevent overheating.

Example Code for Arduino UNO

// Define motor control pins
#define MOTOR1_PIN1 2
#define MOTOR1_PIN2 3
#define MOTOR2_PIN1 4
#define MOTOR2_PIN2 5

// Define enable pins
#define ENABLE_MOTOR1 9
#define ENABLE_MOTOR2 10

void setup() {
  // Set motor control pins as outputs
  pinMode(MOTOR1_PIN1, OUTPUT);
  pinMode(MOTOR1_PIN2, OUTPUT);
  pinMode(MOTOR2_PIN1, OUTPUT);
  pinMode(MOTOR2_PIN2, OUTPUT);
  
  // Set enable pins as outputs
  pinMode(ENABLE_MOTOR1, OUTPUT);
  pinMode(ENABLE_MOTOR2, OUTPUT);
  
  // Enable the motors
  digitalWrite(ENABLE_MOTOR1, HIGH);
  digitalWrite(ENABLE_MOTOR2, HIGH);
}

void loop() {
  // Motor 1 forward
  digitalWrite(MOTOR1_PIN1, HIGH);
  digitalWrite(MOTOR1_PIN2, LOW);
  
  // Motor 2 forward
  digitalWrite(MOTOR2_PIN1, HIGH);
  digitalWrite(MOTOR2_PIN2, LOW);
  
  delay(2000); // Run motors for 2 seconds
  
  // Stop motors
  digitalWrite(MOTOR1_PIN1, LOW);
  digitalWrite(MOTOR1_PIN2, LOW);
  digitalWrite(MOTOR2_PIN1, LOW);
  digitalWrite(MOTOR2_PIN2, LOW);
  
  delay(1000); // Wait for 1 second
}

Troubleshooting and FAQs

Common Issues Users Might Face

  • Motor not running: Check power supply, connections, and ensure enable pins are set high.
  • Overheating: Ensure current through the motor driver does not exceed 600mA per channel or use a heat sink.
  • Inconsistent motor speed or direction: Verify that the input signals are correct and stable.

Solutions and Tips for Troubleshooting

  • Double-check wiring against the pin configuration table.
  • Use a multimeter to verify the voltage at Vcc1, Vcc2, and the enable pins.
  • Ensure that the logic signals are within the specified voltage range.

FAQs

Q: Can the L293 drive stepper motors? A: Yes, the L293 can be used to drive bipolar stepper motors with proper control signals.

Q: What is the maximum voltage that can be applied to Vcc2? A: The maximum voltage for Vcc2 is 36V.

Q: Can I control the speed of the motors using the L293? A: Yes, you can control the speed by applying PWM signals to the enable pins.

Q: Is it necessary to use external diodes with the L293? A: The L293 has built-in flyback diodes, but external diodes may be used for added protection.

This documentation provides a comprehensive guide to using the L293 motor driver. For further information, consult the manufacturer's datasheet.