

The A4983 is a microstepping driver designed for controlling bipolar stepper motors. It provides precise control over motor movement by offering up to 16 microsteps per full step, enabling smooth operation and reduced noise. The driver features adjustable current control, allowing users to fine-tune the motor's performance to suit their application. With a maximum current rating of 2A per phase, the A4983 is suitable for a wide range of stepper motor applications.








Below are the key technical details of the A4983 microstepping driver:
| Parameter | Value |
|---|---|
| Motor Type Supported | Bipolar stepper motors |
| Microstepping Modes | Full, 1/2, 1/4, 1/8, 1/16 |
| Maximum Current per Phase | 2A |
| Operating Voltage Range | 8V to 35V |
| Logic Voltage Range | 3.3V to 5V |
| Step Frequency | Up to 500 kHz |
| Thermal Shutdown Protection | Yes |
| Overcurrent Protection | Yes |
| Dimensions | 15mm x 20mm |
The A4983 has 16 pins, each serving a specific function. Below is the pinout and description:
| Pin Name | Pin Number | Description |
|---|---|---|
| VDD | 1 | Logic voltage input (3.3V or 5V). |
| GND | 2, 3 | Ground connection. |
| VMOT | 4 | Motor power supply (8V to 35V). |
| AOUT1 | 5 | Output for motor coil A (positive terminal). |
| AOUT2 | 6 | Output for motor coil A (negative terminal). |
| BOUT1 | 7 | Output for motor coil B (positive terminal). |
| BOUT2 | 8 | Output for motor coil B (negative terminal). |
| STEP | 9 | Step input signal. Each pulse advances the motor by one step. |
| DIR | 10 | Direction input signal. Determines the rotation direction of the motor. |
| MS1, MS2, MS3 | 11, 12, 13 | Microstepping mode selection pins. |
| ENABLE | 14 | Enable/disable the driver. Active low. |
| RESET | 15 | Resets the driver. Active low. |
| SLEEP | 16 | Puts the driver into low-power sleep mode. Active low. |
Below is an example of how to control a stepper motor using the A4983 and an Arduino UNO:
// Define pin connections
#define STEP_PIN 3 // Connect to STEP pin on A4983
#define DIR_PIN 4 // Connect to DIR pin on A4983
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 = clockwise)
}
void loop() {
// Rotate the motor one step at a time
digitalWrite(STEP_PIN, HIGH); // Generate a step pulse
delayMicroseconds(1000); // Wait 1 ms
digitalWrite(STEP_PIN, LOW); // End the step pulse
delayMicroseconds(1000); // Wait 1 ms
}
Motor Not Moving:
Overheating:
Motor Vibrating but Not Rotating:
Driver Not Responding:
Q: Can the A4983 drive unipolar stepper motors?
A: No, the A4983 is designed specifically for bipolar stepper motors.
Q: What happens if I exceed the current limit?
A: The A4983 has overcurrent protection and will shut down to prevent damage. However, it is recommended to set the current limit appropriately to avoid triggering this protection.
Q: Can I use the A4983 with a 12V power supply?
A: Yes, the A4983 supports a voltage range of 8V to 35V, so a 12V power supply is suitable.
Q: How do I calculate the current limit?
A: The current limit can be calculated using the formula:
Current Limit = VREF / (8 * RS)
Where VREF is the voltage on the REF pin, and RS is the sense resistor value.
By following this documentation, you can effectively use the A4983 microstepping driver in your projects!