找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3829|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

求助,怎么讓單片機精確控制步進電機

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:88960 發(fā)表于 2015-8-27 14:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我想讓51單片機精確控制步進電機運動,步距角是18度,用的是8拍程序,為什么精度只有0.6毫米,理論上是0.075毫米啊,到底錯在哪里了,,求助
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:88960 發(fā)表于 2015-8-27 14:15 | 只看該作者
源程序請大神看一下
void PositiveTurn(float length)   //length為要移動的距離
{
        while (1)
        {
                Xa = 1; Xa_ = 0; Xb = 0; Xb_ = 0; //第一拍
                length = length - 0.075;
                if (length <= 0)
                   return;
                delay();
                Xa = 1; Xa_ = 0; Xb = 1; Xb_ = 0; //第二拍
                length = length - 0.075;
                if (length <= 0)
                   return;
                delay();
                Xa = 0; Xa_ = 0; Xb = 1; Xb_ = 0; //第三拍
                length = length - 0.075;
                if (length <= 0)
                   return;
                delay();
                Xa = 0; Xa_ = 1; Xb = 1; Xb_ = 0; //第四拍
                length = length - 0.075;
                if (length <= 0)
                   return;
                delay();
                Xa = 0; Xa_ = 1; Xb = 0; Xb_ = 0; //第五拍
                length = length - 0.075;
                if (length <= 0)
                   return;
                delay();
                Xa = 0; Xa_ = 1; Xb = 0; Xb_ = 1; //第六拍
                length = length - 0.075;
                if (length <= 0)
                   return;
                delay();
                Xa = 0; Xa_ = 0; Xb = 0; Xb_ = 1; //第七拍
                length = length - 0.075;
                if (length <= 0)
                   return;
                delay();
                Xa = 1; Xa_ = 0; Xb = 0; Xb_ = 1; //第八拍
                length = length - 0.075;
                if (length <= 0)
                   return;
                delay();
               
        }
}
回復(fù)

使用道具 舉報

板凳
ID:88960 發(fā)表于 2015-8-27 14:16 | 只看該作者
不知道為什么length設(shè)定為的時候才動一下 設(shè)定比0.6小的值只是抖動,并不走
回復(fù)

使用道具 舉報

地板
ID:88960 發(fā)表于 2015-8-27 14:17 | 只看該作者
有人嗎   求助啊
回復(fù)

使用道具 舉報

5#
ID:74784 發(fā)表于 2015-8-27 20:54 | 只看該作者
步距角是18度???
換電機吧~~~~~~~~~~~~~~~~~`
回復(fù)

使用道具 舉報

6#
ID:77282 發(fā)表于 2015-8-29 15:53 | 只看該作者
我覺得你這種控制方式,不細分的話,只能控制電機18度18度的轉(zhuǎn),不可能有其他的度數(shù),也就不可能有其他的精度。個人觀點
回復(fù)

使用道具 舉報

7#
ID:110225 發(fā)表于 2016-12-2 19:36 | 只看該作者
失步了吧
回復(fù)

使用道具 舉報

8#
ID:153199 發(fā)表于 2016-12-17 15:13 | 只看該作者
需要加細分,否則容易丟步
回復(fù)

使用道具 舉報

9#
ID:137676 發(fā)表于 2016-12-17 19:46 | 只看該作者
我只知道利用PWM控制電機角度,我也不知道怎么寫程序,希望你考慮選用PWM進行確定角度。
回復(fù)

使用道具 舉報

10#
ID:137676 發(fā)表于 2016-12-17 19:49 | 只看該作者
PWM的占空比為50%就能達到9°。25%就能達到4.5°。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表