-
根據你的相序,你是在全步執行,也就是說,每一步是乙個迴圈,4步和乙個迴圈,即每轉50個迴圈。 所以你程式中的 512 轉一圈是不對的,512 會轉 10 次以上。
根據你的程式,J 在達到零時會停止,並且不會一直持續下去。
如果想隨時停止,可以新增乙個按鈕來切換開始和停止。
main()
unsigned char i,flag;
unsigned int j;
j=512*2;512圈。
p0=0xff;關閉數碼管的位選擇訊號。 防止數碼管受到P0埠訊號的影響。
delay(500);
wela=1;wela=p2 7,啟用位選擇,寫入命令。
delay(500);
wela=0;
flag=0;
while(1)
for(i=0;i<4;i++) 4 相。
p0=b_rotation[i];輸出的相應相位可以反轉**。
while(1)
if(key==0)
while(key==0);等待金鑰被舉起。
flag=~flag;
if(flag)break;
delay(400);改變這個引數可以調節電機轉速,數值越小,轉速越大。
-
每次迴圈函式完成時,它都會返回 main 函式,然後在 main 函式中呼叫 stop 函式。
-
有了驅動器,只要微控制器輸出步進的方向電平和脈衝,步進電機就可以跟隨你的步進電機。
意思顛倒過來了。
紅外線控制,如果參考遙控器,就得用紅外線整合管對接收到的碼進行解碼。
然後,根據分析值,進行正反向控制步進電機。
如果是紅外光束管,則更簡單,即將開關量輸入到微控制器的IO中,步進電機根據電平或不同的IO輸入進行控制。
-
主要有電壓轉換晶元7805
-
四相阻斷五線步進電機在控制方式和接線側採用單極控制方式,可由2003驅動,微控制器提供環形分配器的作用。
-
那東西比微控制器複雜多了,炒雞蛋,連環都發不出來。
-
要控制四個步進電機,您需要四個ULN2003A,包括
unsigned char code f_rotation[4]=;向前旋轉**。
unsigned char code b_rotation[4]=;反轉**。
void delay(unsigned int i) 延遲 main()}
這是單個步進電機的程式,控制四個,更改每個步進電機中的“P1”!
-
當然,如果ABCD時序上電控制是正向的,ADCB時序上電控制是反向的。 這就是任何步進電機控制正向和反向旋轉的方式。
-
可以實現正反轉,只要程式的賦值部分寫反向就可以了,比如以單拍正向旋轉為例:
p0=0x01;delay();//0001p0=0x02;delay();//0010p0=0x04;delay();//0100p0=0x08;delay();1000 則反轉為:
p0=0x08;delay();
p0=0x04;delay();
p0=0x02;delay();
p0=0x01;delay();
如果要增加驅動轉矩,可以同時提供兩條動力線,正向旋轉分配如下(你應該能理解):
0x03;//0011
0x06;//0110
0xc0;//1100
0x09;//1001
第二個問題,是的,程式可以稍微修改一下,到4行,當然,程式根本不能動也可以讓他旋轉,但是速度不穩定。
-
微控制器不可能同時使用,當然時間間隔小到可以接受,執行多個任務也可以算是同時進行。 為了實現真正的同時性,可以使用FPGA CPLD來實現。
話雖如此,也許你的同時操作並不意味著它必須嚴格同時工作,而是微控制器可以控制四個步進電機,而且會容易得多。
步進電機,例如 4 相 5 線電機,可以控制 4 個 IO 埠中的乙個、4 個步進電機中的 16 個,ULN2003可用於驅動晶元。
當然,如果你的IO口不允許用那麼多,也可以通過串列埠和合併的方式擴充套件IO口,比如使用74HC595,三個IO口來控制它,它可以級聯,三線可以控制很多件。 乙個是 8 位,兩個是 16 位,3 個是 24 位......只要增加一些電晶體來驅動三條控制線,三個IO口就可以控制一系列級聯的74HC595,得到的擴充套件IO口相當多。 我用了三個IO口來控制5個74HC595,三個IO口一下子擴充套件到40個IO口!!
-
可以使用51微控制器和專用運動控制晶元,如HMC8045,微控制器51向專用晶元傳送四路同步控制指令,專用晶元控制電機同步,微控制器只需等待運動到位後再傳送下一條指令。
-
51.做起來難,效果不好,拿去學微控制器程式設計,實際工程應用幾乎是不可能的。 工程應用可以選擇串列埠四軸運動控制器,微控制器向控制器傳送串列埠指令,實現連續執行、定位執行、歸零等,非常容易。
-
一般來說,所謂的同時性是不存在的,嵌入式對實時的定義應該是主頻比較高(頻率足夠高),任務乙個接乙個地執行,這樣每個任務之間的時間差就很小了(以上是個人意見,不是公眾意見)。 步進電機一般需要加乙個外部電機驅動電路,然後使用微控制器的IO控制(大功率步進電機可以用L297+L298控制,小功率用ULN2008 ULN2003應該沒問題。 51微控制器有32個IO口可以使用,驅動4個步進電機沒有問題。