28BYJ-48 5V DC 步進電機
ULN2003 步進電機驅動板
電機跟驅動板的連接, 不會有難度吧, 直接把 5-pin 頭插到驅動板上就可以了.
28BYJ-48 連接 ULN2003
基本資料:
電壓: | 5V |
相關資料下載:
28BYJ-48 (簡體)
ULN2003
接線方法:
UNO | ULN2003 |
---|---|
D8 | IN1 |
D9 | IN2 |
D10 | IN3 |
D11 | IN4 |
5V | + |
GND | - |
雖然 28BYJ-48 只係 5V, 但係可以既話, 最好都係用番外接電源. 記得共地.
測試程式:
SM_28YBJ48_ULN2003.ino
Arduino 既 IDE, 本身已有 4 個 Stepper 既測試程式:
File->Examples->Stepper->
1. MotorKnob
2. stepper_oneRevolution
3. stepper_oneStepAtATime
4. stepper_speedControl
不過, 我試既時候, 反時針轉都係出順時針, 仲研究緊.
而網上 instructables.com 有比較詳細既介紹, 而且佢入面既 sample 係可以正反都無問題.
http://www.instructables.com/id/BYJ48-Stepper-Motor/?ALLSTEPS
呢隻係 4相步進電機, IDE example 入面只有 4 個 steps, 而 instructables 果個有 7 個 steps.
而 instructables.com 條 link 入面, 亦有講下點計數既.
不過, 就算跟佢計算, 改左 stepsPerRevolution 做 4096, 結果仲連行都唔行添.
可能真係同佢既幾個steps 有關,
可能真係同佢既幾個steps 有關,
Arduino IDE 既 example:
Steps | PIN (1-2-3-4) |
---|---|
0 | H-L-H-L |
1 | L-H-H-L |
2 | L-H-L-H |
3 | H-L-L-H |
Instructables 既 example:
Steps | PIN (1-2-3-4) |
---|---|
0 | L-L-L-H |
1 | L-L-H-H |
2 | L-L-H-L |
3 | L-H-H-L |
4 | L-H-L-L |
5 | H-H-L-L |
6 | H-L-L-L |
7 | H-L-L-H |
而我個測試程式, 就係基於 instructables 上面既例子, 作左少少改動.
主要係可以設定 轉一個圈既時間, 程式會自己轉番每一格既時間.
而結果會顯示設定既時間, 同實際執行時量度出既時間, 有少少出入.
由於有一定既 overhead, 一般量度出既時間, 會比預設既多左 0.02s 左右.
所以設定為 6 秒時, 執行結果每 round 大約係 6.02 秒.
有一點要提提, 大家可能發覺, 每個 step 順住或者反方向行, 同之前既 step 實際變化只有一個, 如果計埋反方向都係得兩個變化, 咁每次輸出兩個就夠了.
我嘗試過咁樣改, 每次只係出兩條 pin, 初時行無問題, 但試過行行下中途停下再開, 有機會進入左一個唔知點解再行唔到既狀態. 呢樣野可能要再研究下, 但如果每次都出哂四條 pin 既變化, 就肯定無問題.
沒有留言:
張貼留言