The A4988 driver Stepper Motor Driver is a complete micro-stepping motor driver with built-in converter, easy to operate. It operates from 8 V to 35 V and can deliver up to approximately 1 A per phase without a heat sink or forced air flow (it is rated for 2 A per coil with sufficient additional cooling).
A4988 driver Stepper Motor Driver includes a fixed off-time current regulator, the regulator can be in slow or mixed decay mode. The converter is the key to the easy implementation of the A4988.
There are no phase sequence tables, the high-frequency control interface programming etc. The application of A4988 interface is very suitable for a complex microprocessor is not available or overload. In the stepping operation, the chopping control in the A4988 automatically selects the current decay mode (slow or mixed). The mix decay current control scheme can reduce the audible motor noise, increased step accuracy, and reduced power consumption.
Provide internal synchronous rectification contr
ol circuitry, in order to improve the pulse width modulation (PWM) power consumption during operation.
Internal circuit protection includes thermal shutdown with hysteresis, under-voltage lockout (UVLO) and crossover current protection. Don’t need special power-up sequencing. A4988 uses surface mount QFN package (ES), the size is 5 mm × 5 mm, nominal overall package height is 0.90 mm, with an exposed thermal pad to enhance the heat dissipation function.
Features :
Automatic current decay mode detection/choice.
Mixed with slow current decay mode.
The low power dissipation of synchronous rectifier.
Internal UVLO(ultra voltage lockout).
Crossover current protection.
Thermal shutdown circuit.
Ground fault protection.
Loading and short circuit protection.
The optional five-step mode: full, 1/2, 1/4, 1/8 and 1/16.
Package Includes :
1 x A4988 Stepper Motor Driver- Normal quality.
1 x Heat sink.
Pin Connections Table 1
Board Sensor Pin Connection A4988 STEP/DIR board digital pin / board digital pin
A4988 Stepper Motor Driver - Arduino Uno
A4988 Stepper Motor Driver - Arduino Nano
A4988 Stepper Motor Driver - Arduino Mega
A4988 Stepper Motor Driver - ESP32
A4988 Stepper Motor Driver - ESP8266
A4988 Stepper Motor Driver - STM32
A4988 Stepper Motor Driver - Raspberry Pi Pico
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // A4988: STEP=3 , DIR=4 on Arduino Uno. Motor power comes from the driver's own VMOT supply, not the microcontroller.
6 #define STEP_PIN 3
7 #define DIR_PIN 4
8
9 void setup () {
10 Serial.begin (115200 );
11 pinMode (STEP_PIN, OUTPUT );
12 pinMode (DIR_PIN, OUTPUT );
13 }
14
15 void loop () {
16 digitalWrite (DIR_PIN, HIGH );
17 for (int i = 0 ; i < 200 ; i++) { // 200 steps = 1 full revolution on a 1. 8deg/step motor at full-step
18 digitalWrite (STEP_PIN, HIGH );
19 delayMicroseconds (800 );
20 digitalWrite (STEP_PIN, LOW );
21 delayMicroseconds (800 );
22 }
23 delay (500 );
24
25 digitalWrite (DIR_PIN, LOW );
26 for (int i = 0 ; i < 200 ; i++) {
27 digitalWrite (STEP_PIN, HIGH );
28 delayMicroseconds (800 );
29 digitalWrite (STEP_PIN, LOW );
30 delayMicroseconds (800 );
31 }
32 delay (500 );
33 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // A4988: STEP=3 , DIR=4 on Arduino Nano. Motor power comes from the driver's own VMOT supply, not the microcontroller.
6 #define STEP_PIN 3
7 #define DIR_PIN 4
8
9 void setup () {
10 Serial.begin (115200 );
11 pinMode (STEP_PIN, OUTPUT );
12 pinMode (DIR_PIN, OUTPUT );
13 }
14
15 void loop () {
16 digitalWrite (DIR_PIN, HIGH );
17 for (int i = 0 ; i < 200 ; i++) { // 200 steps = 1 full revolution on a 1. 8deg/step motor at full-step
18 digitalWrite (STEP_PIN, HIGH );
19 delayMicroseconds (800 );
20 digitalWrite (STEP_PIN, LOW );
21 delayMicroseconds (800 );
22 }
23 delay (500 );
24
25 digitalWrite (DIR_PIN, LOW );
26 for (int i = 0 ; i < 200 ; i++) {
27 digitalWrite (STEP_PIN, HIGH );
28 delayMicroseconds (800 );
29 digitalWrite (STEP_PIN, LOW );
30 delayMicroseconds (800 );
31 }
32 delay (500 );
33 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // A4988: STEP=3 , DIR=4 on Arduino Mega. Motor power comes from the driver's own VMOT supply, not the microcontroller.
6 #define STEP_PIN 3
7 #define DIR_PIN 4
8
9 void setup () {
10 Serial.begin (115200 );
11 pinMode (STEP_PIN, OUTPUT );
12 pinMode (DIR_PIN, OUTPUT );
13 }
14
15 void loop () {
16 digitalWrite (DIR_PIN, HIGH );
17 for (int i = 0 ; i < 200 ; i++) { // 200 steps = 1 full revolution on a 1. 8deg/step motor at full-step
18 digitalWrite (STEP_PIN, HIGH );
19 delayMicroseconds (800 );
20 digitalWrite (STEP_PIN, LOW );
21 delayMicroseconds (800 );
22 }
23 delay (500 );
24
25 digitalWrite (DIR_PIN, LOW );
26 for (int i = 0 ; i < 200 ; i++) {
27 digitalWrite (STEP_PIN, HIGH );
28 delayMicroseconds (800 );
29 digitalWrite (STEP_PIN, LOW );
30 delayMicroseconds (800 );
31 }
32 delay (500 );
33 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // A4988: STEP=26 , DIR=27 on ESP32. Motor power comes from the driver's own VMOT supply, not the microcontroller.
6 #define STEP_PIN 26
7 #define DIR_PIN 27
8
9 void setup () {
10 Serial.begin (115200 );
11 pinMode (STEP_PIN, OUTPUT );
12 pinMode (DIR_PIN, OUTPUT );
13 }
14
15 void loop () {
16 digitalWrite (DIR_PIN, HIGH );
17 for (int i = 0 ; i < 200 ; i++) { // 200 steps = 1 full revolution on a 1. 8deg/step motor at full-step
18 digitalWrite (STEP_PIN, HIGH );
19 delayMicroseconds (800 );
20 digitalWrite (STEP_PIN, LOW );
21 delayMicroseconds (800 );
22 }
23 delay (500 );
24
25 digitalWrite (DIR_PIN, LOW );
26 for (int i = 0 ; i < 200 ; i++) {
27 digitalWrite (STEP_PIN, HIGH );
28 delayMicroseconds (800 );
29 digitalWrite (STEP_PIN, LOW );
30 delayMicroseconds (800 );
31 }
32 delay (500 );
33 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // A4988: STEP=D5, DIR=D6 on ESP8266. Motor power comes from the driver's own VMOT supply, not the microcontroller.
6 #define STEP_PIN D5
7 #define DIR_PIN D6
8
9 void setup () {
10 Serial.begin (115200 );
11 pinMode (STEP_PIN, OUTPUT );
12 pinMode (DIR_PIN, OUTPUT );
13 }
14
15 void loop () {
16 digitalWrite (DIR_PIN, HIGH );
17 for (int i = 0 ; i < 200 ; i++) { // 200 steps = 1 full revolution on a 1. 8deg/step motor at full-step
18 digitalWrite (STEP_PIN, HIGH );
19 delayMicroseconds (800 );
20 digitalWrite (STEP_PIN, LOW );
21 delayMicroseconds (800 );
22 }
23 delay (500 );
24
25 digitalWrite (DIR_PIN, LOW );
26 for (int i = 0 ; i < 200 ; i++) {
27 digitalWrite (STEP_PIN, HIGH );
28 delayMicroseconds (800 );
29 digitalWrite (STEP_PIN, LOW );
30 delayMicroseconds (800 );
31 }
32 delay (500 );
33 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // A4988: STEP=PB0, DIR=PB1 on STM32. Motor power comes from the driver's own VMOT supply, not the microcontroller.
6 #define STEP_PIN PB0
7 #define DIR_PIN PB1
8
9 void setup () {
10 Serial.begin (115200 );
11 pinMode (STEP_PIN, OUTPUT );
12 pinMode (DIR_PIN, OUTPUT );
13 }
14
15 void loop () {
16 digitalWrite (DIR_PIN, HIGH );
17 for (int i = 0 ; i < 200 ; i++) { // 200 steps = 1 full revolution on a 1. 8deg/step motor at full-step
18 digitalWrite (STEP_PIN, HIGH );
19 delayMicroseconds (800 );
20 digitalWrite (STEP_PIN, LOW );
21 delayMicroseconds (800 );
22 }
23 delay (500 );
24
25 digitalWrite (DIR_PIN, LOW );
26 for (int i = 0 ; i < 200 ; i++) {
27 digitalWrite (STEP_PIN, HIGH );
28 delayMicroseconds (800 );
29 digitalWrite (STEP_PIN, LOW );
30 delayMicroseconds (800 );
31 }
32 delay (500 );
33 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // A4988: STEP=14 , DIR=15 on Raspberry Pi Pico. Motor power comes from the driver's own VMOT supply, not the microcontroller.
6 #define STEP_PIN 14
7 #define DIR_PIN 15
8
9 void setup () {
10 Serial.begin (115200 );
11 pinMode (STEP_PIN, OUTPUT );
12 pinMode (DIR_PIN, OUTPUT );
13 }
14
15 void loop () {
16 digitalWrite (DIR_PIN, HIGH );
17 for (int i = 0 ; i < 200 ; i++) { // 200 steps = 1 full revolution on a 1. 8deg/step motor at full-step
18 digitalWrite (STEP_PIN, HIGH );
19 delayMicroseconds (800 );
20 digitalWrite (STEP_PIN, LOW );
21 delayMicroseconds (800 );
22 }
23 delay (500 );
24
25 digitalWrite (DIR_PIN, LOW );
26 for (int i = 0 ; i < 200 ; i++) {
27 digitalWrite (STEP_PIN, HIGH );
28 delayMicroseconds (800 );
29 digitalWrite (STEP_PIN, LOW );
30 delayMicroseconds (800 );
31 }
32 delay (500 );
33 }
Project Notes: Step/direction bipolar stepper driver, up to 1/16 microstepping.