arduino控制42步进电机驱动

学习arduino对我这种新手来说是非常友好的,准备先将arduino这块板玩明白了,这篇文章内容将记录我作为新手遇到的问题,和学习的知识点进行回顾 ,希望能坚持住T-T

1.需要准备的东西

【设备】

- Arduino uno 开发板一块,并且携带数据线一根

- 42步进电机

- 步进驱动器一个,型号是TB6600

- 24V电源适配器

- 杜邦线若干

【工具】

- 小螺丝刀,接线用

2.线路链接

【电路接法】

使用共阴极接法:分别将 PUL+,DIR+,EN+连接到控制系统的地端, 脉冲输入信号通过PUL-接入,方向信号通过DIR-接入,使能信号通过EN-接入。

3.拨码开关设定细分以及电流

【细分数】

根据驱动板上面的开关状态设定,细分后步进电机步距 角按下列方法计算:步距角=电机固有步距角/细分数。

【电流】

根据电机上的电流参数选择,比如我的电机是1.2A,使用QN-OFF-ON的拨法,千万不要忘记这一步,不然驱动板就先点亮了,别问我是怎么知道的(=-=)

最后接上电源引脚GND和VCC,暂时先不要通电

4.配置Arduino IDE

这一步就不过多赘述了,B站有相关教程自己去搜一下,建议使用旧版本(2以下),因为新版本还没有汉化,不在意英语的可以忽略

5.编写代码

用Arduino模拟输出脉冲信号

​
#define directionPin 11  //定义11引脚接DIR,控制电机正反转
#define stepPin 12   //定义12引脚接驱动器脉冲信号PUL
#define DELAY_US 150  //定义延时时间 _微秒,也就是半个脉冲的周期时间
#define stepsPerRevolution 1600   //脉冲数量

void setup() { 
  // put your setup code here, to run once:
pinMode(directionPin ,OUTPUT);//DIR输出信号
pinMode(stepPin ,OUTPUT);// PUL输出信号
}
void loop() { 
  // put your main code here, to run repeatedly:
for(int i=0;i<1*stepsPerRevolution;i++)//脉冲信号函数循环、数字控制圈数
{
digitalWrite(directionPin ,LOW); //LOW为反转、HIGH为正转
digitalWrite(stepPin ,HIGH); //高电平
delayMicroseconds(DELAY_US);//延时
digitalWrite(stepPin ,LOW);//低电平
delayMicroseconds(DELAY_US);//延时
 }
 delay(2000);//暂停时间
 for(int i=0;i<2*stepsPerRevolution;i++)
 {
digitalWrite(directionPin ,HIGH);
digitalWrite(stepPin ,HIGH); 
delayMicroseconds(DELAY_US);
digitalWrite(stepPin ,LOW);
delayMicroseconds(DELAY_US);
 }
 delay(1000);
 }

​

此代码是控制步进电机正转2圈,暂停2秒,反转4圈,暂停1秒

em...没有写结束语句,它会一直重复这个循环

6.烧录程序

√是运行代码检查是否有错误,建议先点这一步

代码运行没有问题后点击箭头烧录

一切正常后接通电源,步进电机就转起来了hhh

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值