標(biāo)題: 51單片機(jī)步進(jìn)電機(jī)調(diào)速系統(tǒng)這個(gè)代碼是怎么實(shí)現(xiàn)的?求分析 [打印本頁(yè)]

作者: ssmlong    時(shí)間: 2022-4-28 23:03
標(biāo)題: 51單片機(jī)步進(jìn)電機(jī)調(diào)速系統(tǒng)這個(gè)代碼是怎么實(shí)現(xiàn)的?求分析
求助論壇大佬,這個(gè)代碼的調(diào)速是怎么實(shí)現(xiàn)的
(大二初學(xué)單片機(jī),不太理解,編程語(yǔ)言主要學(xué)了c、c艸)
感謝!

image.jpg (6 MB, 下載次數(shù): 41)

image.jpg

作者: glinfei    時(shí)間: 2022-4-29 08:32
就是調(diào)speed的值啊,speed越大速度越快。不過它調(diào)節(jié)能力,0-10這個(gè)值也太小了。
作者: ssmlong    時(shí)間: 2022-4-29 14:13
glinfei 發(fā)表于 2022-4-29 08:32
就是調(diào)speed的值啊,speed越大速度越快。不過它調(diào)節(jié)能力,0-10這個(gè)值也太小了。

好的,感謝,這個(gè)我能理解了,不過他這個(gè)步數(shù)是怎么設(shè)定的,AA BB CC DD給高低電平這個(gè)我不是很理解。如果是八拍,不應(yīng)該是按照AA -AABB-BB-………這個(gè)順序給脈沖,這個(gè)switch語(yǔ)句里的是怎么實(shí)現(xiàn)的呢?
作者: ssmlong    時(shí)間: 2022-4-29 14:21
這個(gè)是完整代碼(部分注釋是我自己添加的,不知是否有誤,代碼是在網(wǎng)上找到的)感謝各位大佬答疑解惑

962E95DA-7484-4F15-AB14-D391140728E0.jpeg (203.37 KB, 下載次數(shù): 51)

962E95DA-7484-4F15-AB14-D391140728E0.jpeg

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

沒看到你變量的定義和線路,但你搜一下兩項(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)。
作者: ssmlong    時(shí)間: 2022-4-29 21:46
glinfei 發(fā)表于 2022-4-29 14:57
沒看到你變量的定義和線路,但你搜一下兩項(xiàng)四線的步進(jìn)電機(jī),四拍怎么走的就知道了,你說的是八拍走法略有 ...

好的,謝謝你
作者: 33333333111    時(shí)間: 2022-4-30 23:36
做好了沒,我最近也在研究咋控制轉(zhuǎn)速的
作者: dazhige    時(shí)間: 2022-5-1 10:05
調(diào)速就是兩個(gè)脈沖之間或者兩相通電的間隔,如果越長(zhǎng)(不管使用定時(shí)器還是延時(shí)函數(shù)),步進(jìn)電機(jī)越慢,越短步進(jìn)越快,當(dāng)然一定要滿足電機(jī)本身的機(jī)械要求,太小了,電機(jī)僅僅震動(dòng)發(fā)熱,時(shí)間長(zhǎng)了可能會(huì)燒毀。
作者: ssmlong    時(shí)間: 2022-5-2 02:55
dazhige 發(fā)表于 2022-5-1 10:05
調(diào)速就是兩個(gè)脈沖之間或者兩相通電的間隔,如果越長(zhǎng)(不管使用定時(shí)器還是延時(shí)函數(shù)),步進(jìn)電機(jī)越慢,越短步 ...

我主要是不太懂他這個(gè)步數(shù)是怎么設(shè)定的,高低電平是什么給的,就是switch里面的不太懂
作者: ssmlong    時(shí)間: 2022-5-2 02:56
33333333111 發(fā)表于 2022-4-30 23:36
做好了沒,我最近也在研究咋控制轉(zhuǎn)速的

還在學(xué)習(xí),一起加油🤝
作者: dazhige    時(shí)間: 2022-5-2 08:12

作者: dazhige    時(shí)間: 2022-5-2 10:00
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個(gè)IO口了,就大概明白了,所謂的脈沖,就是讓某一個(gè)線圈通電
作者: knight18z    時(shí)間: 2022-5-2 11:07
利用pwm控制吧
作者: dlnb666    時(shí)間: 2022-5-2 11:58
一般是pwm實(shí)現(xiàn)
作者: ssmlong    時(shí)間: 2022-5-2 19:20
dazhige 發(fā)表于 2022-5-2 10:00
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個(gè)IO口了,就大概明白了,所謂的脈沖,就是讓某一個(gè)線 ...

好的,謝謝你
作者: ssmlong    時(shí)間: 2022-5-2 19:20
knight18z 發(fā)表于 2022-5-2 11:07
利用pwm控制吧

我還不太懂pwm是什么,剛接觸單片機(jī),繼續(xù)學(xué)習(xí),感謝
作者: ssmlong    時(shí)間: 2022-5-2 19:21
dlnb666 發(fā)表于 2022-5-2 11:58
一般是pwm實(shí)現(xiàn)

好的,我回去了解一下
作者: ssmlong    時(shí)間: 2022-5-2 20:11
dazhige 發(fā)表于 2022-5-2 10:00
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個(gè)IO口了,就大概明白了,所謂的脈沖,就是讓某一個(gè)線 ...

我還有個(gè)問題想請(qǐng)教一下您,就是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ù)嗎?
作者: ssmlong    時(shí)間: 2022-5-2 21:13
dazhige 發(fā)表于 2022-5-2 10:00
結(jié)合上面的圖,然后和具體的電路,比如ABCD各相接到那個(gè)IO口了,就大概明白了,所謂的脈沖,就是讓某一個(gè)線 ...

你好,我想向您請(qǐng)教一下(剛剛在帖子下回復(fù)了不過好像沒有成功),就是關(guān)于那個(gè)switch語(yǔ)句,我的理解是每一次執(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è)是我不太理解的地方
作者: glinfei    時(shí)間: 2022-5-5 14:47
ssmlong 發(fā)表于 2022-5-2 21:13
你好,我想向您請(qǐng)教一下(剛剛在帖子下回復(fù)了不過好像沒有成功),就是關(guān)于那個(gè)switch語(yǔ)句,我的理解是每 ...

如果完整走了八步后再走,它的節(jié)奏是下面的表,端口不需要每次都重新賦值啊。你那么寫也沒錯(cuò),但沒這個(gè)效率高,它在中斷函數(shù),對(duì)效率敏感。
      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    時(shí)間: 2022-5-5 15:29
glinfei 發(fā)表于 2022-5-5 14:47
如果完整走了八步后再走,它的節(jié)奏是下面的表,端口不需要每次都重新賦值啊。你那么寫也沒錯(cuò),但沒這個(gè)效 ...

正解,其實(shí)什么節(jié)拍有多種理解,不一定要按照一個(gè)思路,只要給的脈沖產(chǎn)生的磁場(chǎng)是順序轉(zhuǎn)動(dòng)的,并且按照步距角的要求都是可以的,至于效率暫時(shí)不要考慮,只要理解了思路,天高任鳥飛。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1