找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2186|回复: 9
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
理想效果是电机正向转360度后反向转360度,但实际效果只转了90度多。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:329625 发表于 2022-7-1 19:32 | 只看该作者
定时是不是不对
回复

使用道具 举报

板凳
ID:883242 发表于 2022-7-1 20:17 | 只看该作者
MotorRun函数第二行溢出了。
回复

使用道具 举报

地板
ID:963509 发表于 2022-7-2 17:53 | 只看该作者
Hephaestus 发表于 2022-7-1 20:17
MotorRun函数第二行溢出了。

改成int和float试了一下都不行
回复

使用道具 举报

5#
ID:963509 发表于 2022-7-2 17:55 | 只看该作者

从网上找了个精确延时的程序放进去了也不行
回复

使用道具 举报

6#
ID:963509 发表于 2022-7-2 17:57 | 只看该作者
如果把MotorRun方法里的angle参数改成int型后,电机会一直朝着一个方向转
回复

使用道具 举报

7#
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. ...
复制代码



回复

使用道具 举报

8#
ID:884739 发表于 2022-7-3 00:00 | 只看该作者
512*angle=512*360=184320,这个地方先溢出,才会再除45
回复

使用道具 举报

9#
ID:963509 发表于 2022-7-3 09:32 | 只看该作者

可以了,谢谢大佬,太谢谢了
回复

使用道具 举报

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

好的,太谢谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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