Raspberry piを使用しプログラム上でDCモータに供給する電圧を指定することは可能なのでしょうか?
7.2vのバッテリーとl298nのモータドライバーを使用しています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
回答2件
0
D/Aコンバータを接続すれば、電圧出力が可能になります。
簡易的にするのであれば、PWM出力を出して平滑化するという手もありますが
投稿2021/01/19 07:29
総合スコア88200
0
ベストアンサー
出来ます。Raspberry Pi の出力はディジタルですが、1 周期あたりのパルス幅を変えることが出来ます。これを回路によって積分してやると波形が滑らかになり、出力周波数よりより長い波長で見た場合連続につながっているように見えます。これを PWM(Pulse Width Modulation、パルス幅変調)と呼びます。これを使えばパルス幅を変えるだけで任意の電圧を得られるので任意の波形を得られることが可能です。詳しいやり方は「Raspberry Pi PWM Python」などで調べてみてください。
投稿2021/01/19 07:27
総合スコア2853
PWMの値を大きくすれば電圧も大きくなるということですか?
PWM は 0~100% の割合を決めるものだと思ってください。電圧を大きくするのはモータードライバの役目です。
電圧を大きくするようにするためのものがPWMということでしょうか?
in1 = 8
in2 = 11
en = 24
temp1 = 1
lastState = 'LOW'
GPIO.setmode(GPIO.BCM)
GPIO.setup(in1, GPIO.OUT)
GPIO.setup(in2, GPIO.OUT)
GPIO.setup(en, GPIO.OUT)
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
p = GPIO.PWM(en, 1000)
p.start(55)
この部分ですとp = GPIO.PWM(en, 1000)の部分がPWM制御の部分でしょうか?
いえ、そこはチャンネルと PWM のパルス周波数を決めているところであって start(55) でパルス幅(デューティ比と呼ぶ)を決めています。デューティ比を途中で変えるには p.ChangeDutyCycle(10) のようにすればよいです。詳しくはドキュメントに書いてあります。 https://sourceforge.net/p/raspberry-gpio-python/wiki/PWM/
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。