单片机c语言 步进电机,步进电机控制(单片机C语言).doc
步進電機控制(單片機C語言)
模塊二 簡單應用實例調試
任務2 步進電機控制(H22)
任務要求
用單片機P1端口控制步進電機,編寫程序輸出脈沖序列到P1口,控制步進電機正轉、反轉,加速,減速。
二、任務目的
了解步進電機控制的基本原理。
掌握控制步進電機轉動的編程方法。
三、電路連線框圖
步進電機電流小于0.5A時
可采用ULN2003A進行驅動
(反相)
四、原理控制說明
步進電機驅動原理是通過對每相線圈中的電流的順序切換來使電機作步進式旋轉。切換是通過單片機輸出脈沖信號來實現的。所以調節脈沖信號的頻率便可以改變步進電機的轉速,改變各相脈沖的先后順序,可以改變電機的旋轉方向。步進電機的轉速應由慢到快逐步加速。
電機驅動方式可以采用雙四拍 AB→BC→CD→DA→AB 方式,也可以采用單四拍 A→B→C→D→A 方式,或單、雙八拍 A→AB→B→BC→C→CD→D→DA→A 方式。
控制時公共端是接在VCC上的,所以實際控制脈沖是低電平有效。單片機的P1口輸出的脈沖信號經(MC1413或ULN2003A)倒相驅動后,向步進電機輸出脈沖信號序列。
五、程序框圖
六、參考程序
# include
#define Astep 0x01
#define Bstep 0x02
#define Cstep 0x04
#define Dstep 0x08
unsigned char dly_c;
void delay unsigned char tt,cc; cc dly_c; //外循環次數 tt 0x0; //內循環次數 do do while --tt ; while --cc ; void main dly_c 0x10; // 雙四拍工作方式 while 1 P1 Astep+Bstep; delay ; P1 Bstep+Cstep; delay ; P1 Cstep+Dstep; delay ; P1 Dstep+Astep; delay ; if dly_c 3 dly_c --; // 加速控制 ; 是
否
開始
設置初始延時值
輸出一拍脈沖
延時
是否提速?
準備下一拍脈沖
延時值減少
是否到最快
總結
以上是生活随笔為你收集整理的单片机c语言 步进电机,步进电机控制(单片机C语言).doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学四年,我因为使用这几个学习方法,成为
- 下一篇: 笔试题算法系列(五)百度2017买帽子