PIC18F4550 單極步進馬達 (Two-Phase Unipolar Stepper Motor) CW (Clock Wise, 順時針) 轉動程式同 LED 程式相同,最大的分別是 RA1 至 RA4 的次序,原 LED 程式是 RA1→RA2→RA3→RA4 順序,但步進馬達 CW (Clock Wise, 順時針) 轉動程式是 RA1→RA3→RA2→RA4 (A → B → -A → -B),是為了配合單極步進馬達電路線圈的連接。12V 的電源是提供給單極步進馬達用,電源供應是用了一個舊 ATX 的電腦電源供應器。
▲ PIC18F4550 步進馬達 CW 轉動程式流程圖 |
▼ PIC18F4550 單極步進馬達 CW 轉動程式:
void main(void) { TRISA = 0b00000001; // Setup PORTA RA1 - RA7 as Output while(1) { LATAbits.LATA1 = 1; // RA0=1 LED=ON Scope=1 A+ White Delay10KTCYx(240); // 10,000 x 1 x (4 x 0.05us) = 2ms // Scope = 2ms LATAbits.LATA1 = 0; // RA1=0 LED=OFF Scope=50ms LATAbits.LATA3 = 1; // RA3=1 LED=ON Scope=1 B+ Blue Delay10KTCYx(240); // 10,000 x 1 x (4 x 0.05us) = 2ms // Scope = 2ms LATAbits.LATA3 = 0; // RA3=0 LED=OFF Scope=50ms LATAbits.LATA2 = 1; // RA2=1 LED=ON Scope=1 A- Red Delay10KTCYx(240); // 10,000 x 1 x (4 x 0.05us) = 2ms // Scope = 2ms LATAbits.LATA2 = 0; // RA2=0 LED=OFF Scope=50ms LATAbits.LATA4 = 1; // RA4=1 LED=ON Scope=1 B- Yellow Delay10KTCYx(240); // 10,000 x 1 x (4 x 0.05us) = 2ms // Scope = 2ms LATAbits.LATA4 = 0; // RA4=0 LED=OFF Scope=50ms } } |
▲ Teac 單極步進馬達 CW 轉動方向 |
Pin No. | Colour | Description |
1 | 白色 | Phase A |
2 | 藍色 | Phase B |
3 | 紅色 | Phase –A |
4 | 黃色 | Phase –B |
5 | 棕色 | Common A |
6 | 棕色 | Common B |
該驅動器的序列如下圖所示只是1個週期 (A → B → -A → -B)。需要重複序列,使馬達順時針轉動不斷。
Step | 白色 (A) | 藍色 (B) | 紅色 (-A) | 黃色 (-B) |
1 | X | 0 | 0 | 0 |
2 | 0 | X | 0 | 0 |
3 | 0 | 0 | X | 0 |
4 | 0 | 0 | 0 | X |
這個序列是使用最小的電流。每一次它只有一個線圈會通電和執行全步 (Full-stepping) 轉動。使用這一種方法是不需要太大的扭矩和希望盡量減少電力消耗。
▲ PIC18F4550 步進馬達 CW 轉動程式運作中 |
氣溫:29.4 度 @ 22:00
相對濕度:百分之79%
天氣:天色大致良好
請問一下...
回覆刪除可以給我 PIC18F4550 單極步進馬達 CW 轉動程式
每一行的註解麻...
想研究可以是看不太懂..
程式已經在網頁上並有註解、介紹和 Flow Chart,請參考。
回覆刪除