稳步推进 | 用 Arduino 驱动步进电机、丝杠滑台

丝杠滑台、步进电机参数

丝杆规格 T6*2-100mm ,前两位T6代表丝杆的直径6mm,后两位代表丝杆的导程(螺距)1mm/2mm/4mm/6mm/12mm(电机转动一圈滑块移动的距离),最后的100mm表示滑台的有效行程(滑块所能移动的距离不含滑块的长度)。

该丝杠滑台使用了 28 步进电机(28*28*30mm,两相四线):

  • 电压:24v
  • 电流:0.6A
  • 转矩:0.07N·m
  • 步距角:1.8°

步进电机驱动器

TB6600 升级版驱动器是一款专业的两相混合式步进电机驱动器,可适配国内外各种品牌,电流在 4.0A 及以下,外径 39, 42, 57mm 的四线,六线,八线两相混合式步进电机。适合各种小中型自动化设备和仪器,例如:雕刻机、打标机、切割机、激光照排、绘图仪、数控机床、拿放装置等。在用户期望低成本、大电流运行的设备中效果特性。

信号输入端

  • PUL:脉冲输入信号。默认脉冲上升沿有效,为了可靠响应脉冲信号,脉冲宽度应大于1.2us。
  • DIR:方向输入信号,高/低电平信号,为保证电机可靠换向,方向信号应先于脉冲信号至少 5us 建立。电机的初始运行方向与电机绕组接线关,互换任一相绕组(如A+, A-交换)可以改变电机初始运行方向。
  • ENA:使能输入信号(脱机信号)用,使能或禁止驱动器输出使能时,驱动器将切断电机各相的电流使电机处于自由状态,不响应步进脉冲。当不需用此功能时,使能信号端悬空即可。

接线注意事项

  1. 为了防止驱动器受干扰,建议控制信号采用屏蔽电缆线,并且屏蔽层与地线短接,同一机器内只允许在同一点接地,如果不是真实接地线,可能干扰严重,此时屏蔽层不接。
  2. 脉冲和方向信号线与电机线和电源线不允许并排包扎在一起,最好分开至少10cm以上,否则电机噪声容易干扰脉冲方向信号引起电机定位不准,系统不稳定等故障。
  3. 如果一个电源供多台驱动器,应在电源处采取并联连接,不允许先到一台再到另一台链状式连接。
  4. 严禁带电拔插驱动器电源端子,带电的电机停止时仍有大电流流过线圈,拔插电源端子将导致巨大的瞬间感生电动势将烧坏驱动器。
  5. 严禁将导线头加锡后接入接线端子,否则可能因接触电阻变大而过热损坏端子。
  6. 接线线头不能裸露在端子外,以防意外短路而损坏驱动器。

电流、细分拨码开关设定

机械尺寸图

装置接线方法

28 步进电机(28*28*30mm,两相四线)中有四条线:红接A+;蓝接A-;绿接B+;黑接B-。(图中的电机上的贴纸指示:红接B+;蓝接B-;绿接A-;黑接A+)。

控制步进电机,要有3条线接到 Arduino 控制板上,不管是共阴还是共阳接法。三条线分别是:PUL,DIR,ENA。

  • 共阳接法:将 PUL+ DIR+ ENA+ 串联一起,再接到 Arduino 的 5V 供电引脚上,PUl- DIR- 分别接到 Arduino 板的控制引脚上,还剩下的ENA-,可以接到5V,或者悬空不接。
  • 共阴接法:与上述接法相反,即 PUL-, DIR-, EN- 连接一起,再接到 Arduino 的 GND上面。

本例采用共阴接法:

  1. 将 PUL-, DIR-, EN- 连接一起,再接到 Arduino 的 GND 上面。
  2. PUL+ 连接到 Arduino 的 9 引脚,控制步进转动。
  3. DIR+ 连接到 Arduino 的 8 引脚,控制步进转动方向。
  4. EN+ 连接到 Arduino 的 GND 上,也可以悬空不接。

Arduino 代码

/***********************
  Connect to the Arduino:
  1. 将 PUL-, DIR-, EN- 连接一起,再接到 Arduino 的 GND 上面。
  2. PUL+ 连接到 Arduino 的 9 引脚,控制步进转动。
  3. DIR+ 连接到 Arduino 的 8 引脚,控制步进转动方向。
  4. EN+ 连接到 Arduino 的 GND 上,也可以悬空不接。
************************/
#define dirpin 8  //DIR+
#define steppin  9 //PUL+

void setup() {
  Serial.begin(115200);
  pinMode(dirpin, OUTPUT);
  digitalWrite(dirpin, LOW);
  pinMode(steppin, OUTPUT);
  digitalWrite(steppin, LOW);
}

void loop() {
    MotorZ();
}

void MotorZ() {
  digitalWrite(dirpin, HIGH); // 设置转动的方向
  Serial.println("MotorZ...");
  for (int i = 0; i < 1; i++) {
    digitalWrite(steppin, LOW); // 从低到高的变化
    delayMicroseconds(400);
    digitalWrite(steppin, HIGH);
    delayMicroseconds(400); // 修改此处可以改变步进电机速度;修改驱动器上的细分亦可实现
  }
}

void MotorR() {
  digitalWrite(dirpin, LOW); // 设置转动的方向
  Serial.println("MotorR...");
  for (int i = 0; i < 1; i++) {
    digitalWrite(steppin, LOW); // 从低到高的变化
    delayMicroseconds(400);
    digitalWrite(steppin, HIGH);
    delayMicroseconds(400);

  }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇