附带测试视频:
UNO5128驱动步进电机正反转测试视频.zip
(4.52 MB, 下载次数: 11)
视频中看到电机正反转和指示灯的变化。
另外,在程序看到TQ端也会相应操作,这个可以改变输出电流。选择输出100%设定的电流,或者输出50%设定的电流
主循环中的代码:
- void loop() // put your main code here, to run repeatedly:
- {
- if(c>0) // 通过软件延时来取反端口电平,实现脉冲输出
- {
- digitalWrite(RUN_ON,LOW); // 开启LED指示灯 // 2a
- digitalWrite(CLK,HIGH);
- delayMicroseconds(CLK_F); // 适合8细分或更高细分 转动 // 参考宏定义说明
- digitalWrite(CLK,LOW);
- delayMicroseconds(CLK_F); // CLK_F 延时值的大于影响输出脉冲的频率
- c--; // 每次计数,CLK端输出一个完整的脉冲
- digitalWrite(RUN_ON,HIGH); // 关闭LED指示灯 // 2a
- }
- else // c = 20480; // 输出脉冲数量达到设定值后,重新设定脉冲数量,并改变电机方向
- {
- c = 32000; // C=(200*M)*N; M为设定的细分数,括号内是每圈的脉冲数量。 N=转动的圈数
- if(a>0)
- {
- a=0x00;
- digitalWrite(EN,LOW); // 非必要操作 // EN端清零,关闭TB5128功率级 //会影响电机锁相,进入脱机状态
- digitalWrite(DIR,HIGH); // 切换电机转动方向
- delayMicroseconds(5); // 改变方向后,延时一段时间再发脉冲
- digitalWrite(EN,HIGH); // Set Enable HIGH // 开启TB5128功率输出 // *
- //digitalWrite(RUN_ON,HIGH); // 关闭LED指示灯 // 1a
- TQ_HIGH; // 50% 的设定电流
- hc595Write(data_595); // 把数据写入到HC595 // 数据更改后,必须要调用hc595Write(data_595)来刷新输出
- delay(2000); // 半流锁相2秒左右 // 方便观察电源端电流的变化
- TQ_LOW; // 输出电流为设定值的 100% // 恢复设定电流输出
- hc595Write(data_595); // 把数据写入到HC595
- //digitalWrite(RUN_ON,LOW); // 开启LED指示灯 // 1a
- }
- else
- {
- a=0x01;
- digitalWrite(EN,LOW); // 非必要操作 // EN端清零,关闭TB5128功率级 //会影响电机锁相,进入脱机状态
- digitalWrite(DIR,LOW); // 切换电机转动方向
- delayMicroseconds(5); // 改变方向后,延时一段时间再发脉冲
- digitalWrite(EN,HIGH); // Set Enable HIGH // 开启TB5128功率输出 // *
- //digitalWrite(RUN_ON,HIGH); // 关闭LED指示灯 // 1a
- TQ_HIGH; // 50% 的设定电流
- hc595Write(data_595); // 把数据写入到HC595
- delay(2000); // 半流锁相2秒左右 // 方便观察电源端电流的变化
- TQ_LOW; // 输出电流为设定值的 100% // 恢复设定电流输出
- hc595Write(data_595); // 把数据写入到HC595
- //digitalWrite(RUN_ON,LOW); // 开启LED指示灯 // 1a
- }
- }
- }
|