單片機控制兩相四線步進電機控制


先來圖看看,沒忍住全部抄下來:(感謝萬能的淘寶,以及商家 8毛錢一個還要啥自行車  @ https://item.taobao.com/item.htm?spm=a230r.1.14.65.472f69f3zFqx6H&id=590142046187&ns=1&abbucket=8#detail)

 

 手頭有個STC89C51開發板,送的就是上邊的步進電機。也不太懂這四個線的作用,好在有百度。百度了是arduino,單片機的也有。

控制方法見這里:https://wenku.baidu.com/view/8579bf2349649b6649d747ea.html 第四頁下側。

看了之后該電機可以4拍8拍的運行。步進電機的特點是,誤差不累積。

單片機不能直接控制它,因為電流不夠。開發板上有個 TC1508S (https://wenku.baidu.com/view/6e6dbe0302d8ce2f0066f5335a8102d276a261b7.html)

專門是用來做玩具馬達的。這個片子很容易,輸入四個 ,輸出四個 可以控制兩個直流電機(突然我有開玩具廠做遙控車的想法,哈哈)做到真正的四驅。

這里也可以控制好輸出的時序來控制這個兩線四相的步進電機。關於連線附屬電容參看TC1508S的內容。

用了P1的0,1,2,3端口 接 TC1508S的 ina inb inc ind  關於真值表看文檔

TC1508S的 outa outb outc outd 接到 步進電機的 A+ A- B+ B- 

按上邊的就是間接的用 0,1,2,3口控制步進電機的 A+ A- B+ B-

代碼我在貼吧看到一個,拷過來能用,是4拍的:

sbit   A_OUT=P1^0;              //位定義
sbit   B_OUT=P1^1;              //位定義
sbit   C_OUT=P1^2;              //位定義
sbit   D_OUT=P1^3;             //位定義
void delay(i)//延時函數
{
unsigned char  j,k;
for(j=0;j<3;j++)
for(k=0;k<i;k++);
}

FuncNum=200;
while (--FuncNum) {
A_OUT=1;
B_OUT=0;
C_OUT=1;
D_OUT=0;
delay(y);
//
A_OUT=0;
B_OUT=1;
C_OUT=1;
D_OUT=0;
delay(y);
   //
A_OUT=0;
B_OUT=1;
C_OUT=0;
D_OUT=1;
delay(y);
   //
A_OUT=1;
B_OUT=0;
C_OUT=0;
D_OUT=1;
delay(y);
    }
P1=0;   //恢復低電平,防止燒壞電機

至於八拍的就看上邊的關於步進電機的文檔補充上就好了。

 

這個電機雖小,可以做很多有意思的東西。

 

另外如果接TC1508S的 outa outb , outc outd 可以分兩組控制兩個普通馬達,小時候最喜歡四驅車就是這個,淘寶2快兩個,想當年四驅車暴利啊。

 

現在越來越喜歡單片機了。能控制能動的馬達,無限的想象力就來了。

 為什么放在QT因為我在做上位機和下位機控制。串口通信把小馬達們控制起來,加個藍牙,無線模塊,無限可能有木有。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM