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