找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于STC15单片机步进电机转一圈的程序运行有点小问题

[复制链接]
跳转到指定楼层
楼主
ID:482449 发表于 2019-3-12 16:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//——————————————单四拍        ————————————————————
        for(j=0;j<64;j++)//内部电机转64圈=输出轴转1圈
        {
        for(i=0;i<16;i++)//16×4=64,64个脉冲内部电机转一圈
        {
                        for(index=0;index<3;index++)//一轮4个脉冲
                        {
                                        switch(index)
                                        {
                                                        case 0:MOTOA=1;MOTOB=0;MOTOC=0;MOTOD=0;break;
                                                        case 1:MOTOA=0;MOTOB=1;MOTOC=0;MOTOD=0;break;  
                                                        case 2:MOTOA=0;MOTOB=0;MOTOC=1;MOTOD=0;break;
                                                        case 3:MOTOA=0;MOTOB=0;MOTOC=0;MOTOD=1;break;
                                        }
                                delay(4);        
                        }
                }
        }
这是步进电机转一圈的程序,问题是我这延时4毫秒,总延时有4*4*16*64毫秒大约等于16秒,但电机转一圈只花了11秒,为什么呀,光光延时就要16秒,都没算上程序运行的时间,是芯片问题还是步进电机的问题,电机型号是28BYJ48。
想不通想不通,晕了


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

使用道具 举报

沙发
ID:404160 发表于 2019-3-12 18:33 | 只看该作者
软件延时精度不够。
回复

使用道具 举报

板凳
ID:479969 发表于 2019-3-12 20:08 | 只看该作者
for(index=0;index<3;index++)//一轮4个脉冲
回复

使用道具 举报

地板
ID:479969 发表于 2019-3-12 20:11 | 只看该作者
for(index=0;index<3;index++)//一轮4个脉冲
改为
for(index=0;index<4;index++)//一轮4个脉冲
不然index只要0,1,2这3个状态。当然时间少啦!能转就不错了,正常丢相不能转动。
回复

使用道具 举报

5#
ID:332366 发表于 2019-3-12 21:10 | 只看该作者
能不能看看你的延时函数?
回复

使用道具 举报

6#
ID:265635 发表于 2019-3-12 22:41 | 只看该作者
延时跟晶振有关系。
回复

使用道具 举报

7#
ID:482449 发表于 2019-3-13 16:59 | 只看该作者
飞云居士 发表于 2019-3-12 18:33
软件延时精度不够。

我试过了,延时大了不转,延时小了也不转,现在这个范围差不多刚好
回复

使用道具 举报

8#
ID:482449 发表于 2019-3-13 17:00 | 只看该作者
ly143 发表于 2019-3-12 21:10
能不能看看你的延时函数?

void delay(unsigned int t)
{
  unsigned int i, j;
  for(i=0; i<t; i++)
  {
    for(j=845;j>0;j--);
  }
}
晶振使用内部晶振12M,请问我这个对吗
回复

使用道具 举报

9#
ID:482449 发表于 2019-3-13 17:01 | 只看该作者
liu_kl 发表于 2019-3-12 22:41
延时跟晶振有关系。

晶振是12M,程序在楼上,希望大佬指点迷津
回复

使用道具 举报

10#
ID:482449 发表于 2019-3-13 17:09 | 只看该作者

原来如此,太久没用接触编程真的忘了好多,感谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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