完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
仿真步进电机,电机就是不转,这是什么情况,请大神多指点,困扰好几天了,附带源码一起分析
#include ***it A1=P1^0; //定义步进电机连接端口 ***it B1=P1^1; ***it C1=P1^2; ***it D1=P1^3; #define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电 #define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电 #define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电 #define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电 #define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电 unsigned char Speed; /*------------------------------------------------ uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t) { while(--t); } /*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t) { while(t--) { //大致延时1mS DelayUs2x(245); DelayUs2x(245); } } /*------------------------------------------------ 主函数 ------------------------------------------------*/ main() { //unsigned int i=64*16; //转2周停止 Speed=5; //调整速度 while(1) { Coil_A1 //遇到Coil_A1 用{A1=1;B1=0;C1=0;D1=0;}代替 DelayMs(Speed); //改变这个参数可以调整电机转速 , //数字越小,转速越大,力矩越小 Coil_B1 DelayMs(Speed); Coil_C1 DelayMs(Speed); Coil_D1 DelayMs(Speed); } }
|
|
相关推荐
4个回答
|
|
下来看看,不知道行不
|
|
|
|
程序没错,但是想法,思路有点问题,而且你的不仅电机也用错了。
|
|
|
|
这个电机是不是2相电机啊,4相电机至少有5根线是不是,也有根的?? |
|
|
|
用6跟的那种试试,昨天我用你的程序带下去跑,结果只向一个方向转。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4849 浏览 3 评论
6138 浏览 1 评论
6406 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
8154 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1236 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 17:06 , Processed in 0.674761 second(s), Total 85, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号