找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

基于HC32F460開(kāi)發(fā)板的電機(jī)驅(qū)動(dòng)及調(diào)速控制

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
步進(jìn)電機(jī)是一種常用的執(zhí)行器件,使用它能進(jìn)行精準(zhǔn)的定位及轉(zhuǎn)速調(diào)節(jié)等工作。一個(gè)簡(jiǎn)單的步進(jìn)電機(jī)驅(qū)動(dòng)要由步進(jìn)電機(jī)、驅(qū)動(dòng)電路及微控制器構(gòu)成,見(jiàn)圖1所示。

圖1 步進(jìn)電機(jī)驅(qū)動(dòng)構(gòu)成
在HC32F460開(kāi)發(fā)板上,提供了電機(jī)驅(qū)動(dòng)控制接口,見(jiàn)圖2所示。

                             
2 電機(jī)驅(qū)動(dòng)控制接口
為了驅(qū)動(dòng)步進(jìn)電機(jī),除了硬件方面的準(zhǔn)備,還需必要的軟件配合。
要編寫(xiě)步進(jìn)電機(jī)驅(qū)動(dòng)程序主要分為以下幾步:
1)分配引腳
使步進(jìn)電機(jī)的MA~ MD引腳分別與PE8~ PE11相連接
MA---PE8
MB---PE9
MC---PE10
MD---PE11
2)定義輸出高低電平的語(yǔ)句
  1. #define MAL     PORT_ResetBits(PortE, Pin08)
  2. #define MAH     PORT_SetBits(PortE, Pin08)

  3. #define MBL     PORT_ResetBits(PortE, Pin09)
  4. #define MBH     PORT_SetBits(PortE, Pin09)

  5. #define MCL     PORT_ResetBits(PortE, Pin10)
  6. #define MCH     PORT_SetBits(PortE, Pin10)

  7. #define MDL     PORT_ResetBits(PortE, Pin11)
  8. #define MDH     PORT_SetBits(PortE, Pin11)
復(fù)制代碼
3)配置延時(shí)函數(shù)
配置延時(shí)函數(shù)的工作在步進(jìn)電機(jī)的驅(qū)動(dòng)中十分重要,它控制著步進(jìn)電機(jī)運(yùn)轉(zhuǎn)的快慢。
對(duì)于步進(jìn)電機(jī)來(lái)說(shuō)其速度是與驅(qū)動(dòng)脈沖相有關(guān)的,但也并非脈沖越快,電機(jī)的轉(zhuǎn)速越快。因?yàn)殡姍C(jī)電機(jī)屬于機(jī)械器件,要建立相應(yīng)的磁場(chǎng)以達(dá)到相應(yīng)的扭矩才能使電機(jī)轉(zhuǎn)動(dòng)。過(guò)快的脈沖只會(huì)使電機(jī)在原地震顫和抖動(dòng),并無(wú)法旋轉(zhuǎn)。
4)控制電機(jī)旋轉(zhuǎn)方向
對(duì)于4相5線式步進(jìn)電機(jī)來(lái)講,可通過(guò)8個(gè)節(jié)拍的脈沖序列來(lái)控制其正反轉(zhuǎn)。
正轉(zhuǎn)的驅(qū)動(dòng)函數(shù)為:
  1. void zx(void)
  2. {
  3. unsigned char X,Y;  
  4. for(X=0;X<64;X++)
  5. {
  6. for(Y=0;Y<8;Y++)
  7. {
  8. MDL;
  9. MAH; //A
  10. Ddl_Delay1ms(n);
  11. MBH; //AB
  12. Ddl_Delay1ms(n);
  13. MAL; //B
  14. Ddl_Delay1ms(n);
  15. MCH; //BC
  16. Ddl_Delay1ms(n);
  17. MBL; //C
  18. Ddl_Delay1ms(n);
  19. MDH; //CD
  20. Ddl_Delay1ms(n);
  21. MCL; //D
  22. Ddl_Delay1ms(n);
  23. MAH; //DA
  24. Ddl_Delay1ms(n);
  25. }               
  26. }  
  27. }
復(fù)制代碼

反轉(zhuǎn)的驅(qū)動(dòng)函數(shù)為:
  1. void fx(void)
  2. {
  3. unsigned char X,Y;
  4. for(X=0;X<64;X++)
  5. {
  6. for(Y=0;Y<8;Y++)
  7. {
  8. MDH;
  9. MAH; //A
  10. Ddl_Delay1ms(n);
  11. MAL; //AB
  12. Ddl_Delay1ms(n);
  13. MCH; //B
  14. Ddl_Delay1ms(n);
  15. MDL; //BC
  16. Ddl_Delay1ms(n);
  17. MBH; //C
  18. Ddl_Delay1ms(n);
  19. MCL; //CD
  20. Ddl_Delay1ms(n);
  21. MAH; //D
  22. Ddl_Delay1ms(n);
  23. MBL; //DA
  24. Ddl_Delay1ms(n);
  25. }
  26. }
  27. }
復(fù)制代碼

5)控制電機(jī)運(yùn)行
控制電機(jī)運(yùn)行的關(guān)鍵程序
  1.         OLED_Init();
  2. OLED_Clear();
  3. OLED_ShowString(0,0,"HC32F460 TEST",16);
  4. OLED_ShowString(0,2,"OLED & MOTOR:",16);
  5. MAL;
  6. MBL;
  7. MCL;
  8. MDL;
  9. Ddl_Delay1ms(500);
  10. f=1;
  11. rdata=5;
  12. n=3;           // n>1
  13. OLED_ShowNum(112,2,0,2,16);
  14. for(c=0;c<rdata;c++)
  15. {
  16. if(f==0)    fx();
  17. else          zx();
  18. OLED_ShowNum(112,2,c,2,16);
  19. }
復(fù)制代碼

感興趣的話,還可以添加按鍵來(lái)設(shè)置轉(zhuǎn)速和轉(zhuǎn)動(dòng)的圈數(shù)等,那會(huì)使應(yīng)用價(jià)值更高!

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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