找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機(jī)步進(jìn)電機(jī)調(diào)速系統(tǒng)這個代碼是怎么實現(xiàn)的?求分析

查看數(shù): 2281 | 評論數(shù): 20 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2022-4-28 23:03

正文摘要:

求助論壇大佬,這個代碼的調(diào)速是怎么實現(xiàn)的 (大二初學(xué)單片機(jī),不太理解,編程語言主要學(xué)了c、c艸) 感謝!

回復(fù)

ID:514254 發(fā)表于 2022-5-5 15:29
glinfei 發(fā)表于 2022-5-5 14:47
如果完整走了八步后再走,它的節(jié)奏是下面的表,端口不需要每次都重新賦值啊。你那么寫也沒錯,但沒這個效 ...

正解,其實什么節(jié)拍有多種理解,不一定要按照一個思路,只要給的脈沖產(chǎn)生的磁場是順序轉(zhuǎn)動的,并且按照步距角的要求都是可以的,至于效率暫時不要考慮,只要理解了思路,天高任鳥飛。
ID:844772 發(fā)表于 2022-5-5 14:47
ssmlong 發(fā)表于 2022-5-2 21:13
你好,我想向您請教一下(剛剛在帖子下回復(fù)了不過好像沒有成功),就是關(guān)于那個switch語句,我的理解是每 ...

如果完整走了八步后再走,它的節(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
ID:1015750 發(fā)表于 2022-5-2 21:13
dazhige 發(fā)表于 2022-5-2 10:00
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個IO口了,就大概明白了,所謂的脈沖,就是讓某一個線 ...

你好,我想向您請教一下(剛剛在帖子下回復(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)動嗎?這個是我不太理解的地方
ID:1015750 發(fā)表于 2022-5-2 20:11
dazhige 發(fā)表于 2022-5-2 10:00
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個IO口了,就大概明白了,所謂的脈沖,就是讓某一個線 ...

我還有個問題想請教一下您,就是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ù)嗎?
ID:1015750 發(fā)表于 2022-5-2 19:21
dlnb666 發(fā)表于 2022-5-2 11:58
一般是pwm實現(xiàn)

好的,我回去了解一下
ID:1015750 發(fā)表于 2022-5-2 19:20

我還不太懂pwm是什么,剛接觸單片機(jī),繼續(xù)學(xué)習(xí),感謝
ID:1015750 發(fā)表于 2022-5-2 19:20
dazhige 發(fā)表于 2022-5-2 10:00
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個IO口了,就大概明白了,所謂的脈沖,就是讓某一個線 ...

好的,謝謝你
ID:1023283 發(fā)表于 2022-5-2 11:58
一般是pwm實現(xiàn)
ID:1023213 發(fā)表于 2022-5-2 11:07
利用pwm控制吧
ID:514254 發(fā)表于 2022-5-2 10:00
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個IO口了,就大概明白了,所謂的脈沖,就是讓某一個線圈通電
ID:514254 發(fā)表于 2022-5-2 08:12
ID:1015750 發(fā)表于 2022-5-2 02:56
33333333111 發(fā)表于 2022-4-30 23:36
做好了沒,我最近也在研究咋控制轉(zhuǎn)速的

還在學(xué)習(xí),一起加油&#129309;
ID:1015750 發(fā)表于 2022-5-2 02:55
dazhige 發(fā)表于 2022-5-1 10:05
調(diào)速就是兩個脈沖之間或者兩相通電的間隔,如果越長(不管使用定時器還是延時函數(shù)),步進(jìn)電機(jī)越慢,越短步 ...

我主要是不太懂他這個步數(shù)是怎么設(shè)定的,高低電平是什么給的,就是switch里面的不太懂
ID:514254 發(fā)表于 2022-5-1 10:05
調(diào)速就是兩個脈沖之間或者兩相通電的間隔,如果越長(不管使用定時器還是延時函數(shù)),步進(jìn)電機(jī)越慢,越短步進(jìn)越快,當(dāng)然一定要滿足電機(jī)本身的機(jī)械要求,太小了,電機(jī)僅僅震動發(fā)熱,時間長了可能會燒毀。
ID:493649 發(fā)表于 2022-4-30 23:36
做好了沒,我最近也在研究咋控制轉(zhuǎn)速的
ID:1015750 發(fā)表于 2022-4-29 21:46
glinfei 發(fā)表于 2022-4-29 14:57
沒看到你變量的定義和線路,但你搜一下兩項四線的步進(jìn)電機(jī),四拍怎么走的就知道了,你說的是八拍走法略有 ...

好的,謝謝你
ID:844772 發(fā)表于 2022-4-29 14:57
ssmlong 發(fā)表于 2022-4-29 14:13
好的,感謝,這個我能理解了,不過他這個步數(shù)是怎么設(shè)定的,AA BB CC DD給高低電平這個我不是很理解。如 ...

沒看到你變量的定義和線路,但你搜一下兩項四線的步進(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)大點。
ID:1015750 發(fā)表于 2022-4-29 14:13
glinfei 發(fā)表于 2022-4-29 08:32
就是調(diào)speed的值啊,speed越大速度越快。不過它調(diào)節(jié)能力,0-10這個值也太小了。

好的,感謝,這個我能理解了,不過他這個步數(shù)是怎么設(shè)定的,AA BB CC DD給高低電平這個我不是很理解。如果是八拍,不應(yīng)該是按照AA -AABB-BB-………這個順序給脈沖,這個switch語句里的是怎么實現(xiàn)的呢?
ID:844772 發(fā)表于 2022-4-29 08:32
就是調(diào)speed的值啊,speed越大速度越快。不過它調(diào)節(jié)能力,0-10這個值也太小了。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表