找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用PWM細分控制步進電機,包含原理和程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:194750 發(fā)表于 2017-4-29 12:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
農民講習所
這是俺一個關于打印機項目中步進馬達中的內容,使用的原理為電流矢量圖(a),為減少矢量表的誤差,改進為(g).(誤
差大的時候,Ia和 Ib 的絕對值變大,角度不變,即比例不變)

磁場合成決定步進馬達當前的位置。
我們常用的是圖(b),用電壓驅動時和線圈個數有關系,直接驅動它們,合成的最小角度都是固定的。
細分最常見的是電流細分,電流引起的磁場的合成就決定馬達的角度。所以我們一般用電流合成圖來代替磁場合成圖。
用電流合成電路復雜一點(用 MCU+DA+L298實現也不難)。

這里俺用 PWM方式,用控制電壓的方式代替電流。原因:在電壓穩(wěn)定后,線圈的電流和電壓成正比。穩(wěn)定是 PWM細分的
要點,也決定馬達速度不能太高。

在細分的情況下,電機分兩相和四相是沒意義的?梢园阉南嚯姍C當兩相使用。

下面是俺的程序,使用 MEGA16,因為有PWM。

  1. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. //2 相步進馬達驅動
  3. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  4. #define Step_OutMode()      DDRB|=BIT(6)|BIT(7)
  5. #define Step_InMode()       DDRB&=~(BIT(6)|BIT(7))
  6. #define Step_ReadIO()       (PORTB&( ~(BIT(6)|BIT(7)) ))
  7. #define Step_WriteIO(x)     PORTB=x

  8. struct Motor2P_Table{                   //細分表結構
  9.     unsigned char mQuadrant;            //象限 0-3
  10.     unsigned char mX_Pwm;               //x輸出的PWM
  11.     unsigned char mY_Pwm;               //y輸出的PWM
  12. };

  13. struct Motor2P{
  14.     unsigned char mTableId;             //細分表 ID
  15.     unsigned char mTask;                //馬達驅動的任務轉移號

  16.     unsigned char mSaveTimer;           //馬達驅動節(jié)電模式使用的計數器

  17.     unsigned char mReg;                 //馬達驅動使用的寄存器
  18.     unsigned char mTimer;               //對 2MS 的計數器,時間擴展

  19.     unsigned int  mSteps;               //馬達要走的步數
  20.     unsigned char mDirect;              //馬達走動方向

  21.     unsigned char mStepRunTimer;        //步進時輸出有效的時間寄存器
  22.     unsigned char mStepIdleTimer;       //步進時輸出節(jié)電的時間寄存器
  23.     unsigned char mStepCount;           //細分表走動步長。1-2-4-8-16
  24. };

  25. //------------------------------------------------------------
  26. #ifdef dMotor2P_Main
  27.     #define Motor2P_Head
  28. #else

  29. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

完整代碼和教程下載:
用PWM-細分步進電機-包含原理和程序.pdf (157.01 KB, 下載次數: 357)

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

使用道具 舉報

沙發(fā)
ID:229577 發(fā)表于 2017-12-5 18:26 | 只看該作者
怎么沒人回復呢
回復

使用道具 舉報

板凳
ID:229577 發(fā)表于 2017-12-6 08:51 | 只看該作者
感謝分享
回復

使用道具 舉報

地板
ID:124921 發(fā)表于 2018-1-21 21:31 | 只看該作者
學習了,感謝樓主分享
回復

使用道具 舉報

5#
ID:114132 發(fā)表于 2018-5-15 16:31 | 只看該作者
謝謝樓主買樓主好人啊
回復

使用道具 舉報

6#
ID:263693 發(fā)表于 2018-5-23 08:47 | 只看該作者
且讓老夫一探究竟
回復

使用道具 舉報

7#
ID:381620 發(fā)表于 2018-8-1 11:26 | 只看該作者
先評論,再下載。。。。。。。。一探究竟。
回復

使用道具 舉報

8#
ID:391860 發(fā)表于 2018-8-31 09:31 | 只看該作者
寄存器的版本??!
回復

使用道具 舉報

9#
ID:399824 發(fā)表于 2018-9-19 09:13 | 只看該作者
謝謝分享
回復

使用道具 舉報

10#
ID:38792 發(fā)表于 2018-9-20 21:17 | 只看該作者
謝謝分享。多謝。
回復

使用道具 舉報

11#
ID:403806 發(fā)表于 2018-9-28 21:30 | 只看該作者
謝謝分享
回復

使用道具 舉報

12#
ID:240941 發(fā)表于 2018-12-6 18:00 | 只看該作者
謝謝大大分享
回復

使用道具 舉報

13#
ID:472041 發(fā)表于 2019-1-23 13:40 | 只看該作者
謝謝分享
回復

使用道具 舉報

14#
ID:472041 發(fā)表于 2019-1-23 13:41 | 只看該作者
謝謝分享,正好用上。
回復

使用道具 舉報

15#
ID:462700 發(fā)表于 2019-1-27 16:20 | 只看該作者
不錯不錯
回復

使用道具 舉報

16#
ID:250270 發(fā)表于 2019-4-25 17:06 | 只看該作者
對可以 5V_4相_5線步進電機_全新步進電機.doc (58 KB, 下載次數: 13)

回復

使用道具 舉報

17#
ID:537928 發(fā)表于 2019-5-21 14:34 | 只看該作者
謝謝,下載下來看看
回復

使用道具 舉報

18#
ID:560202 發(fā)表于 2019-6-24 18:14 | 只看該作者
資料很好呢,最近在寫一個細分控制程序,正需要這類資料呢,謝謝了
回復

使用道具 舉報

19#
ID:578133 發(fā)表于 2019-7-4 20:54 | 只看該作者
這個不錯 剛好需要呀
回復

使用道具 舉報

20#
ID:578133 發(fā)表于 2019-7-4 20:55 | 只看該作者
這個真的不錯  剛好需要   謝謝
回復

使用道具 舉報

21#
ID:473308 發(fā)表于 2019-9-26 19:50 | 只看該作者
學習了
回復

使用道具 舉報

22#
ID:652775 發(fā)表于 2019-12-13 08:54 | 只看該作者
我怎么只看到pdf,沒看到源程序呀。謝樓主享分
回復

使用道具 舉報

23#
ID:617305 發(fā)表于 2019-12-13 09:14 | 只看該作者
好資料,正在學習中~
回復

使用道具 舉報

24#
ID:298008 發(fā)表于 2020-2-15 12:14 | 只看該作者
謝謝樓主分享。。!
回復

使用道具 舉報

25#
ID:475340 發(fā)表于 2022-7-4 11:23 | 只看該作者
先評論,再下載。。。。。。。。一探究竟。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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