|
本帖最后由 超級狗 于 2014-5-22 09:21 编辑
' ^5 N7 j& d9 \( s( e K& {* Q. @3 T D1 x
樓主︰
, K! O8 O7 A2 w0 f* b8 h# M! A: d& o
, c: l( j1 j# [. @' m+ G( O您講這是個步進馬達,我好像有點懂了。你看那個相勵磁順序表,應該表示這個馬達有八個步階。 b! F5 a! m+ s" W8 ~! [
3 Z! _- U9 z! i% ?; g. K- 紅線永遠接電源沒錯。
- 第一個步階把黑線接地。
- 第二個步階把黑、黃線接地。
- .……以此類推,循環控制狀態,馬達應該就能轉動了。
- 要馬達反轉就把相勵磁順序反過來就行。
- 因為不需要反轉電流,所以還是不需要全橋(Full Bridge)電路,控制一個馬達只要四個三極管就成。
( g- n. I' K5 Z- K 1 f* @# i" a: e5 P. N$ d1 M; b1 R
+ C" M, B% D* d
這種一般是用 PWM 做控制沒錯,但也不一定非要用 PWM 不可,只是用 PWM 軟件比較不用費那麼大的勁,效率會好一些、MCU 空出來的時間還能做其它事。
- `& @3 R2 o9 @, g) w! A6 ~) i( S* Q+ b# M/ y
我唯一還不懂的是,一個馬達通常只有正轉和反轉兩個方向,您需要上下左右轉,所以是不是需要兩個這樣的步進馬達?還是一個這樣的步進馬達就能做到?
7 g8 u, \/ A2 f# u+ i( y7 }( i, W2 s+ P/ y) M% K" }
9 w+ u: P; l6 }; k
GPIO 不足的問題6 N( W- u- J* Y
; o! i: z' [ b& r! e方法一︰
D3 T# ?7 T+ y8 a0 I" |有一種芯片叫 I/O Expander,可以用 I2C 或 SPI Bus 再擴充出 8 ~ 16 個 I/O。GPIO 也可以用軟件模擬成 I2C 或 SPI,唯一要注意的是軟件模擬成 I2C 或 SPI MCU 比較費工,我不知道你用甚麼樣的 MCU,也不知道你的 MCU 還剩多少效能做這件事,是不是夠快自己要評估一下。& {6 Q; c% n8 T
7 Y' J$ h+ Q2 j" Y方法二︰
& h" I8 d" g# t0 ]$ }0 \1 u因為相勵磁順序是固定的,所也你可以借助一顆 CPLD 或 FPGA 設計一個步階控制器。只要兩個 GPIO 就可以產生步階號,啟動╱停止 和 前進╱後退兩個訊號。即便是要控制兩個步進馬達,四個 GPIO 也剛好夠用。/ D5 I8 R n6 V- T
3 F5 _. l* L" u) k9 t& M5 \9 Z |
|