Raspberry Pi Picoによるモーターの回転速度調節

Raspberry Pi

はじめに

今回は、Picoを用いて、DCモーターの回転速度を調整する方法について説明します。

DCモーターの回転・静止

ここでは、DCモーターを回転させたり、止めたりという基本的な動作を実現します。まず、回路図は以下の通りです。

もっと単純な回路も考えられますが、モーターのノイズ対策、逆起電力対策の部品も使っています。実際の配線図は以下の写真のようになります。

プログラムは以下のようになります。

プログラムの動作は以下の通りです。
1,2行目:必要なライブラリのインポート
3行目:モーターをつないだピンの番号
4行目:M_PIN(18番ピン)を出力モードに
8行目:以下の処理を繰り返す
9行目:mot(18番ピン)にHIGHを出力、モーターが回転する
10行目:画面に文字列”HIGH”を表示する
11行目:5秒間、待機する
13行目:motにLOWを出力、モーターが静止する(正確にはモーターは慣性で回っている)
14行目:画面に文字列”LOW”を表示する
15行目:5秒間、待機する

動作は、以下のようになります。

PWMによる制御

ここでは、PWMによってモーターの回転速度を変えるようにします。プログラムは以下の通りです(ちなみに回路はそのままです)。

1,2行目:必要なライブラリをインポートする
4行目:モータに接続しているピン番号
5行目:モーターの速度(0-100)
7行目:PWMの周波数
9行目:18番ピンをGPIOピンとして設定し、PWM信号を出せるように設定する
10行目:PWMの周波数を50Hzに設定
11行目:スピードの範囲を0~100に設定し、それを0~65535にスケール変換をする
12行目:duty比をpwm_outの値に設定する

まとめ

Picoを使ってDCモーターの簡単な制御を行った。動画を見てもらうとわかるように、モーターへの制御信号をカットしても、モーターは回転を続け、止まりきる前に、次の制御信号がやってくる。モーターのブレーキが必要だ。PWM制御はうまく動作した。プログラム中のSPEEDの値をいろいろと変えてみると、ちゃんとモーターの回転速度が変わってくれた。

ところで、FETは何でもいいというわけではない。モータードライバ用の大電流が流せるものを選んでください。

コメント

タイトルとURLをコピーしました