欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12287|回復: 11
打印 上一主題 下一主題
收起左側

步進電機停不下來,又鎖不住 程序錯在哪里,幫幫新手吧!

[復制鏈接]
跳轉到指定樓層
樓主
要求步進電機轉過90度后,把電機軸鎖住。結果既停不下來,又鎖不住。程序錯在哪里?求大家幫一幫。

  1. #include <reg51.h>              //要求步進電機轉過90度后,把電機軸鎖住。
  2. unsigned char code up_data[8]={ 0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8};     
  3. /********以下是延時函數,延時時間為speed×1ms********/
  4. void Delay(unsigned int speed)                                
  5. {                                             
  6.         unsigned int i,j;                     
  7.         for(i=speed;i>0;i--)                     
  8.                 for(j=110;j>0;j--);      
  9. }
  10. /********以下是主函數********/
  11. void main()
  12. {            
  13.           unsigned char i;
  14.         unsigned int  cnt=0;
  15.          for (i=0; i<8; i++)   //1個脈沖轉5.625度,(16個脈沖轉了90度)
  16.          {
  17.                  P1 = up_data[i];               
  18.                  Delay(5);
  19.                 cnt++;  
  20.                 if (cnt==16)
  21.                 {
  22.                  P1 = up_data[i]; //達到16個脈沖后,把電機軸鎖住20秒鐘。
  23.              Delay(20000);
  24.             }
  25.          }                                
  26. }
復制代碼

評分

參與人數 1黑幣 +5 收起 理由
libicheng + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:86913 發表于 2017-6-14 11:42 | 只看該作者
訂正一下,方括號中的是數字1,我的原意是去讀取0xf9,然后延時20秒使電機不斷電而把電機鎖住,不知道這樣做對嗎?
P1 = up_data[1]; //達到16個脈沖后,把電機軸鎖住20秒鐘。
回復

使用道具 舉報

板凳
ID:164602 發表于 2017-6-14 13:42 | 只看該作者
你沒有圖片,我不知道你是用的什么步進電機、什么驅動電路。
我這里有一個程序及資料,分享給你參考。
51單片機STC89C51RC
ULN2003步進電機驅動模塊+步進電機套件
用按鍵控制:正轉、反轉、加減轉速、只轉90度、只轉180度。
好像符合你的要求。
你只要根據自己的電路,作適當修改就可以了。

步進電機.rar

176.84 KB, 下載次數: 58

回復

使用道具 舉報

地板
ID:111634 發表于 2017-6-14 16:12 | 只看該作者
本帖最后由 zl2168 于 2017-6-14 16:14 編輯

實例99  驅動二相步進電機
Proteus仿真一下,確認有效。
實例99 二相步進電機.rar (36.2 KB, 下載次數: 25)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。
回復

使用道具 舉報

5#
ID:111634 發表于 2017-6-14 16:14 | 只看該作者
實例98  驅動四相步進電機
實例98 四相步進電機.rar (35.83 KB, 下載次數: 16)
Proteus仿真一下,確認有效。
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。


回復

使用道具 舉報

6#
無效樓層,該帖已經被刪除
7#
ID:211201 發表于 2017-6-14 16:16 | 只看該作者
貌似這個for循環寫的不對把,感覺怪怪的
回復

使用道具 舉報

8#
ID:86913 發表于 2017-6-14 22:06 | 只看該作者
回HC6800-ES-V2.0 ,我用的是28BYJ-48步進電機(去掉了減速部分) 、步距角5.625度,驅動器為ULN2003。
我的要求是:電機軸轉過一個角度后(例如90度)停止轉動,但要求某一組線圈仍要通電,目的是把電機軸“鎖住”,(用手去擰軸,軸不會轉了),這個狀態要求持續20秒鐘。
回復

使用道具 舉報

9#
ID:164602 發表于 2017-6-15 08:18 | 只看該作者
tmxk0574 發表于 2017-6-14 22:06
回HC6800-ES-V2.0 ,我用的是28BYJ-48步進電機(去掉了減速部分) 、步距角5.625度,驅動器為ULN2003。
我 ...

抱歉,你給你的程序,只控制了轉動90,沒能“鎖住”。我用的電機步距角也是5.625度,但是減速電機,減速比64:1,所以轉動90度,要1024個脈沖,才能轉動90度。昨天忘說了。鎖住功能我也不會。
回復

使用道具 舉報

10#
ID:154074 發表于 2017-6-15 11:32 | 只看該作者
1,查查驅動板是否帶鎖死功能
2、如果驅動板沒有,可以保持最后通電繞組通電來鎖死
回復

使用道具 舉報

11#
ID:211550 發表于 2017-6-15 15:13 | 只看該作者
仔細檢查下程序
回復

使用道具 舉報

12#
ID:86913 發表于 2017-6-15 20:47 | 只看該作者
宮本無三四 發表于 2017-6-15 11:32
1,查查驅動板是否帶鎖死功能
2、如果驅動板沒有,可以保持最后通電繞組通電來鎖死

您好!我說的正是您第二點所說的意思,“保持最后通電繞組通電來鎖死”,但在程序上怎么處理搞不明白,希望得到支持
回復

使用道具 舉報

13#
ID:280000 發表于 2020-6-28 17:23 | 只看該作者
仔細檢查自己的步進電機函數有沒有編寫錯誤,是否處于死循環里面出不去了
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表