Re: [問題] 8051控制步進馬達程式
※ 引述《typecommand (:))》之銘言:
: 我先承認這是學校程式,但不是請大家幫我寫,而是我題目看不太懂
: ,題意懂了,我就會寫了 (我是用Keil C去模擬port的訊號)
: 一)P1 pin 0-3 are input, pin 4-7 are output and are used to drive motor.
: (P1有可能同時做為input port和output port嗎? 我是把P2設為output port)
當然可以 如果你高興的話 也是可以1 3 5 7做output 2 4 6 8做input
只是沒人會這麼閒這樣做就是....XD
一般來說 以作業來講 都是以自己好理解好控制為主
如果有考慮到使用者層面的問題 就得注意一下怎樣的pin腳設計才會讓使用者好用
: (1)if key pressed(port P1 pin 0) , the motor loop forward 2 step per second
: (是不是說在P1的pin 0打勾,就要讓馬達每秒鐘正轉2個半步)
打勾? 應該就是說按鍵吧
如果按下pin0的按鍵 就讓它以每秒2步進行正轉(也就是說每步延遲是0.5s)
: (2)if key pressed(port P1 pin 1) , the motor loop backward 2 step per second.
: (同上)
同上 不過這變反轉
: (3)if switch on (port P1 pin 2==1) , using Full step control, else half step
: (是不是pin2 和 pin0同時打勾,就正轉全步)
: ( pin2 和 pin1 反 )
這邊的設定是讓它選擇是用一相激磁(full step)或一~二相激磁(half step)
如果pin2按下的話 就用一相激磁(full step) 沒按就是一~二相激磁(half step)
: Step motor control:
: Full step
: step[0] = 1; { binary 0001 }
: step[1] = 4; { binary 0100 }
: step[2] = 2; { binary 0010 }
: step[3] = 8; { binary 1000 }
: (1 4 2 8 什麼意思,完全看不太懂)
這邊就是設定它激磁順序 1 4 2 8用二進位(binary)來看會比較好理解
依照上面的資料來看 它的激磁針腳應該是如下
pin7 pin6 pin5 pin4
B' B A' A
↓激 0 0 0 1 = 1
磁 0 1 0 0 = 4
方 0 0 1 0 = 2
向 1 0 0 0 = 8
所以激磁順序是 A→ B→ A'→ B'→A 循環
每次只激磁一個針腳是一相激磁的特色
: half-step control:
: step[0] = 1; { binary 0001 }
: step[1] = 5; { binary 0101 }
: step[2] = 4; { binary 0100 }
: step[3] = 6; { binary 0110 }
: step[4] = 2; { binary 0010 }
: step[5] = 10; { binary 1010 }
: step[6] = 8; { binary 1000 }
: step[7] = 9; { binary 1001 }
: (1 5 4 6 2 10 8 9 也完全看不懂)
所以這邊解釋如上 但不同的地方在於它是一~二相激磁
它的激磁順序是A→ AB→ B→ BA'→ A'→ A'B'→ B'→ B'A→ A
而這種激磁方式可以提高它轉動的解析度
(也就是一步的度數 在此為提高一倍 為原本一相激磁的半步)
至於原理..請自己查書 XD
: procedure onestep( direction );
: begin
: step := step + direction;
: if step > maxstep then step := 0
: else if step < 0 then step := maxstep;
: write( motor, steptab[step] );
: end;
: (上述的虛擬碼是不是在說,步進馬達不能一次轉動太多,不能超
: 過maxstep。另外direction有可能是負的嗎?否則幹嘛判斷step<0
: 的時候,step = maxstep,還是說direction負的表示反轉)
: 又臭又長,感謝大家努力的看完它,謝謝。
這邊大概就是說你要負責處理步數的問題
0步再反轉也不會是-1步 所以要變成maxstep
maxstep再正轉也不會是maxstep+1步 會歸0
至於maxstep步數是多少 就看你用的激磁方式了
以上
--
好像太晚回 囧rz
--
其 A︻A A︵A A︻A 在
処 (‧ _‧) (‧__‧) (‧_ ‧) る
に ≡¥≡︽。 ≡。≡ 。︽≡¥≡ の
ロ ╱◢▆◣ ︾▌ ︽ ▌︾ ◢▆◣╲ だ
マ ﹨﹨ ◢▌∥∥▌◣ ∕∕ ろ
ンは… Sound Horizon 5th Story CD—Roman うか?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.223.165.40
※ 編輯: darkstorm 來自: 61.223.165.40 (10/31 02:53)
※ 編輯: darkstorm 來自: 61.223.165.40 (10/31 02:56)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章