Quick and simple start guide for using and exploring an L298N Dual H-Bridge Motor Controller module with an Arduino.
The model in the example I am using is from Ebay.
Step 1: Getting to know your L298N Dual H-Bridge Motor Controller module:
H-Bridge's are typically used in controlling motors speed and direction, but can be used for other projects such as driving the brightness of certain lighting projects such as high powered LED arrays.
How it works:
An H-Bridge is a circuit that can drive a current in either polarity and be controlled by *Pulse Width Modulation (PWM).
* Pulse Width Modulation is a means in controlling the duration of an electronic pulse. In motors try to imagine the brush as a water wheel and electrons as a the flowing droplets of water. The voltage would be the water flowing over the wheel at a constant rate, the more water flowing the higher the voltage. Motors are rated at certain voltages and can be damaged if the voltage is applied to heavily or if it is dropped quickly to slow the motor down. Thus PWM. Take the water wheel analogy and think of the water hitting it in pulses but at a constant flow. The longer the pulses the faster the wheel will turn, the shorter the pulses, the slower the water wheel will turn. Motors will last much longer and be more reliable if controlled through PWM.
*Built-in 5v power supply, when the driving voltage is 7v-35v
Step 2: Wiring to an Arduino:
There are several different models of these L298N Dual H-Bridge Motor Controllers. The generic wiring schematic above should do the trick for most.
Two things to mention;
Step 3: Arduino Sketch Considerations:
The Arduino code sketch is pretty straight forward. Since there isnít a library for the L298N Dual H-Bridge Motor Controller you just have to declare which pins the controller is hooked to.
The "int dir(number)Pin(letter)"Ď pins can be connected to any available digital pin you have available, as long as you declare the correct pin in your sketch. This makes the L298N Dual H-Bridge Motor Controller very versatile if your project is using a lot of Arduino pins.
The int "speedPin(letter)" pins need to be connected to a PWM pin on the Arduino if you want to enable speed control through PWM.
As a quick cheat I have included a list of PWM pins for the main two types of Arduino's I use:
Step 4: Arduino Sketch Example:
This code example I wrote to allow a serial monitor program such as Putty to control the L298N Dual H-Bridge Motor Controller via a keyboard with key presses.
Key .......... Motor
1 ............... Motor 1 Forward
2 ............... Motor 1 Stop
3 ............... Motor 1 Reverse
4 ............... Motor 2 Forward
5 ............... Motor 2 Stop
6 ............... Motor 2 Reverse
Download the attached L298N_Dual_H_Bridge_Keyboard_Control_Reichenstein7.ino
Alternate Download: http://www.mediafire.com/download/z654e8at1b21d7e/L298N_Dual_H_Bridge_Keyboard_Control_Reichenstein7.ino