nihsok が 2026年08月23日11時33分51秒 に編集
コメント無し
本文の変更
ユニポーラステッピングモーターの励磁モードによる特性の違いを比較する。 # 用いたもの - ステッピングモーター 28BYJ-48 5V - モータードライバ ULN2003(の搭載されているボード) - コントローラーとして ESP32
- 電源ボード HW-131(なんでもよい)
ステッピングモーターとモータードライバはAmazonで4個セット805円
ステッピングモーターとモータードライバは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相励磁 ```python 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) ```  ## 2相励磁 ```python 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) ```  ## 1-2相励磁 ```python 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 = 2 #ms
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) ```  2回sleepを入れているので回転は遅くなっている。 # 感想 LEDで確認できるのはwait=50msくらいまで、それより短くするとLEDはほぼつけっぱなしになるが速度は上がる。
1相励磁、2相励磁はwait=2msまで、wait=1msだと動かず。1-2相励磁はwait=1msでも動いた(2段階なので角速度は同じ) wait=2msくらいになるとモーターから出る音も気になる。
1相励磁、2相励磁はwait=2msまではOK、wait=1msだと動かず。1-2相励磁はwait=1msでも動いた(2 stepかかっているので角速度は同じ) wait=2msくらいのときはモーターから出る音も気になる。