This project is sourced from another site, not written by us — this list is our best match of their components against what we stock, not a verified bill of materials. Always check the original blog (linked above) for the actual parts list before buying.
Controlling DC motors with an Arduino requires an intermediate component because the microcontroller's digital pins cannot supply enough current to drive motors directly, and doing so risks damaging the board. This is where the L293D Motor Driver IC comes in. The L293D is a dual-H-bridge motor driver, meaning it contains internal circuitry that allows you to control the direction of two separate DC motors, such as standard TT motors. By sending high and low digital signals from the Arduino to the input pins of the L293D, you dictate the polarity of the voltage applied across the motor terminals, causing the motor to spin forward or backward. To control the speed of the motors, you can apply Pulse Width Modulation (PWM) signals from the Arduino's PWM-capable pins to the enable pins of the L293D, rapidly switching the power on and off to vary the effective voltage. The entire circuit is assembled on a breadboard, connecting the Arduino board, the L293D IC, and the DC motors together using jumper wires. An external 5V power supply is required to power the motors independently through the driver, ensuring that the heavy electrical load of the motors does not draw excessive current through the Arduino. Additionally, the L293D features built-in flyback diodes that protect the circuit by safely dissipating the voltage spikes, known as back EMF, that motors naturally generate when they stop or change direction.
Why Build This
Build the foundational motor-control circuit necessary for creating your own two-wheel drive robots and remote-controlled cars.
Gain practical experience applying PWM signals to adjust motor speed in custom small automated guided vehicles.
Master basic hardware integration by learning how to safely isolate a microcontroller from high-current inductive loads.
Real-World Application
Two-wheel drive robots, remote-controlled cars, small automated guided vehicles, and educational robotics platforms.
Skills You'll Learn
H-bridge motor control
PWM signal generation
motor direction logic
external power distribution
inductive load management
Safety Precautions
Ensure correct voltage supply to avoid overloading components, and note that inductive loads like motors generate back EMF, which the L293D mitigates with built-in flyback diodes.
Technology Tags
ARDUINO
L293D MOTOR DRIVER
DC MOTORS
H-BRIDGE
PWM
PULSE WIDTH MODULATION
MOTOR CONTROL
Frequently Asked Questions
No, you should use an external 5V power supply for the motors. DC motors draw more current than an Arduino pin or onboard regulator can safely provide, which can cause the board to reset or overheat.
Arduino digital pins output very little current—typically around 20mA to 40mA—whereas DC motors require much more current to spin. The L293D acts as a high-current switch controlled by the Arduino.
You change direction by altering the states of the input pins connected to the L293D from the Arduino. Reversing the relative high and low logic levels reverses the polarity of the voltage supplied to the motor terminals.
Gallery
This page is part of Kitkraft's Project Hub — a curated collection of electronics & robotics projects gathered from the maker community to help students and hobbyists discover and learn to build. Kitkraft does not claim authorship of the original project, and makes no representation as to the accuracy, completeness or safety of third-party source material. The summary and "How It Works" explanation above are AI-generated, rewritten with reference to the original tutorial — not a reproduction of it. Full credit and a direct link to the original source are provided above. If you're the original creator and have a concern about how your work is represented here, please contact us and we'll address it promptly.