完善资料让更多小伙伴认识你,还能领取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跟的那种试试,昨天我用你的程序带下去跑,结果只向一个方向转。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2654 浏览 0 评论
5371 浏览 0 评论
PROTUES仿真no model specified for adc0809,谁有ADC0809的model?
17651 浏览 1 评论
单片机应用技术的ISIS professional电路设置仿真老是报错怎么办
17944 浏览 0 评论
21215 浏览 3 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 12:12 , Processed in 1.023923 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5549