![]() |
發(fā)布時間: 2022-4-28 23:03
正文摘要:求助論壇大佬,這個代碼的調(diào)速是怎么實現(xiàn)的 (大二初學(xué)單片機(jī),不太理解,編程語言主要學(xué)了c、c艸) 感謝! |
glinfei 發(fā)表于 2022-5-5 14:47 正解,其實什么節(jié)拍有多種理解,不一定要按照一個思路,只要給的脈沖產(chǎn)生的磁場是順序轉(zhuǎn)動的,并且按照步距角的要求都是可以的,至于效率暫時不要考慮,只要理解了思路,天高任鳥飛。 |
ssmlong 發(fā)表于 2022-5-2 21:13 如果完整走了八步后再走,它的節(jié)奏是下面的表,端口不需要每次都重新賦值啊。你那么寫也沒錯,但沒這個效率高,它在中斷函數(shù),對效率敏感。 AABBCCDD 0 1 1 0 0 1 0 1 0 0 2 0 1 1 0 3 0 0 1 0 4 0 0 1 1 5 0 0 0 1 6 1 0 0 1 7 1 0 0 0 |
dazhige 發(fā)表于 2022-5-2 10:00 你好,我想向您請教一下(剛剛在帖子下回復(fù)了不過好像沒有成功),就是關(guān)于那個switch語句,我的理解是每一次執(zhí)行都是給某一個io口脈沖,我的想法是如果是八拍,就是 case 1:AA=1,BB=0,CC=0,DD=0; case 2:AA=1,BB=1,CC=0,DD=0; case 3:AA=0,BB=1,CC=0,DD=0… 依次類推,如果是原作者的思路,他一次只給某一個口脈沖(如BB=1),那下一次執(zhí)行的時候,沒有重新給BB賦值,那BB的狀態(tài)沒有變,不會影響轉(zhuǎn)動嗎?這個是我不太理解的地方 |
dazhige 發(fā)表于 2022-5-2 10:00 我還有個問題想請教一下您,就是switch里面,我的理解是,每一次執(zhí)行都是給某一個接口脈沖,那不應(yīng)該是這樣:case 1: AA=1,BB=0,CC=0,DD=0;case 2:AA=1,BB=1,CC=0,DD=0;case 3:依次類推,如果是像原作者那樣寫的,他的步序是怎樣的,給一個接口脈沖之后再給其他接口脈沖,但是前一個接口狀態(tài)沒有改變,那不會影響步數(shù)嗎? |
dlnb666 發(fā)表于 2022-5-2 11:58 好的,我回去了解一下 |
knight18z 發(fā)表于 2022-5-2 11:07 我還不太懂pwm是什么,剛接觸單片機(jī),繼續(xù)學(xué)習(xí),感謝 |
dazhige 發(fā)表于 2022-5-2 10:00 好的,謝謝你 |
一般是pwm實現(xiàn) |
利用pwm控制吧 |
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個IO口了,就大概明白了,所謂的脈沖,就是讓某一個線圈通電 |
![]() ![]() ![]() |
33333333111 發(fā)表于 2022-4-30 23:36 還在學(xué)習(xí),一起加油🤝 |
dazhige 發(fā)表于 2022-5-1 10:05 我主要是不太懂他這個步數(shù)是怎么設(shè)定的,高低電平是什么給的,就是switch里面的不太懂 |
調(diào)速就是兩個脈沖之間或者兩相通電的間隔,如果越長(不管使用定時器還是延時函數(shù)),步進(jìn)電機(jī)越慢,越短步進(jìn)越快,當(dāng)然一定要滿足電機(jī)本身的機(jī)械要求,太小了,電機(jī)僅僅震動發(fā)熱,時間長了可能會燒毀。 |
做好了沒,我最近也在研究咋控制轉(zhuǎn)速的 |
glinfei 發(fā)表于 2022-4-29 14:57 好的,謝謝你 |
ssmlong 發(fā)表于 2022-4-29 14:13 沒看到你變量的定義和線路,但你搜一下兩項四線的步進(jìn)電機(jī),四拍怎么走的就知道了,你說的是八拍走法略有不同,至于switch ,不過是flag每個循環(huán)加一了,看89——92行,所以它在0-7變換,所以每switch自然就執(zhí)行下一case。相當(dāng)于BB CC DD AA 分別置1,其他的都是0. 另外,感覺你的速度也太快了,可能轉(zhuǎn)不了,光發(fā)抖了,如果不轉(zhuǎn)把69行的10 調(diào)大點。 |
glinfei 發(fā)表于 2022-4-29 08:32 好的,感謝,這個我能理解了,不過他這個步數(shù)是怎么設(shè)定的,AA BB CC DD給高低電平這個我不是很理解。如果是八拍,不應(yīng)該是按照AA -AABB-BB-………這個順序給脈沖,這個switch語句里的是怎么實現(xiàn)的呢? |
就是調(diào)speed的值啊,speed越大速度越快。不過它調(diào)節(jié)能力,0-10這個值也太小了。 |
Powered by 單片機(jī)教程網(wǎng)