nihsokのアイコン画像
nihsok 2026年08月15日作成 (2026年08月23日更新) © MIT
セットアップや使用方法 セットアップや使用方法 閲覧数 32
nihsok 2026年08月15日作成 (2026年08月23日更新) © MIT セットアップや使用方法 セットアップや使用方法 閲覧数 32

ユニポーラモーターの励磁モード比較

ユニポーラモーターの励磁モード比較

ユニポーラステッピングモーターの励磁モードによる特性の違いを比較する。

用いたもの

  • ステッピングモーター 28BYJ-48 5V
  • モータードライバ ULN2003(の搭載されているボード)
  • コントローラーとして ESP32
  • 電源ボード HW-131(なんでもよい)

ステッピングモーターとモータードライバはAmazonで4個セット805円、電源ボードは2個セット599円。

配線

モーターから5本まとめて出ている線はそのままモータードライバボードへつなぐ。

適当な電源ボードから電源を供給
ESP32 devkit の VIN (5V)からだと、LEDは光るがモーターは動かなかったので外部電源が必要。

ESP32 モーターコントローラ
GPIO13 IN1
GPIO12 IN2
GPIO14 IN3
GPIO27 IN4

実行

https://burariweb.info/electronic-work/arduino-learning/arduino-stepping-motor-control.html
を参考に、1相励磁、2相励磁、1-2相励磁を試す。

プログラムを横着した都合で逆回転になっている。

1相励磁

from machine import Pin import utime pins = (Pin(13,Pin.OUT,value=0), Pin(12,Pin.OUT,value=0), Pin(14,Pin.OUT,value=0), Pin(27,Pin.OUT,value=0)) wait = 100 #ms def phase_1(step): code = [False,False,False,True,False,False,False] for _ in range(step): for t in range(4): for i in range(4): if code[i+t]: pins[i].on() else: pins[i].off() utime.sleep_ms(wait) phase_1(1000)

1相(クリックでGIF再生)

2相励磁

from machine import Pin import utime pins = (Pin(13,Pin.OUT,value=0), Pin(12,Pin.OUT,value=0), Pin(14,Pin.OUT,value=0), Pin(27,Pin.OUT,value=0)) wait = 100 #ms def phase_2(step): code = [True,False,False,True,True,False,False] for _ in range(step): for t in range(4): for i in range(4): if code[i+t]: pins[i].on() else: pins[i].off() utime.sleep_ms(wait) phase_2(1000)

2相(クリックでGIF再生)

1-2相励磁

from machine import Pin import utime pins = (Pin(13,Pin.OUT,value=0), Pin(12,Pin.OUT,value=0), Pin(14,Pin.OUT,value=0), Pin(27,Pin.OUT,value=0)) wait = 100 #ms def phase_12(step): code1 = [False,False,False,True,False,False,False] code2 = [True,False,False,True,True,False,False] for _ in range(step): for t in range(4): for i in range(4): if code2[i+t]: pins[i].on() else: pins[i].off() utime.sleep_ms(wait) for i in range(4): if code1[i+t]: pins[i].on() else: pins[i].off() utime.sleep_ms(wait) phase_12(1000)

1-2相(クリックでGIF再生)
2回sleepを入れているので回転は遅くなっている。

感想

LEDで確認できるのはwait=50msくらいまで、それより短くするとLEDはほぼつけっぱなしになるが速度は上がる。
1相励磁、2相励磁はwait=2msまではOK、wait=1msだと動かず。1-2相励磁はwait=1msでも動いた(2 stepかかっているので角速度は同じ)
wait=2msくらいのときはモーターから出る音も気になる。

nihsokのアイコン画像
ソフトウェアがメインの電子工作が好みです。
ログインしてコメントを投稿する