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