学习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