🤖
ステッピングモーターの使い方
特徴
- サーボと違って何周もできる
- 正確な角度で止まれる
用途
- 家電
- 自動販売機
- 改札
- ATM
- 生産ライン
- ロボット
- パチスロ機
部品
出力軸1回転のステップ数:2048(2相励磁)
この値を覚えておく。
名称と役割
名称 | どこ? | 何をする? |
---|---|---|
28BYJ-48 | モーターの部分 | 任意の方向に回転する |
ULN2003 | ICの部分 | モーターの制御を簡単にする |
最初は上のICが基板になっていてモーターを繋げやすくなっているタイプを買った方がよさそう。個別に購入することもできるけどICの使い方を理解していない自分にはハードルが高い。
配線
モジュール側 | Arduino Uno 側 | 別のところから |
---|---|---|
IN1 | D11 | |
IN2 | D10 | |
IN3 | D9 | |
IN4 | D8 | |
電源(+) | 5 V | |
電源(-) | GND |
Arduino の基板から電気を供給すると Arduino がぶっこわれるらしい(未検証)。
ライブラリ
Arduino IDE に最初から入っている。
コード
#include <Stepper.h>
Stepper sm(2048, 8, 10, 9, 11);
void setup() {
sm.setSpeed(17);
}
void loop() {
sm.step((float)2048 * +90 / 360);
sm.step((float)2048 * -45 / 360);
delay(1000 * 0.2);
}
90度進んで45度下がるを繰り返す。一周が2048なので90度回転するには 2048 * 90 / 360
とする。マイナスなら反対に進む。ライブラリのおかげでとても簡単だった。
2048 の値はどこから来た?
出力軸1回転のステップ数:2048(2相励磁)
28BYJ-48 の仕様より。
回転スピードについて
setSpeed で調整できる。ELEGOO のマニュアルには 0〜17 と書いてあった。18にしても動いたがたまに空転してしまう。それより大きくすると空転が頻発した。逆に0でも動かなかった。Arduino のサンプルには 30 とあったがそれだと 28BYJ-48 は動かない。ステッピングモーターの種類ごとに適正値が異なるようだ。
動作原理
さっぱりわからないがたしかにArduinoとは4つの線で繋がっている。
Discussion