大家好,欢迎来到IT知识分享网。
设计者:STCode (公众号同名)
Arduino控制42 步进电机 串口控制旋转位置
1)描述
42步进电机的驱动方式有多种,例如用A4988步进电机模块,这次我们使用TB6600驱动器驱动一个42步进电机,设置东南西北四个方向,当串口输入1、2、3、4时,步进电机转轴转到对应的方向。
2) 使用主要器件
1、Arduino Uno控制板
2、42步进电机
3、TB6600驱动器
4、导线
3)元件介绍
①42步进电机:
42步进电机为两相四线电机,相数是指线圈内部的线圈组数,目前常用的有二相-五相步进电机。电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°,四线就是电机出线有四根线。
②TB6600参数:
驱动器型号 | TB6600 |
---|---|
控制信号 | 3.3V/5/24V通用 |
输入电压 | DC9~42V |
电流 | 0.5A~3.5A |
最大细分数 | 6400细分 |
4)电路设计
序号—————-Arduino Uno板引脚号——————TB6600驱动器
1 —————————D3 —————————————-DIR+
2 —————————D4 —————————————-PUL+
3 ————————-GND —————————————-DIR-
4 ————————-GND —————————————-PUL-
步进电机的A+、A-、B+、B-分别对应接到驱动器的A+、A-、B+、B-。
接线如图所示
将驱动器的拨码开关拨至如图所示
拨码开关的S1、S2、S3是用来设置细分数的,可以设置细分数200、400、800、1600等,设置为200的话,给一个脉冲是转1.8°,设置为400的话,给一个脉冲是转0.9°,为了演示方便,这里选择800细分,给一个脉冲是转0.45度,因此同样频率的脉冲信号可以使得步进电机的转速更低。
拨码开关的S4、S5、S6是用来调电流大小的,我用的步进电机的额定电流为1.5A,因此设置S4-ON、S5-ON、S6-OFF。
5) 程序设计
#define DIR 3 //方向信号
#define PUL 4 //脉冲信号
定义引脚
pinMode(DIR, OUTPUT);
pinMode(PUL, OUTPUT);
定义引脚模式
Serial.begin(9600);
digitalWrite(DIR, LOW);//设置步进电机转动方向
设置串口波特率和转动方向,HIGH和LOW对应不同方向。
if(Serial.available()>0)
{
num=Serial.read();
Serial.println(num);
}
串口读取数据
void turn(int count)
{
for(int i=0;i<count;i++)
{
digitalWrite(PUL, HIGH);
delayMicroseconds(800);
digitalWrite(PUL, LOW);
delayMicroseconds(800);
}
}
转轴旋转子函数,count为200,转轴转1/4圈,count为400,转轴转1/2圈,以此类推。
更多创意作品请关注公众号:STCode
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/26343.html