久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32控制步進電機程序+詳細解說資料(通俗易懂)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:341601 發(fā)表于 2019-4-16 09:32 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

步進電機(也稱脈沖電機)(將電脈沖轉(zhuǎn)換為相應(yīng)的角位移或線位移的電磁機械裝置,具有快速啟動,停能力,在電機的負荷不超過它能提供的動態(tài)轉(zhuǎn)矩時,可以通過輸入脈沖來控制它在一瞬間的啟動或者停止。在非超載的情況下,步距角和轉(zhuǎn)速只和輸入的脈沖頻率有關(guān),和環(huán)境溫度,氣壓,振動無關(guān),也不受電網(wǎng)電壓的波動和負載變化的影響,因此,控制較為精準(zhǔn))即給電機一個脈沖信號,電機則轉(zhuǎn)過一個步距角


步進電機是一種感應(yīng)電機,它的工作原理:利用電子電路,將直流電變成分時供電的,多相時序控制電流,用這種電流為步進電機供電,步進電機才能正常工作,驅(qū)動器就是為步進電機分時供電的,多相時序控制器,就是說:必須用由雙環(huán)形脈沖信號功率驅(qū)動電路等組成的控制系統(tǒng)方可使用。


步距角:控制系統(tǒng)每發(fā)一個步進脈沖信號,電機所轉(zhuǎn)動的角度。電機出廠時給了一個步距角的值,如:86BYG250A型      電機的值為0.9、1.8(表示半步工作時為0.9,整步為1.8),被稱之為“電機的固有步距角”,但是不一定是      電機實際工作時的真正步距角,真正的步距角和驅(qū)動器有關(guān)


相數(shù):電機內(nèi)部的線圈組數(shù),目前常用的有二相,三相,四相,五相步進電機。電機相數(shù)不同,其步距角也就不同了,  一般二相電機的步距角為0.9/1,8,三相為0.36/0.72,五相為0.36/0.72。在沒有細分驅(qū)動器的情況下,用戶主要 靠選擇不同相數(shù)的步進電機來滿足自己步距角的要求。如果使用細分驅(qū)動器,那么相數(shù)好像也就沒有了意義

拍數(shù):完成一個磁場周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài),或指電機轉(zhuǎn)過一個步距角所需脈沖數(shù)。以如下的四相電機為            例,有四相四拍運行方式,AB-BC-CD-DA-AB;四相八拍:A-AB-B-BC-C-CD-D-DA-A


失步:電機運轉(zhuǎn)時運轉(zhuǎn)的步數(shù)不等于理論上的步數(shù),稱之為失步


開環(huán)控制與閉環(huán)控制:(主要看系統(tǒng)中有沒有反饋環(huán)節(jié))(反饋指的是動作所引起的效果)

(反饋簡單的理解就是:“你打了別人一巴掌,我們看到了它的臉是紅的,嗯嗯,這就是眼睛所得到的反饋”)

閉環(huán)控制:存在反饋環(huán)節(jié)的控制,就是當(dāng)前的系統(tǒng)能夠?qū)崟r的檢測控制的輸出結(jié)果,并將檢測到的信息通過反饋環(huán)節(jié)反映到輸入端,調(diào)整輸入量,達到修正控制誤差,提高控制精度的目的,(對外部擾動和系統(tǒng)參數(shù)變化不敏感)如:

(閉環(huán))

全自動洗衣機,給洗衣機加水時,里邊有一個紅外傳感器,掃描到水位高低,當(dāng)水位合適時,洗衣機自動停止加水


家用空調(diào)根據(jù)傳感器采集到當(dāng)前的溫度,然后比較設(shè)定溫度,通過設(shè)定指令,控制室內(nèi)外機的工作情況,改變頻率,壓縮機的轉(zhuǎn)速等進行簡單的調(diào)節(jié),然后不斷地進行控制


尋跡小車時,兩邊的紅外傳感器不斷的檢測黑線,將返回的結(jié)果輸入到相應(yīng)i/o口上,我們對這些i/o口進行中斷檢測就可以知道,當(dāng)前時刻的位置,然后可以執(zhí)行相應(yīng)的操作(左轉(zhuǎn),右轉(zhuǎn));


調(diào)節(jié)平衡天平的時候,其中一種方法就是利用mpu6050獲取當(dāng)前所處位置的角度,調(diào)用PID算法,對當(dāng)前的位置或者角度進行處理,然后對調(diào)整后的角度再次進行反饋處理

(家用空調(diào)調(diào)節(jié)溫度)

家用空調(diào)調(diào)節(jié)指定的溫度,靠的是電子傳感器,(電子傳感器就是一個熱敏電阻,不同的溫度會有不同的阻值),利用也可以理解為電子膨脹,不同的溫度會有不同的阻值。利用對入風(fēng)口的空氣進行取樣,把數(shù)據(jù)傳輸?shù)娇刂瓢迳,然后,在與設(shè)定的溫度進行比較,產(chǎn)生一個指令來實現(xiàn)控制。(制冷的話,比較之后:輸出室內(nèi)風(fēng)機和室外機的開機指令,內(nèi)外機開始工作(室外機包括壓縮機,室外風(fēng)機,四通閥等部件),工作一定溫度的話,室內(nèi)溫度將會:1,(定頻空調(diào))達到設(shè)定值,室外機停止工作,室內(nèi)機保持工作,保證空氣循環(huán),當(dāng)室內(nèi)溫度逐漸上升,大于設(shè)定值2-3度時,室外機重新啟動制冷,室內(nèi)溫度將又開始下降,重復(fù)這個過程,室內(nèi)溫度就能保持在設(shè)定溫度值上下1度左右范圍內(nèi)波動; 2,(變頻空調(diào))接近設(shè)定值,室外機的變頻板輸出的頻率下降,壓縮機轉(zhuǎn)速下降,制冷量也相應(yīng)降低,室內(nèi)溫度保持在與設(shè)定值相同的數(shù)值下。隨著室內(nèi)熱源的變化,室內(nèi)機溫度傳感器實時檢測溫度的變化,主控板輸出的控制信號使變頻器跟隨變化調(diào)節(jié)壓縮機工作頻率,從而改變瞬時制冷量,確保室內(nèi)溫度穩(wěn)定)



開環(huán)控制:不存在反饋環(huán)節(jié)的控制,也就是控制器與被控制對象間只有順序作業(yè)而無反方向聯(lián)系且控制單方向進行,

                  ,無自動糾偏能力,不用取輸出量變化信號控制輸入量。

                  

                   如:在開車的過程中,我們來控制方向盤

                   人工轉(zhuǎn)換電扇的檔位實現(xiàn)轉(zhuǎn)速的控制,不用反饋回來實際的轉(zhuǎn)速

                   給洗衣機加水時:我們通過來觀察水位來確定什么時候關(guān)掉水龍頭

(所以,簡單的說:就是看有沒有反饋:開環(huán)沒有,閉環(huán)有,對于用到機器上來說,每一件事都是有反饋的,只是情況不同而已,當(dāng)反饋是人自己來判斷的話,那么這個系統(tǒng)就是開環(huán)的,如果反饋是機器自己來判斷的話,那么這個系統(tǒng)就是閉環(huán)的)

從整體的角度來看:


單片機控制電機正轉(zhuǎn)源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "usart.h"

  4. //引腳連接
  5. //IN1:PC3、IN2:PC2、IN3:PC0、IN4:PC13、

  6. //步進電機初始化函數(shù)
  7. void Motor_Init(void)
  8. {
  9.         GPIO_InitTypeDef GPIO_InitStructure;
  10.         
  11.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//開啟時鐘
  12.         
  13.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_3;
  14.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
  15.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  16.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  17.         
  18.         GPIO_ResetBits(GPIOC,GPIO_Pin_13);//默認低電平
  19.         GPIO_ResetBits(GPIOC,GPIO_Pin_0);
  20.         GPIO_ResetBits(GPIOC,GPIO_Pin_2);
  21.         GPIO_ResetBits(GPIOC,GPIO_Pin_3);
  22.         
  23. }

  24. //步進電機正轉(zhuǎn)函數(shù)(反轉(zhuǎn)參考51版本)
  25. void Motorcw(void)
  26. {
  27.         GPIO_SetBits(GPIOC,GPIO_Pin_13);//依次高電平輸出
  28.         GPIO_ResetBits(GPIOC,GPIO_Pin_0);
  29.         GPIO_ResetBits(GPIOC,GPIO_Pin_2);
  30.         GPIO_ResetBits(GPIOC,GPIO_Pin_3);
  31.         delay_ms(10);
  32.         
  33.         GPIO_ResetBits(GPIOC,GPIO_Pin_13);
  34.         GPIO_SetBits(GPIOC,GPIO_Pin_0);
  35.         GPIO_ResetBits(GPIOC,GPIO_Pin_2);
  36.         GPIO_ResetBits(GPIOC,GPIO_Pin_3);
  37.         delay_ms(10);
  38.         
  39.         GPIO_ResetBits(GPIOC,GPIO_Pin_13);
  40.         GPIO_ResetBits(GPIOC,GPIO_Pin_0);
  41.         GPIO_SetBits(GPIOC,GPIO_Pin_2);
  42.         GPIO_ResetBits(GPIOC,GPIO_Pin_3);
  43.         delay_ms(10);
  44.         
  45.         GPIO_ResetBits(GPIOC,GPIO_Pin_13);
  46.         GPIO_ResetBits(GPIOC,GPIO_Pin_0);
  47.         GPIO_ResetBits(GPIOC,GPIO_Pin_2);
  48.         GPIO_SetBits(GPIOC,GPIO_Pin_3);
  49.         delay_ms(10);
  50.         
  51. }

  52. int main(void)
  53. {
  54.         delay_init();//delay初始化函數(shù)
  55.         Motor_Init();
  56. while(1)
  57. {
  58.         Motorcw();
  59. }
  60. }
復(fù)制代碼

正轉(zhuǎn)代碼與芯片資料供大家學(xué)習(xí):
ULN2003步進電機正轉(zhuǎn)代碼與資料.7z (577.56 KB, 下載次數(shù): 1160)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏25 分享淘帖 頂7 踩1
回復(fù)

使用道具 舉報

沙發(fā)
ID:592523 發(fā)表于 2019-8-22 21:03 | 只看該作者
你好,請問怎樣使57步進電機旋轉(zhuǎn)方向發(fā)生改變?
我現(xiàn)在能驅(qū)動電機逆時針旋轉(zhuǎn),要怎么做能使電機順時針旋轉(zhuǎn)呢?
我嘗試過改變DIR的輸入電平,但是并沒有發(fā)生改變。
回復(fù)

使用道具 舉報

板凳
ID:116773 發(fā)表于 2019-8-23 10:34 | 只看該作者
張先生一個人 發(fā)表于 2019-8-22 21:03
你好,請問怎樣使57步進電機旋轉(zhuǎn)方向發(fā)生改變?
我現(xiàn)在能驅(qū)動電機逆時針旋轉(zhuǎn),要怎么做能使電機順時針旋轉(zhuǎn) ...

改變時序就能控制正反轉(zhuǎn)。
回復(fù)

使用道具 舉報

地板
ID:477269 發(fā)表于 2019-10-21 21:27 | 只看該作者
謝謝你分享的資料,感謝
回復(fù)

使用道具 舉報

5#
ID:561150 發(fā)表于 2019-11-4 15:51 | 只看該作者
看到代碼眼前一亮
這樣就不需要 驅(qū)動器了。
學(xué)習(xí)了
回復(fù)

使用道具 舉報

6#
ID:635700 發(fā)表于 2019-11-4 22:56 | 只看該作者
ths...
回復(fù)

使用道具 舉報

7#
ID:643277 發(fā)表于 2019-11-16 17:57 | 只看該作者
樓主威武,感謝分享。
回復(fù)

使用道具 舉報

8#
ID:346097 發(fā)表于 2019-11-19 08:16 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

9#
ID:620272 發(fā)表于 2019-11-19 20:00 | 只看該作者
f407可以控制么?
回復(fù)

使用道具 舉報

10#
ID:661807 發(fā)表于 2019-12-11 19:19 | 只看該作者
請問那四個引腳哪個是脈沖,哪個是方向
回復(fù)

使用道具 舉報

11#
ID:661807 發(fā)表于 2019-12-11 19:22 | 只看該作者
hujj 發(fā)表于 2019-8-23 10:34
改變時序就能控制正反轉(zhuǎn)。

請問你有32控制步進電機的程序嗎?
回復(fù)

使用道具 舉報

12#
ID:552218 發(fā)表于 2019-12-14 23:31 | 只看該作者
有PID的嗎?
回復(fù)

使用道具 舉報

13#
ID:224687 發(fā)表于 2020-1-2 10:18 | 只看該作者
樓主威武,感謝分享。
回復(fù)

使用道具 舉報

14#
ID:444035 發(fā)表于 2020-1-2 16:59 | 只看該作者
樓主威武,感謝分享。
回復(fù)

使用道具 舉報

15#
ID:514795 發(fā)表于 2020-1-8 11:47 | 只看該作者
樓主威武,感謝分享。
回復(fù)

使用道具 舉報

16#
ID:136769 發(fā)表于 2020-1-19 09:38 | 只看該作者
我想下來看看
回復(fù)

使用道具 舉報

17#
ID:569391 發(fā)表于 2020-1-31 11:19 | 只看該作者
謝謝你分享的資料
回復(fù)

使用道具 舉報

18#
ID:697863 發(fā)表于 2020-3-18 00:10 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

19#
ID:314952 發(fā)表于 2020-3-19 10:59 | 只看該作者
謝謝分享,學(xué)習(xí)一下
回復(fù)

使用道具 舉報

20#
ID:314952 發(fā)表于 2020-3-19 11:20 | 只看該作者
謝謝分享,學(xué)習(xí)一下
回復(fù)

使用道具 舉報

21#
ID:270740 發(fā)表于 2020-3-23 08:52 | 只看該作者
謝謝分享,學(xué)習(xí)一下
回復(fù)

使用道具 舉報

22#
ID:722576 發(fā)表于 2020-4-5 12:24 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報

23#
ID:744679 發(fā)表于 2020-5-14 22:42 | 只看該作者
不懂這個上位機的具體原理
回復(fù)

使用道具 舉報

24#
ID:764790 發(fā)表于 2020-5-30 09:44 | 只看該作者
厲害,感謝分享!
回復(fù)

使用道具 舉報

25#
ID:711985 發(fā)表于 2020-6-7 19:48 | 只看該作者
謝謝分享,學(xué)習(xí)一下
不知道怎么收藏主題,我從51開始轉(zhuǎn)STM32了
回復(fù)

使用道具 舉報

26#
ID:779670 發(fā)表于 2020-6-15 10:29 | 只看該作者
正在學(xué)習(xí)STM32,剛好準(zhǔn)備找些例子來聯(lián)系下,看到樓主的帖子很實用,超級簡單,非常感謝!!
回復(fù)

使用道具 舉報

27#
ID:774108 發(fā)表于 2020-7-3 11:19 來自觸屏版 | 只看該作者
驅(qū)動模塊是什么
回復(fù)

使用道具 舉報

28#
ID:799134 發(fā)表于 2020-8-11 14:13 | 只看該作者
hujj 發(fā)表于 2019-8-23 10:34
改變時序就能控制正反轉(zhuǎn)。

反轉(zhuǎn):0001 0010 0100 1000
回復(fù)

使用道具 舉報

29#
ID:215043 發(fā)表于 2020-9-14 13:27 | 只看該作者
如何控制進行反轉(zhuǎn)
回復(fù)

使用道具 舉報

30#
ID:730649 發(fā)表于 2020-9-17 20:54 | 只看該作者
kxq 發(fā)表于 2019-12-11 19:22
請問你有32控制步進電機的程序嗎?

這不就是32的嗎
回復(fù)

使用道具 舉報

31#
ID:822141 發(fā)表于 2020-9-22 22:18 | 只看該作者
還以為是A4988的驅(qū)動了,2003啊
回復(fù)

使用道具 舉報

32#
ID:862513 發(fā)表于 2020-12-26 00:02 | 只看該作者
超級簡單,非常感謝!!
回復(fù)

使用道具 舉報

33#
ID:469589 發(fā)表于 2021-2-22 20:41 | 只看該作者
浪費資源,照這樣可以用更簡單的數(shù)字電路搭一個,連程序都不需要。
回復(fù)

使用道具 舉報

34#
ID:223257 發(fā)表于 2021-4-24 02:43 | 只看該作者
謝謝,正好需要,下載來看看
回復(fù)

使用道具 舉報

35#
ID:308785 發(fā)表于 2021-4-28 12:59 | 只看該作者
有其他更優(yōu)化的算法么?
回復(fù)

使用道具 舉報

36#
ID:915795 發(fā)表于 2021-5-5 10:42 | 只看該作者
kxq 發(fā)表于 2019-12-11 19:22
請問你有32控制步進電機的程序嗎?

他上面有連接
回復(fù)

使用道具 舉報

37#
ID:677805 發(fā)表于 2021-5-17 15:42 來自觸屏版 | 只看該作者
張先生一個人 發(fā)表于 2019-8-22 21:03
你好,請問怎樣使57步進電機旋轉(zhuǎn)方向發(fā)生改變?
我現(xiàn)在能驅(qū)動電機逆時針旋轉(zhuǎn),要怎么做能使電機順時針旋轉(zhuǎn) ...

57步進電機該怎么連接呢
回復(fù)

使用道具 舉報

38#
ID:936303 發(fā)表于 2021-6-11 13:34 | 只看該作者
周凱 發(fā)表于 2020-6-15 10:29
正在學(xué)習(xí)STM32,剛好準(zhǔn)備找些例子來聯(lián)系下,看到樓主的帖子很實用,超級簡單,非常感謝!!

你好,請問你調(diào)試出來了嗎?
回復(fù)

使用道具 舉報

39#
ID:861681 發(fā)表于 2021-6-18 10:40 來自觸屏版 | 只看該作者
有protues 仿真嗎
回復(fù)

使用道具 舉報

40#
ID:861681 發(fā)表于 2021-6-19 00:10 來自觸屏版 | 只看該作者
怎么連接啊,沒有原理圖或?qū)嵨飯D
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美国产激情二区三区 | 不卡视频在线 | 国产一区二区欧美 | 免费激情| www.久久| 国产精品视频一区二区三 | 国产乱码精品一区二区三区中文 | 久久久久久国产精品久久 | 91精品国产欧美一区二区 | 男女视频在线看 | 久久成人国产 | 午夜久久久| 中文字幕亚洲精品 | 97国产成人| 久久国产精品久久国产精品 | 成人欧美一区二区三区黑人孕妇 | 亚洲精品国产电影 | 欧美一级二级在线观看 | 免费的黄色片子 | 999久久久免费精品国产 | 国产激情片在线观看 | 精品欧美乱码久久久久久 | 国产精品免费观看视频 | 99久久免费精品视频 | 久久精品屋 | 日韩一级二级片 | 久久久成人一区二区免费影院 | 国产免费视频 | 国产小视频自拍 | 一区二区三区在线看 | 亚洲经典一区 | 精品日韩一区 | 手机av在线 | 免费高潮视频95在线观看网站 | 日韩精品视频在线观看一区二区三区 | 日韩视频在线免费观看 | 亚洲区一区二 | 中文字幕一区二区三区精彩视频 | 一区二区视频在线 | 亚洲网站在线播放 | 污片在线免费观看 |