Arduino Motor Shield (L298N)
(SKU:DRI0009)
Contents
[hide]
• 1 Introduction
• 2 Diagram
• 3 Pin Allocation
• 4 Sample Code
o 4.1 PWM Speed Control
o 4.2 PLL Speed Control
Introduction
This motor shield allows Arduino to drive two channel DC motors. It uses a L298N chip
which deliveries output current up to 2A each channel. The speed control is achieved through
conventional PWM which can be obtained from Arduino’s PWM output Pin 5 and 6. The
enable/disable function of the motor control is signalled by Arduino Digital Pin 4 and 7.
The Motor shield can be powered directly from Arduino or from external power source. It is
strongly encouraged to use external power supply to power the motor shield.
• Logic Control Voltage:5V (From Arduino)
• Motor Driven Voltage:4.8~35V (From Arduino or External Power Source)
• Logic supply current Iss:≤36mA
• Motor Driven current Io:≤2A
• Maximum power consumption:25W(T=75℃)
• PWM、PLL Speed control mode
• Control signal level:
High:2.3V≤Vin≤5V
Low:-0.3V≤Vin≤1.5V
Diagram
Motor Shield
Control Mode Selection Jumpers: The shield supports PWM and PLL(Phased Locked
Loop) control Modes. The PWM mode uses E1 and E2 to gener
generate
ate PWM signal. The PLL
mode uses M1 and M2 to generate phase control signal.
Control Mode Selection Jumpers
Motor Terminal: Two DC motors are connected to blue motor terminals. The male header
behide the terminals are the same as the motor terminals.
Motor terminal
PWRIN: : The motors can be powered by external power supply when the motor current
exceeds the limits provided from the Arduino. The swith between external and Arduino
power
er is implemented by two jumpers.
• PWRIN: External Power
• VIN: Arduino Power
The motors are powered by external power supply
The motors are powered by Arduino power supply
NOTE: When the motor shield is powered by external power source, make sure the external
power source and Arduino have the same GND.
:
Control Signal Truth Table:
E1 M1 E2 M2
L X Motor 1 Disabled L X Motor 2 Disabled
H H Motor 1 Backward H H Motor 2 Backward
PWM X PWM Speed control PWM X PWM Speed control
Note:H is High level ;L is Low level ;PWM is Pulse Width Modulation signal; X is any
voltage level
Pin Allocation
"PWM Mode"
Pin Function
Digital 4 Motor 2 Direction control
Digital 5 Motor 2 PWM control
Digital 6 Motor 1 PWM control
Digital 7 Motor 1 Direction control
"PLL Mode"
Pin Function
Digital 4 Motor 2 Enable control
Digital 5 Motor 2 Direction control
Digital 6 Motor 1 Direction control
Digital 7 Motor 1 Enable control
Shield diagram
Sample Code
PWM Speed Control
?
1 //Arduino PWM Speed Control:
2 int E1 = 5;
int M1 = 4;
3 int E2 = 6;
4 int M2 = 7;
5
6 void setup()
7 {
pinMode(M1, OUTPUT);
8 pinMode(M2, OUTPUT);
9 }
10
11void loop()
12{
13 int value;
for(value = 0 ; value <= 255; value+=5)
14 {
15 digitalWrite(M1,HIGH);
16 digitalWrite(M2, HIGH);
17 analogWrite(E1, value); //PWM Speed Control
analogWrite(E2, value); //PWM Speed Control
18 delay(30);
19 }
20}
21
22
23
24
PLL Speed Control
?
1
2
3 //Arduino PLL Speed Control:
4 int E1 = 4;
int M1 = 5;
5 int E2 = 7;
6 int M2 = 6;
7
8 void setup()
9 {
pinMode(M1, OUTPUT);
10 pinMode(M2, OUTPUT);
11}
12
13void loop()
14{
15 int value;
for(value = 0 ; value <= 255; value+=5)
16 {
17 digitalWrite(M1,HIGH);
18 digitalWrite(M2, HIGH);
19 analogWrite(E1, value); //PLL Speed Control
20 analogWrite(E2, value); //PLL Speed Control
delay(30);
21 }
22}
23
24