步進電機控制方法
51hei截圖20191231172641.png (28.72 KB, 下載次數: 95)
下載附件
protues仿真圖
2019-12-31 17:26 上傳
單片機源程序如下:
- /*****************步進電機控制口定義*******************/
- #define BYJ48 P2
- /****************步進電機控制數組定義******************/
- //uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //四相八拍正轉編碼
- //uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; ////四相八拍反轉編碼
- uchar code FFW[4] ={0x08,0x04,0x02,0x01};//正轉 電機導通相序 D-C-B-A
- uchar code REV[4]={0x01,0x02,0x04,0x08};//反轉 電機導通相序 A-B-C-D
- /********************************************************
- 函數名稱:void delay2(uint t)
- 函數作用:毫秒延時函數
- 參數說明:
- ********************************************************/
- void delay2(uint t)
- {
- uint k;
- while(t--)
- {
- for(k=0; k<90; k++)
- { }
- }
- }
- /********************************************************
- 函數名稱:void motor_z()
- 函數作用:步進電機正轉
- 參數說明:轉5.625°角度
- ********************************************************/
- void motor_z()
- {
- uchar i;
- uint j;
- for (j=0; j<4; j++) //8*8=64個脈沖轉5.625°
- {
- for (i=0; i<4; i++)
- {
- BYJ48 = ((P2&0xf0)|FFW[i]);//取數據
- // delay2(5); //調節轉速
- }
- }
- }
- /********************************************************
- 函數名稱:void motor_f()
- 函數作用:步進電機反轉
- 參數說明:轉5.625°角度
- ********************************************************/
- void motor_f()
- {
- uchar i;
- uint j;
- for (j=0; j<4; j++) //8*8=64個脈沖轉5.625°
- {
- for (i=0; i<4; i++)
- {
- BYJ48 = ((P2&0xf0)|REV[i]);//取數據
- // delay2(5); //調節轉速
- }
- }
- }
復制代碼
51hei.png (12.32 KB, 下載次數: 46)
下載附件
2022-5-2 17:14 上傳
Keil代碼與Proteus8.8仿真下載:
自動門.zip
(126.66 KB, 下載次數: 127)
2019-12-31 17:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|