暇つぶしのエントロピー

暇つぶしに何して遊んだか記録していく。少し続いたと思ってたら更新飽きた!最近は工作ブログになりつつある。

Raspberry PI でステッピングモーターを回す。

  • 12月
  • 19

11:58 pm Python, Raspberry Pi, お買い物, コンピュータ

モーターとモータードライバーは eBay で調達しました。1セット 358 円。

モーターは 4相 DC 5V の 28YBJ-48 で1ステップ 5.625 (=360/64) 度がさらに 1/64 に分周されているらしい。

ドライバーは ULN2003。ドライバーといっても ULN2003 は単なるトランジスタアレイなので「1度右に!」とかじゃなくて、正しい順番にコイルを励磁してあげる必要があるらしい。

こちらを参考に ブレッドボード使って
SnapCrab_lasermoterCE3_20160104184723pdf - Google Chrome_2016-1-4_18-55-30_No-00
こんな感じで繋ぐ….
IMG_0699

ステッピングモーターはあまり早く動かすと脱調するらしい。ここの PDF によると 28YBJ-48 は 100Hz らしい。(ん~、64*64=4,096 だから 1周最速40秒かかるのか。)

Python でプログラムを書くことにする。

高いトルクが得られる2-2相励磁にで…

とりあえず回転することを確認したいので適当なコードで…
[python]
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)

GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.LOW)

for i in range(0,360):

GPIO.output(17, GPIO.HIGH)
GPIO.output(18, GPIO.HIGH)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.LOW)

time.sleep(0.02)

GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.HIGH)
GPIO.output(27, GPIO.HIGH)
GPIO.output(22, GPIO.LOW)

time.sleep(0.02)

GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.HIGH)
GPIO.output(22, GPIO.HIGH)

time.sleep(0.02)

GPIO.output(17, GPIO.HIGH)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.HIGH)

time.sleep(0.02)

GPIO.cleanup()
[/python]
回った!

クラス、適当に設計していきます。


© 2007 暇つぶしのエントロピー. Blog theme by blogstheme.com, debt consolidation.