找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

这个单片机程序为啥步进电机实际效果没有转360度?只转了90度多

查看数: 2189 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-7-1 16:45

正文摘要:

理想效果是电机正向转360度后反向转360度,但实际效果只转了90度多。

回复

ID:963509 发表于 2022-7-3 09:32
周翔宇 发表于 2022-7-3 00:00
512*angle=512*360=184320,这个地方先溢出,才会再除45

好的,太谢谢了
ID:963509 发表于 2022-7-3 09:32

可以了,谢谢大佬,太谢谢了
ID:884739 发表于 2022-7-3 00:00
512*angle=512*360=184320,这个地方先溢出,才会再除45
ID:161164 发表于 2022-7-2 21:33
wuliao0o0 发表于 2022-7-2 17:53
改成int和float试了一下都不行

改long啊
  1. void MotorRun (uint angle, uint drct, uint speed){
  2. long step, nangle;
  3. nangle=(long)512*angle/45;//将角度换算成拍数,计算结果自动耶
  4. ...
复制代码



ID:963509 发表于 2022-7-2 17:57
如果把MotorRun方法里的angle参数改成int型后,电机会一直朝着一个方向转
ID:963509 发表于 2022-7-2 17:55

从网上找了个精确延时的程序放进去了也不行
ID:963509 发表于 2022-7-2 17:53
Hephaestus 发表于 2022-7-1 20:17
MotorRun函数第二行溢出了。

改成int和float试了一下都不行
ID:883242 发表于 2022-7-1 20:17
MotorRun函数第二行溢出了。
ID:329625 发表于 2022-7-1 19:32
定时是不是不对

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表