|
發布時間: 2020-1-16 08:42
正文摘要:請大神指點哦,為什么42步進電機的轉速與計算的不一樣啊?采用共陽接法。換了TB6600,低速轉動時不卡頓了,但是轉速不是期望的。 我撥的是16細分,按說3200個脈沖一轉。4MS一個脈沖,則轉一圈的時間大約應為:4*320 ... |
山頂任風吹 發表于 2022-2-15 18:20 speed(速度)、 |
| 兩個脈沖是一步,時間上差不多的 |
| 我也遇到這個問題也沒解決,但發現將speed直接用200也好還是2000也好,轉速和圈數就對了,請哪位高手指點 |
cccc888 發表于 2020-1-16 14:19 謝謝謝謝CCCC888的幫助解惑,應該是你說的這樣的了。 高4ms, 低4ms, 就是8ms了。....... ![]() .我沒有考慮到,感謝大神。 |
| 4MS一個脈沖的話,頻率是不是250HZ? 這該是比較慢的了哦……理論上12.8秒/圈, 我買的兩相四線的步機最轉速是1000轉/秒的哦。關鍵是它轉一圈居然要超過30秒得,這不科學,思來想去,沒找到問題在哪兒, 看了步進電機最好從低速到高速再穩定,這個速度該是低速了………………。 |
baiyun1234 發表于 2020-1-16 09:09 謝謝幫助了。 2.程序這兒定義是要改為這樣么: void main() { ENA=1; //ENA-接的控制口,但一樣的,如果ENA=0,步進電機卡起 DIR=1; //DIR-接的控制口。初始化電機 低電平有效,測試,DIR=1,是反轉, DIR=0正轉。 CLK=0; Init_time(); //初始化定時器 while(1) { } } 3.這個3200是說的電機轉一圈需要3200個脈沖得, 4ms輸出一個脈沖感覺這個頻率不高哦。 4.調成200個脈沖一圈, 步進角度是1.8度,就是不細分。4ms一個脈沖, 200個脈沖就是800ms, 0.8秒就要轉一圈,這個我回去試試看看。不知道我的理解是不是有錯的地方哈。 |
xuyaqi 發表于 2020-1-16 09:18 嗯, 新手就是沒搞懂問題出在哪點了…… |
|
從代碼看出(4000==4ms),好像是晶振12M,輸出4ms高4ms低,周期8ms, 從實際運行看,晶振可能是11.05,那么結果基本是對的. |
|
步進馬達接法可能有誤? TB6600的升級版;如所附照片的驅動器,是接兩相四線的步進馬達. 樓主所說的"采用共陽接法"是不正確的. 可否秀出馬達及單片機的原理圖,方便討論市接法是否正確. |
| 直接東西都有了直接測一下數據都有了,用不著去算,算錯說明概念理解有錯。 |
|
sbit CLK = P1^0; //PUL- 脈沖 sbit ENA = P1^1; //ENA-使能 sbit DIR = P1^2; //DIR- 方向 1.你的步進電機是脈沖和方向控制的。你的電機動作說明使能信號OK; 2.你控制步進電機,你首先需要確定輸出方向,而不是先確定輸出脈沖; 3.你上來就3200的脈沖,你的電機能加起來速?最好做成梯形的加減速。 4.建議你先調成200脈沖,延時做長一點,看看能正常轉不,如果你的步進電機一上電就接收高頻率輸出,也會不卡頓,那樣慢悠悠轉的。 5.如果你使用的輸出頻率較高,建議使用STC 1T的單片機,有100KHZ的高速脈沖輸出功能。 |