標題:
想用單片機控制兩個步進電機同時轉動應該怎么實現(xiàn)?
[打印本頁]
作者:
kj7799228
時間:
2021-2-3 13:25
標題:
想用單片機控制兩個步進電機同時轉動應該怎么實現(xiàn)?
需求是讓兩個步進電機同時同向轉動
在實現(xiàn)的時候我簡單想到在循環(huán)內寫兩個I/O口的變化情況
但是兩個步進電機都不轉了
程序如下,STC89C52RC芯片、28BYJ48減速步進電機、分別連接P0 P1口,電源充足:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code step_table[]={0xc4,0xcc,0xc8,0xd8,0xd0,0xf0,0xe0,0xe4};
void delay(uint t){
while(t--);
}
void main(){
uint i,j;
P0=0x00;
P1=0x00;
delay(500);
while(1){
for(i=0;i<8;i++){
P0=step_table[i];
P1=step_table[i];
delay(150);
}
}
}
作者:
lincheng15
時間:
2021-2-3 17:54
示波器打一下時序有沒有輸出,有輸出的時序有沒有對,不過那么多路信號用邏輯分析儀好點
作者:
wulin
時間:
2021-2-3 19:23
兩個電機用一組IO口即可
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code Forward[]={0x33,0x66,0xcc,0x99};
uchar code Reverse[]={0x33,0x99,0xcc,0x66};
void delay(uint t)
{
while(t--);
}
void main()
{
uchar i,j;
P0=0x00;
delay(500);
while(1)
{
for(i=0;i<192;i++)//正傳3圈
{
P0=Forward[j];
j=++j%4;
delay(2000);
}
P0=0x00;
delay(0xffff);
delay(0xffff);
delay(0xffff);
delay(0xffff);
delay(0xffff);
delay(0xffff);
delay(0xffff);
delay(0xffff);
for(i=0;i<192;i++)//反傳3圈
{
P0=Reverse[j];
j=++j%4;
delay(2000);
}
P0=0x00;
while(1);//結束
}
}
作者:
77599585
時間:
2021-2-3 21:29
你這需求 可以并聯(lián)電機 無需修改程序
作者:
glinfei
時間:
2021-2-4 09:07
一是,你用的可是P0^1-P0^4口和P1^1-P1^4口,別插錯了,P0還要上拉;二是,step_table[]最后一個應該是0xf4
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1