專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實(shí)例 >> 瀏覽文章

兩相4線步進(jìn)電機(jī)驅(qū)動

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2012年03月13日   【字體:

前段時間在出去買東西的時候經(jīng)過一個廢品收購站,看到一位阿姨正在從一臺什么機(jī)器上面拆零件。具體是什么機(jī)器我也不認(rèn)識,我突然看到她拆下來一個圓圓的東西,走進(jìn)一看原來是一個電機(jī),有四根線,我當(dāng)時想肯定是一個步進(jìn)電機(jī)。雖然年份久遠(yuǎn)但是質(zhì)量看起來還不錯,我當(dāng)時就很喜歡。問阿姨這個多少錢我想買下來。阿姨說十塊錢,一分也不能少。沒有辦法我就發(fā)十塊錢買下這個“鐵塊子“!由于時間的關(guān)系一直沒有機(jī)會折騰。今天有點(diǎn)時間所以就拿出來研究一下。


經(jīng)過測量這是一個兩項(xiàng)四線的步進(jìn)電機(jī),步進(jìn)角為1.8度。有兩種工作方式。一種是4拍的方式,一種是8拍的方式,4拍方式的時序如下:

a~ 和b~ 表示反向電流。

ab     - a~b     -     a~b~     -     ab~       為一個轉(zhuǎn)向。
ab     -     ab~     -     a~b~     -     a~b      為反向。

8拍方式的時序如下:

A       B      C    D     E     F     G        H(時序)

A       1     1     0     0     0     0     0     1
A-      0     0     0     1     1     1     0     0
B       0     1     1     1     0     0     0     0
B-      0     0     0     0     0     1     1     1

我這里用的是8拍的方式。程序:

/***                                                        
*******************************************************************
**程序功能:
**芯片型號:STC11F16XE
**晶振頻率:22.1184M                                                  
**編寫日期:2010年10月日                                                       
**編寫人員:wang       QQ:349259818    Email:hongfadg@163.com 
**備注說明:                                                
*******************************************************************/
//以下為所需的頭文件
//#include<absacc.h>
//#include<string.h>
//#include<stdio.h>
//#include <INTRINS.H>
#include <reg52.H>
//定義關(guān)鍵字方便使用
#define uchar unsigned char   
#define uint  unsigned int   
#define ulong unsigned long
/*
sbit p10=P1^0;//第一組電機(jī)
sbit p11=P1^1;
sbit p12=P1^2;//第一組使能
sbit p13=P1^3;//第二組電機(jī)
sbit p14=P1^4;
sbit p15=P1^5;//第二組使能
*/
uchar step[]={0x25,0x2d,0x2c,0x2e,0x26,0x36,0x34,0x35};//時序參數(shù)表
/*              延時函數(shù)                                            
*******************************************************************
**函數(shù)原型: void delay(void)                                              
**函數(shù)功能:延時函數(shù)                                                     
**輸入?yún)?shù):無                                                    
**輸出參數(shù):無
**備注說明:                                                    
*******************************************************************/
 void delay(void)  

{
    unsigned char a,b,c;
    for(c=18;c>0;c--)
        for(b=19;b>0;b--)
            for(a=23;a>0;a--);
}

 /*                 主函數(shù)                                         
*******************************************************************
**函數(shù)原型:main()                                              
**函數(shù)功能:                                                       
**輸入?yún)?shù):無                                                    
**輸出參數(shù):無
**備注說明:完成程序的主要功能                                                   
*******************************************************************/
main()
{
 unsigned char c;
 while(1)   //主循環(huán)
  {
    for(c=0;c<8;c++)
    {       

    P1=step[c];  //電機(jī)驅(qū)動
    delay();  //延時
    }
  
  }

}

 

電路圖:

步進(jìn)電機(jī)驅(qū)動板

控制板

組裝整體





 

 

關(guān)閉窗口

相關(guān)文章