1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【解決しました!】Raspberry Pi Pico W + モータードライバーを使って回路を組みましたがモーターが回りません...

Last updated at Posted at 2024-07-20

はじめに

Rasberry pi pico w を利用してプラレールをラジコン化している記事を見かけて自分もやってみたい!と思い各種部品を購入しました。ブレッドボード上で回路を組んでみたのですがモーターが全く動きません... :sob:

困っていること

モーターが回らない原因は何でしょうか...? もし確認すべき点などありましたら教えていただけると助かります :bow:

部品

回路図

image.png

プログラム

Raspberry Pi Pico WをPC(Mac)に接続し、Thonny経由でプログラムを保存します。

from machine import Pin, PWM

STBY = machine.Pin(13, machine.Pin.OUT)
AIN1 = machine.Pin(14, machine.Pin.OUT)
AIN2 = machine.Pin(15, machine.Pin.OUT)
PWMA = machine.PWM(machine.Pin(16))
LED = machine.Pin('LED', machine.Pin.OUT)

LED.on() # プログラムが動いているのを確認するため
STBY.on()
AIN1.on()
AIN2.off()
PWMA.duty_u16(1000)

試したこと

  • Raspberry Pi Pico Wに電源は供給されているのか

    • LED点灯の実装をいれることで確認できるようにしました = 電源は供給されていました
  • 電池ボックスとモーターを直接つなぐ

    • モーターは動く = モーターは壊れていない

:new: 原因が分かりました!

結論

PWMで周波数の設定が漏れていました。以下の実装のように PWMA.freq(1000)で周波数の設定をすることで、モーターが回るようになりました! :tada:

from machine import Pin, PWM

STBY = machine.Pin(13, machine.Pin.OUT)
AIN1 = machine.Pin(14, machine.Pin.OUT)
AIN2 = machine.Pin(15, machine.Pin.OUT)
PWMA = machine.PWM(machine.Pin(16))
PWMA.freq(1000) #  周波数の設定1kHz
LED = machine.Pin('LED', machine.Pin.OUT)

LED.on() # プログラムが動いているのを確認するため
STBY.on()
AIN1.on()
AIN2.off()

# デューティー比 = 100%(高速), 25%(低速)
# PWMA.duty_u16(65535) # Duty 100%
PWMA.duty_u16(49152) # Duty 75%
# PWMA.duty_u16(32768) # Duty 50%
# PWMA.duty_u16(16384) # Duty 25%

原因究明の過程でお助け相談のツイートをしましたが、3名の方から助言のコメントを頂きました。ありがとうございました!

1
0
6

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?