PC基自激步進(jìn)電機(jī)控制器(05-100)
本文引用地址:http://www.ex-cimer.com/article/91535.htm
圖4 控制器電路圖
控制器工作在3個(gè)模式:遠(yuǎn)程運(yùn)行模式、編程模式和獨(dú)立應(yīng)用運(yùn)行模式。
在遠(yuǎn)程運(yùn)行模式,每一個(gè)脈沖到STEP輸入,電機(jī)轉(zhuǎn)動(dòng)1步。轉(zhuǎn)動(dòng)方向由DIR輸入控制(類似于UCN5804B控制器的工作)。在編程模式,用RS232接口把所需的轉(zhuǎn)動(dòng)命令送到微控制器。本電路中用PC把所需的轉(zhuǎn)動(dòng)命令送到微控制器。所接收的命令存儲(chǔ)在微控制器的非易失性EEPROM中。當(dāng)微控制器處于獨(dú)立應(yīng)用運(yùn)行模式時(shí),電機(jī)由存儲(chǔ)在微控制器EEPROM中的命令步控制。
控制器電路示于圖4。工作在4MHz的PIC16F84微控制器是控制器的心臟。配置口RAO~RA3為輸出,用這些口驅(qū)動(dòng)ULN2003A輸入。ULN2003A的輸出直接驅(qū)動(dòng)步進(jìn)電機(jī)。微控制器的RB2輸入配置為串行RS232輸入,而晶體管—二極管電路用于輸換RS232信號(hào)電平到+5V。1個(gè)兩路DIL開關(guān)連接RB3和RB4輸入??块_關(guān)選擇工作模式 (見表2)。S1選擇編程或運(yùn)行模式。在運(yùn)行模式時(shí),S2選擇來自內(nèi)部EEPROM或外部脈沖的操作。RB0和RB1是STEP和DIRECTION輸入。當(dāng)控制至處于遠(yuǎn)程運(yùn)行模式時(shí),每加一個(gè)脈沖,電機(jī)轉(zhuǎn)動(dòng)一步。
一個(gè)小的LED連接到PORTB的bit7。當(dāng)控制器處于編程模式和從串行口接收有效命令時(shí),LED每秒閃光一次。此電路設(shè)計(jì)用于具有高達(dá)500mA(在+12V)電流的步進(jìn)電機(jī)。
表2 選擇模式
軟件
軟件分兩部分:微控制軟件(運(yùn)行在PIC微控制器)和PC軟件(用于經(jīng)PC串行口下載命令到微控制器)。
用Hi-Tech PICC Lite C compiler 開發(fā)微控制器軟件。此編譯程序是由Hi-Tech 公司開發(fā)的,可以用于編程PIC16F84和PIC16F877芯片。用高級(jí)語言開發(fā)微控制器系統(tǒng)具有容易開發(fā)和測(cè)試代碼以及容易維護(hù)代碼的優(yōu)點(diǎn)。程序清單見程序列表。
命令用字符‘S’開始,然后發(fā)送步進(jìn)角和步間延遲。其次,送5個(gè)字節(jié)來指定所需的轉(zhuǎn)動(dòng)。前兩個(gè)字節(jié)是轉(zhuǎn)數(shù)。然后規(guī)定轉(zhuǎn)動(dòng)方向,其后是命令間所需的延遲。送一個(gè)“#”字符來指明數(shù)據(jù)結(jié)束。LED每秒閃爍一次表明已按收的數(shù)據(jù)無錯(cuò)誤。
圖5 一個(gè)典型的運(yùn)行實(shí)例
用Visual Basic 開發(fā)PC軟件。程序用Microsoft MSComm ActiveX子序列送出串行數(shù)據(jù)。程序由單元格式組成(見圖5),每個(gè)單元用于輸入所需的電機(jī)命令。以這種形式,用戶輸入電機(jī)步進(jìn)角、每個(gè)步之間所需的延遲和所用串行口數(shù)。然后輸入所需的電機(jī)控制步(轉(zhuǎn)數(shù))、方向(0或1)和命令之后的延遲(ms)。
9步用于用戶輸入電機(jī)控制命令,但修改程序可以增加此步驟數(shù)。
結(jié)語
本文給出的控制器可以很容易地通過串行線接收控制命令,并存儲(chǔ)在微控制器的EEPROM中。用PIC16F84微控制器,在EEPROM存儲(chǔ)器中,可存儲(chǔ)多達(dá)12個(gè)控制命令。較大的PIC芯片,如PIC16F877,在EEPROM中,可存儲(chǔ)多達(dá)50個(gè)控制命令?!?京湘)
評(píng)論