The L298n is a dual H-bridge motor driver IC designed to control the direction and speed of DC motors and stepper motors. It is capable of driving two motors simultaneously, making it an essential component in robotics, automation, and motor control projects. The L298n can handle high currents and voltages, making it suitable for a wide range of applications, from small hobbyist robots to industrial automation systems.
Explore Projects Built with L298n
Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
This circuit is a line-following robot controller. It uses a Nano 3.0 ATmega328P microcontroller to read inputs from a line sensor and control two DC motors via an L298N motor driver. Power is supplied by a 9V battery regulated through an XL4015 DC buck converter.
This is a robotic control circuit featuring an Arduino UNO microcontroller that interfaces with two SG90 servo motors for movement, an HC-SR04 ultrasonic sensor for distance measurement, and an HC-05 Bluetooth module for wireless communication. The L298N motor driver is incorporated for potential motor control, and the system is powered through a standard power jack.
This circuit is designed to control four DC motors using an L298N motor driver module, which is interfaced with an ESP8266 NodeMCU microcontroller. The NodeMCU's digital pins (D1-D6) are connected to the input pins of the L298N to control the speed and direction of the motors. A 12V battery provides power to the motors through the motor driver, and also powers the NodeMCU through a voltage regulator on the L298N.
This circuit is designed to control a mobile platform with four DC motors for movement, two servos for directional control, and an ESP32-CAM module for wireless video streaming. The L298N motor driver interfaces with the ESP32-CAM to drive the motors based on commands received over WiFi, allowing for remote directional control. The ESP32-CAM also handles the servo positioning and streams live video, enabling the user to control and monitor the platform remotely through a web interface.
Robotics (e.g., controlling wheels or robotic arms)
Automation systems
Stepper motor control
Conveyor belts
DIY motorized projects
Technical Specifications
The L298n is a robust and versatile motor driver IC. Below are its key technical details:
Key Specifications:
Operating Voltage: 5V to 46V
Output Current: Up to 2A per channel (continuous)
Peak Current: 3A per channel (short duration)
Logic Voltage: 5V
Power Dissipation: 25W (with proper heat sinking)
Control Logic Levels: High (5V), Low (0V)
Built-in Protection: Thermal shutdown and overcurrent protection
Pin Configuration and Descriptions:
The L298n IC has 15 pins, but it is often used in a module form for ease of use. Below is the pin configuration for the IC:
Pin Number
Pin Name
Description
1
Enable A
Enables or disables motor A (High = Enabled, Low = Disabled)
2
Input 1
Logic input to control motor A direction (works with Input 2)
3
Output 1
Output to motor A terminal 1
4
Ground
Ground connection
5
Ground
Ground connection
6
Output 2
Output to motor A terminal 2
7
VSS
Logic voltage supply (typically 5V)
8
VS
Motor power supply (up to 46V)
9
Enable B
Enables or disables motor B (High = Enabled, Low = Disabled)
10
Input 3
Logic input to control motor B direction (works with Input 4)
11
Output 3
Output to motor B terminal 1
12
Ground
Ground connection
13
Ground
Ground connection
14
Output 4
Output to motor B terminal 2
15
Input 4
Logic input to control motor B direction (works with Input 3)
For the L298n module, additional pins such as a 5V regulator output and jumpers for enabling motors are typically included.
Usage Instructions
The L298n is straightforward to use in motor control circuits. Below are the steps and considerations for using it effectively:
Connecting the L298n:
Power Supply:
Connect the motor power supply (VS) to the module's power input pin. Ensure the voltage matches your motor's requirements.
Connect the logic voltage (VSS) to a 5V source (e.g., Arduino's 5V pin).
Connect the ground (GND) pins to the common ground of your circuit.
Motor Connections:
Connect the motor terminals to the output pins (Output 1 & Output 2 for motor A, Output 3 & Output 4 for motor B).
Control Pins:
Use the input pins (Input 1, Input 2 for motor A; Input 3, Input 4 for motor B) to control the motor's direction.
Use the enable pins (Enable A, Enable B) to turn the motors on or off.
Optional Features:
If using the L298n module, you can use the onboard 5V regulator to power your microcontroller by connecting a jumper to the 5V output pin.
Example Arduino Code:
Below is an example of how to control a DC motor using the L298n and an Arduino UNO:
// Define L298n control pins
const int enableA = 9; // Enable pin for motor A
const int input1 = 8; // Input 1 for motor A
const int input2 = 7; // Input 2 for motor A
void setup() {
// Set control pins as outputs
pinMode(enableA, OUTPUT);
pinMode(input1, OUTPUT);
pinMode(input2, OUTPUT);
// Initialize motor in stopped state
digitalWrite(enableA, LOW); // Disable motor A
digitalWrite(input1, LOW); // Set direction to neutral
digitalWrite(input2, LOW); // Set direction to neutral
}
void loop() {
// Example: Rotate motor A forward
digitalWrite(enableA, HIGH); // Enable motor A
digitalWrite(input1, HIGH); // Set direction forward
digitalWrite(input2, LOW); // Set direction forward
delay(2000); // Run motor for 2 seconds
// Example: Rotate motor A backward
digitalWrite(input1, LOW); // Set direction backward
digitalWrite(input2, HIGH); // Set direction backward
delay(2000); // Run motor for 2 seconds
// Stop motor A
digitalWrite(enableA, LOW); // Disable motor A
delay(2000); // Wait for 2 seconds
}
Best Practices:
Use a heat sink with the L298n to prevent overheating during high-current operation.
Ensure the motor power supply voltage does not exceed the IC's maximum rating (46V).
Use external diodes for additional protection against back EMF, especially for inductive loads like motors.
Troubleshooting and FAQs
Common Issues:
Motor Not Running:
Check if the enable pins (Enable A or Enable B) are set to HIGH.
Verify the motor power supply voltage and connections.
Ensure the input pins are receiving the correct logic signals.
Overheating:
Ensure a heat sink is attached to the IC.
Check if the motor's current exceeds the IC's maximum rating (2A continuous).
Erratic Motor Behavior:
Verify that the ground connections are properly shared between the L298n and the microcontroller.
Check for loose or faulty wiring.
FAQs:
Q: Can the L298n drive stepper motors?
A: Yes, the L298n can drive stepper motors by controlling the sequence of inputs to the H-bridges. You will need to implement the correct stepping sequence in your code.
Q: Can I use the L298n with a 3.3V microcontroller?
A: The L298n requires 5V logic levels for proper operation. You may need a level shifter to interface it with a 3.3V microcontroller.
Q: What is the purpose of the onboard 5V regulator on the L298n module?
A: The onboard 5V regulator can provide power to your microcontroller if the motor power supply voltage is greater than 7V. Ensure the jumper is set correctly to enable this feature.
By following this documentation, you can effectively use the L298n motor driver in your projects.