KE0090 Keyes A3967 步进电机驱动板红色 环保

  Arduino 学习套件

1 、 概述

Keyes A3967 步进电机驱动板主要用到 a3967slb 芯片。a3967slb 是 pwm 恒流控制微步距驱动二相步进电机专用驱动器。它的工作电压可达 30v,驱动电流达 750ma。芯片内部的 pwm 电流控制电路可通过加在 pfd 的电压设置为慢、快、混合三种电流衰减模式,如果 pfd 端的电压高于 0.6vdd,则选择慢衰减方式。若低于 0.21vdd,则选择快衰减模式。处于两者之间为混合衰减模式。另外,a3967slb 还能提供完善的保护措施,包括抑制瞬态电压,过热保护、防止电流直通、欠电压自锁等功能。驱动板具有步距细分功能,默认细分为 8 细分,也就是将电机的每一步再细分为 8 小步,这样能够能够得到更精确的控制,也就是说 EasyDriver 需要 1600 步来完成一个完整的 360 度旋转。你也可以用杜邦线将引脚选择性的引到 GND 上来选择其余的 3 种模式。请看下面的说明表:

MS1 MS2 细分模式
全步 (2 相)
半步
1/4 步
1/8 步

2 、 引脚说明

MOTOR:步进电机接口

PFD:PFD 输入

RST:用于重置芯片初始值,屏蔽所有外部输出

ENABLE:为使能端

MS1 MS2:步进电机细分分辨率选择的逻辑输入口

PWR IN:电源输入 DC 7-30V

GND 5V:+5V 输出

SLP:sleep 输入

STEP:脉冲输入端口

DIR:电机运转方向的选择口

3 、 连接 方法

A3967 步进电机驱动板 UNO
DIR 8
STEP 9
ENABLE 10
GND GND
M+ 7-30V

4 、 测试代码

int DIR_PIN=8;

int STEP_PIN=9;

int ENABLE_PIN=10;

void setup()

{

pinMode(DIR_PIN, OUTPUT);

pinMode(STEP_PIN, OUTPUT);

pinMode(ENABLE_PIN, OUTPUT);

}

void loop()

{

digitalWrite(ENABLE_PIN,LOW);

A3967 步进电机驱动板 UNO

DIR 8

STEP 9

ENABLE 10

GND GND

M+ 7-30V

rotateDeg(360, 1);

delay(1000);

rotateDeg(-360, .1);

delay(1000);

rotate(1600, .5);

delay(1000);

rotate(-1600, .25);

delay(1000);

}

void rotate(int steps, float speed)

{

int dir = (steps > 0);

steps = abs(steps);

digitalWrite(DIR_PIN,dir);

float usDelay = (1/speed) * 70;

for(int i=0; i < steps; i++)

{

digitalWrite(STEP_PIN, HIGH);

delayMicroseconds(usDelay);

digitalWrite(STEP_PIN, LOW);

delayMicroseconds(usDelay);

}

}

void rotateDeg(float deg, float speed)

{

int dir = (deg > 0);

digitalWrite(DIR_PIN,dir);

int steps = abs(deg)*(1/0.225);

float usDelay = (1/speed) * 70;

for(int i=0; i < steps; i++)

{

digitalWrite(STEP_PIN, HIGH);

delayMicroseconds(usDelay);

digitalWrite(STEP_PIN, LOW);

delayMicroseconds(usDelay);

}

}

5 、 测试结果

按照接线方法接好线,烧录好代码,上电后,步进电机转