目录
一、硬件介绍
1、型号
(1)步进电机
(2)驱动器
2、接线图
3、电机旋转圈速和位置
(1)电机旋转一圈对应脉冲数设置
(2)电机旋转速度设置
二、功能代码和测试
1、代码
2、测试效果
(1)转速1
(2)转速2
一、硬件介绍
1、型号
(1)步进电机
(2)驱动器
2、接线图
采用共阳极极限方式。
3、电机旋转圈速和位置
(1)电机旋转一圈对应脉冲数设置
如果所示拨码开关S1、S2、S3对应脉冲数设置。S1设置ON、S2和S3设置OFF,对应800。电机转一圈脉冲:800*2=1600。
(2)电机旋转速度设置
修改脉冲周期时间,即可改变旋转速度。具体见程序。
二、功能代码和测试
控制器上电以后,电机正转一圈、等待一秒,反转一圈、等待一秒。如此一直循环运行。
1、代码
#define Puls 7 //脉冲位为引脚7
#define Dir 6 //方向位为引脚6(高电平正转、低电平反转)
#define Ena 10 //使能位为引脚10。(低电平电机禁止运动,高电平电机有效)
#define bushu 1600 //脉冲步数 1600个脉冲转一圈()const int pulsTime=1000; //脉冲高低电平时间(延时大转速降低)void setup()
{//Serial.begin(9600);//pinMode(Puls, OUTPUT);pinMode(Dir, OUTPUT);pinMode(Ena, OUTPUT);//digitalWrite(Ena, HIGH);}void loop()
{//正转//使电机向特定方向运动Serial.println("Forward Begins");digitalWrite(Dir, HIGH);//方向引脚高电位,正转// 正向转(bushu脉冲)for (int x = 0; x < bushu; x ++) {digitalWrite(Puls, HIGH);delayMicroseconds(pulsTime); //500微秒延时,即0.5毫秒digitalWrite(Puls, LOW);delayMicroseconds(pulsTime);}Serial.println("Forward Ends");delay(1000); // Delay for one second//逆转 //使电机向反方向运动Serial.println("Backward Begins");digitalWrite(Dir, LOW);//方向引脚低电位,逆转// 反向转(bushu脉冲)for (int x = 0; x < bushu; x ++) {digitalWrite(Puls, HIGH);delayMicroseconds(pulsTime);digitalWrite(Puls, LOW);delayMicroseconds(pulsTime);}Serial.println("Backward Ends");delay(1000); //Delay for two seconds
}
2、测试效果
串口接收到反馈的运行状态
(1)转速1
const int pulsTime=500;
0.5ms脉冲电机速度
(2)转速2
const int pulsTime=250;
0.25ms脉冲电机转速