|

采用L298N模塊帶光耦來驅動步進電機與原理圖與資料詳見:
http://www.zg4o1577.cn/bbs/dpj-79474-1.html
下面是程序源碼:
- /******************************步進電機的驅動*************************************
- ;FOSC = 12MHz
- ;---------------------------------------------------------------------------------
- ; 步進電機的驅動信號必須為脈沖信號!!! 轉動的速度和脈沖的頻率成正比!!!
- ; 本步進電機步進角為 5.625度 . 一圈 360 度 , 需要64個脈沖完成!!!
- ;---------------------------------------------------------------------------------
- ; A組線圈對應 P0.0
- ; B組線圈對應 P0.1
- ; C組線圈對應 P0.2
- ; D組線圈對應 P0.3
- ; 正轉次序: AB組--BC組--CD組--DA組 (即一個脈沖,正轉5.625度)
- ;----------------------------------------------------------------------------------
- **********************************************************************************/
- /*頭文件*/
- #include <reg52.h>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- #define nop() _nop_()
- uchar code table1[]={0x03,0x06,0x0c,0x09}; /*正轉表*/
- uchar code table2[]={0x03,0x09,0x0c,0x06}; /*反轉表*/
- #define motor P0
- void delay(uchar ms) /*延時*/
- {
- uchar j;
- while(ms--){
- for(j=0;j<250;j++)
- {;}
- }
- }
- void main()
- {
- uchar i,j;
- while(1){
- //正轉3圈共192個脈沖
- j=0;
- for(i=0;i<192;i++){
- motor = 0x00;
- motor = table1[j];
- j++;
- if(j>=4) j=0;
- delay(2);
- }
- delay(200);
- delay(200);
- delay(200);
- delay(200);
- delay(200);
- //反轉2圈共128個脈沖
- j=0;
- for(i=0;i<128;i++){
- motor = 0x00;
- motor = table2[j];
- j++;
- if(j>=4) j=0;
- delay(2);
- }
- …………余下代碼請下載附件…………
復制代碼 下載:
L298N加光耦電機驅動.rar
(898.33 KB, 下載次數: 88)
2017-3-20 22:39 上傳
點擊文件名下載附件
|
|