Arduino itself cannot control big motors because it can only handle current up to 40mA at 5V; however, external motor drivers can be used with Arduino to control big motors. In this tutorial, we will learn how big motors can be controlled with Arduino.
Why Arduino Cannot Directly Control Big Motors?
Big motors cannot be directly controlled by Arduino because these motors draw a large current from the source. Arduino is a small board that operates on 5V and has a current handling capacity of 40mA for General Purpose Input Output pins. Therefore, connecting a motor directly will burn the Arduino board.
What are Motor Drivers in Arduino?
Motor drivers are electronic devices that are used to control motors through Arduino. They take the input control signal from the Arduino board and amplify the signal to provide high power to the motors. Given below are some types of motor controllers that can be used with Arduino to control different kinds of motors.
L298N Motor Driver Module
The L298N Motor Driver Module is the most commonly used motor driver that is used to drive DC motors or stepper motors. The L298N can control two motors simultaneously. In addition to this, L298N has high power, which makes it efficient enough to control the speed as well as the direction of DC motors. A double H-bridge motor driver IC is used in this module to fulfill this purpose.
The H-bridge circuit has control over the direction of the motor. It possesses four switches for this purpose. When alternative switches are closed at a time, the polarity of the motor is reversed.
The L298N has four output pins to control two motors and 4 direction control input pins. The speed control pins of this module are ENA and ENB which control the speed or motor.
The power pins of this module take input from Arduino ranging from 5V to 7V and this module has an output voltage ranging from 5V to 35V and can provide continuous motor current up to 2A. Therefore, it can easily drive a DC or stepper motor.
L293D Motor Driver IC
The L293D motor driver IC is used for driving two DC motors simultaneously or one stepper motor separately. This IC has an output voltage scale of 4.5V to 36V and can provide a peak current of 1.2A and a continuous current of 600mA.
This IC also uses H-bridge technology to control the direction of the motor through four direction control pins from IN1 to IN4. ENA and ENB are the two terminals through which the speed of the motor is monitored and controlled.
The power pins take input power signals from Arduino that are used to activate the IC and its input logic circuit. This IC has four ground pins that are internally connected and used to dissipate heat.
A4988 Motor Driver IC
This driver IC only controls stepper motors, but it is the most used motor controller IC. A4988 can provide an output voltage that varies from 8V to 35V. The current delivering capacity of this motor driver is a maximum of 2A and a continuous current of 1A.
Its power pins take input in the range of 3.3V to 5V. It has four output pins which are used to connect the bipolar stepper motor. The MS pins are used to control the speed of the stepper motor by dividing it into smaller steps using the STEP control pin. The DIR pin of A4988 controls the direction of the motor. For the cooling process, there is a heat sink system that is already available in the IC.
How to Connect Motor with Arduino Using Motor Driver Module
The Arduino can be used to control motors through motor driver modules. You can connect the motor with Arduino using these modules. Make the following connections of A4988 to Arduino. After making connections, supply power to the Arduino board, motor driver module, and stepper motor. The motor will start running.
A4988 | Connection |
---|---|
VMOT | 8-35V |
GND | Motor GND and Arduino GND |
SLP | RESET |
RST | SLP |
VDD | 5V |
GND | Login GND |
STP | Pin 3 of Arduino |
DIR | Pin 2 of Arduino |
1A, 1B, 2A, 2B | Stepper Motor |
You can read about controlling motors with Arduino in these articles.
Conclusion
We have learned that Arduino cannot directly control big motors; however, motor drivers can be used for this purpose. There are different motor drivers which can control DC and stepper motors, such as L298N. L293D, and A4988. These drivers can control the speed and direction of motors through their respective pins.