0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry Pi Picoでモータを動かす①(ユニポーラ1相励磁)

Last updated at Posted at 2021-05-01

しばらく手に入らなかったRaspberry Pi PicoがGW前に手に入ったため、ステイホーム的に遊んでみる。
C/C++とMicroPythonのライブラリがあるが、基本MicroPythonで行くことにする。
何故?C/C++は飽きた…。

環境構築

まずはステッピングモータを回すということでモータを入手。
Ren He 5V ステッピングモータ+ 28BYJ-48 ULN2003ドライバーボード セット Arduino用 3個セット
という激安のステッピングモータ(3個セットで¥689)をAmazonで購入した。
こいつの良いところは安いところと5Vで動き、抵抗が200Ωであること。
つまり、USB電源で動く。

配線は下記とした
ULN2003接続.png

このステッピングモータはユニポーラなのでとりあえず1相励磁で動かす
1相励磁はその名のごとく1相づつ動かす
そのためとても制御が簡単
コードは以下

from machine import Pin
import utime
IN1 = Pin(2, Pin.OUT)
IN2 = Pin(3, Pin.OUT)
IN3 = Pin(4, Pin.OUT)
IN4 = Pin(5, Pin.OUT)
wait_ms = 2
while True:
    # CW
    IN1.value(1)
    IN2.value(0)
    IN3.value(0)
    IN4.value(0)
    utime.sleep_ms(wait_ms)
    IN1.value(0)
    IN2.value(1)
    IN3.value(0)
    IN4.value(0)
    utime.sleep_ms(wait_ms)
    IN1.value(0)
    IN2.value(0)
    IN3.value(1)
    IN4.value(0)
    utime.sleep_ms(wait_ms)
    IN1.value(0)
    IN2.value(0)
    IN3.value(0)
    IN4.value(1)
    utime.sleep_ms(wait_ms)

CCWにしたい場合はINx.valueの回転方向を逆にすると良い
なお、wait_ms=1にすると脱調して動かなくなる。
カタログスペックでは
無負荷周波数引き:>600Hz、無負荷周波数抜く:>1000Hz
とまぁ分かりそうで分からないことが書いてあるが、1ms=1kHzが限界に近いのは事実のようだ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?