Microduino-Shield Stepper/zh

来自Microduino Wikipedia
502748957@qq.com讨论 | 贡献2016年1月21日 (四) 03:02的版本 文档
跳转至: 导航搜索
Language English
Microduino-Shield Stepper

Microduino-Shield Stepper板子一款带转换器和过流保护的DMOS微步驱动器,用于平衡车,使用时叠加Mocroduino核心模块与需要的功能模块即可。


特色

  • 板载步进电机驱动器A4988SETTR;
  • Upin27底座,可结合更多的Microduino模块;
  • 体积小

规格

  • 6.4V-8.4V输入电压
  • 使用ETA1483降压芯片
  • SS34二极管整流
  • 采用4988SETTR步进电机驱动
  • 引脚与功能
功能 引脚
ENABLE D4
A.Step D5
A.dir A0
B.Step D6
B.dir A1
C.Step D7
C.dir A2
D.Step D8
D.dir A3
电池电量 A7
  • 留出IIC接口
  • 4个步进电机接口
  • Upin27底座
  • 步进电机驱动模式:1/8(默认)

电机细分详解

MS1 MS2 MS3 步进模式
L L L
H L L
L H L 4细分
H H L 8细分
H H H 16细分
Stpshdxifen.jpg

引脚说明:

步进电机驱动芯片A4988SETTR特点

    • 低RDS(上)输出
    • 自动电流衰减模式检测/选择
    • 混合和慢速电流衰变模式
    • 低功耗的同步整流
    • 内部UVLO
    • 交叉电流保护
    • 3.3和兼容5 V的逻辑供应
    • 热关断电路
    • Short-to-ground保护
    • 负载短路保护
    • 五个可选步模式全1/2,1/4,1/8,和1/16

A4988电流调整

  • 调整4988步进马达驱动板电流上限特别注意:测量电压的时候千万要小心,不要短路到不该碰到的接点,很可能会造成4988烧毁!!!
  • 特别注意:4988的输出电流,超过1安培的话,必须加装散热片。超过1.5安培,需要再加风扇。就算有安装散热片、风扇,输出电流也不应超过2安培。否则有烧毁的危险。
  • 根据Pololu产品网页上的说明,一般步进马达使用4988驱动时,步进马达实际测量到的电流,大约是4988输出电流上限的0.7倍。所以需要设定的电流输出上限,会是马达标定的额定电流除以0.7。
  • 4988输出电流上限的计算公式:I=Vref/(8xRs).
  • Vref是参考电压,利用可变电阻设计出可以调整Vref的电路,让使用者能够自行调整输出电流上限。

Rs是参考电阻,我们使用的是0.11Ω的。

  • 可变电阻的金属螺丝头就是Vref的测量点,用万用表的正极做测量,另一头接在GND
  • 举例说明如果你买到的步进马达,额订电流是1.5安培,那4988输出电流上限会是 1.5/0.7 = 2.14 安培。之后Rs是0.11欧姆,那你需要把Vref调整成 (1.5/0.7)*8*0.11 = 1.88伏特
  • 调整效果:调整的时候最终要使电流可以驱动步进电机,保证力量足够,但是不要过大使电机过热。

文档

  • 原理图:

Shield Stepper原理图

  • 步进电机驱动A4988SETTR

A4988Datasheet

开发

主要应用在平衡车上。Upin27接口可叠加Microduino扩展模块做二次开发。

  • 简单示例程序

将步进电机使用2.54 4pin连接线接在MotorA接口上 程序效果是使步进电机正转一个角度,停止500ms继续正转。如需要反转则将注释部分取消并注释掉上面两行

//声明Motor1引脚的驱动管脚D5,A0,使能D4
#define MOTOR_EN 4 //PORTB,0 
#define MOTOR1_DIR A0 //PORTA,7 
#define MOTOR1_STEP 5 //PORTB,1 

void setup() {
  // put your setup code here, to run once:
  pinMode(MOTOR_EN, OUTPUT);
  pinMode(MOTOR1_DIR, OUTPUT);
  pinMode(MOTOR1_STEP, OUTPUT);

  digitalWrite(MOTOR_EN, LOW);  //使能

}
void step(boolean dir, int steps)  //步进函数,第一个变量是方向,第二个变量是步数即转的角度
{
  digitalWrite(MOTOR1_DIR, dir);
  delay(5);
  for (int i = 0; i < steps; i++) {
    digitalWrite(MOTOR1_STEP, HIGH);
    delayMicroseconds(200);
    digitalWrite(MOTOR1_STEP, LOW);
    delayMicroseconds(200);
  }
}

void loop() {
  step(1, 1000);   //正转
  delay(500);
//  step(0,1000);  //反转
//  delay(500);
}

应用

开源平衡车/zh

购买

历史

图库

Shield Stepper Front
Shield Stepper back

视频