The A4988 Stepper Motor Driver (Red) is a compact and versatile module designed for precise control of stepper motors. It features adjustable current control, microstepping capabilities, and built-in thermal shutdown protection, making it an excellent choice for a wide range of applications. This driver is commonly used in 3D printers, CNC machines, robotics, and other projects requiring accurate motor control.
The A4988 Stepper Motor Driver (Red) has the following key technical specifications:
Parameter | Value |
---|---|
Operating Voltage (Vcc) | 8V to 35V |
Logic Voltage (Vdd) | 3.3V or 5V |
Maximum Output Current | 2A per coil (with sufficient cooling) |
Microstepping Modes | Full, 1/2, 1/4, 1/8, 1/16 |
Current Control | Adjustable via onboard potentiometer |
Thermal Shutdown | Yes |
Overcurrent Protection | Yes |
Dimensions | 20mm x 15mm x 11mm |
The A4988 module has 16 pins, which are described in the table below:
Pin Name | Type | Description |
---|---|---|
VMOT | Power Input | Motor power supply (8V to 35V). Connect to the stepper motor power source. |
GND | Power Ground | Ground connection for motor power supply. |
VDD | Power Input | Logic voltage supply (3.3V or 5V). |
GND | Power Ground | Ground connection for logic voltage supply. |
1A, 1B | Motor Output | Connect to one coil of the stepper motor. |
2A, 2B | Motor Output | Connect to the other coil of the stepper motor. |
STEP | Logic Input | Pulse signal to control motor steps. |
DIR | Logic Input | Direction control signal. |
ENABLE | Logic Input | Enable/disable the driver (active low). |
MS1, MS2, MS3 | Logic Input | Microstepping mode selection pins. |
RESET | Logic Input | Resets the driver (active low). |
SLEEP | Logic Input | Puts the driver into low-power sleep mode (active low). |
Power Connections:
Motor Connections:
Control Signals:
Microstepping Configuration:
MS1 | MS2 | MS3 | Microstepping Mode |
---|---|---|---|
LOW | LOW | LOW | Full Step |
HIGH | LOW | LOW | Half Step |
LOW | HIGH | LOW | Quarter Step |
HIGH | HIGH | LOW | Eighth Step |
HIGH | HIGH | HIGH | Sixteenth Step |
Below is an example code to control a stepper motor using the A4988 driver and an Arduino UNO:
// Define control pins for the A4988 driver
#define STEP_PIN 3 // Connect to the STEP pin of the A4988
#define DIR_PIN 4 // Connect to the DIR pin of the A4988
void setup() {
pinMode(STEP_PIN, OUTPUT); // Set STEP pin as output
pinMode(DIR_PIN, OUTPUT); // Set DIR pin as output
digitalWrite(DIR_PIN, HIGH); // Set initial direction (HIGH or LOW)
}
void loop() {
// Generate a pulse to move the stepper motor one step
digitalWrite(STEP_PIN, HIGH); // Set STEP pin HIGH
delayMicroseconds(1000); // Wait for 1 millisecond
digitalWrite(STEP_PIN, LOW); // Set STEP pin LOW
delayMicroseconds(1000); // Wait for 1 millisecond
}
Motor Not Moving:
Driver Overheating:
Motor Vibrates but Does Not Rotate:
Motor Moves in the Wrong Direction:
Q: Can I use the A4988 with a 12V power supply?
Q: How do I know the correct current limit for my motor?
VREF = I * 8 * R
(where R is the sense resistor value, typically 0.1Ω) to set the current limit.Q: Can I control multiple stepper motors with one Arduino?
By following this documentation, you can effectively use the A4988 Stepper Motor Driver (Red) in your projects.