最近の電子工作の入門書ではRaspberryPiとDCモータドライブ「TA7291P」でDCモーターを動かすことが多かったのですが、DCモータドライブ「TA7291P」は生産終了してしまうという情報がありましたので、今回は他の方法でDCモーターを動かすことにしました。

調べて見つけたのが『DRV8835使用DCモータードライブキット』です。今回はこちらを使ってDCモーターを動かしてみたいと思います。

DRV8835使用DCモータードライブキットについて

秋月のサイトから抜粋すると以下のような特徴があります。

・モータ電源VMとロジック電源VCCが分離されています:モータ電源2~11V(VM)ロジック電源2V~7V(VCC)
・モード設定により2種類の信号付与方式が選択できます。(IN/IN・PHASE/ENABLE)
・Hブリッジ2回路を基板上で並列接続してあるので、1個のDCモータを最大3Aで駆動できます。

つまり、ロジック電源はRaspberryPiのピンから出力される3.3Vでも動かせますし、モーターも「RS-380PH-4045」ぐらいまでなら動かせそうです。

詳細については「DRV8835使用DCモータードライブキット」の取扱説明書をご参照ください。

必要なもの

今回は以下のものを用意しました。DCモータードライブキットは検索すると他にもありましたが、今回はこちらが用途的によさそうだったので購入しました。

・DRV8835使用DCモータードライブキット

・DCモーター(RS-385PH-4045)

・ACアダプタ(DC6V 1.8A)[もしくは単三乾電池4本]

・DCジャック(ACアダプタと配線を接続する用)

・RaspberryPi3B+

・+ドライバ

・はんだごて

・ハンダ

・ピンヘッダ

部品の半田付け

DRV8835使用DCモータードライブキットの中身には以下の部品が入っています。ピンは細ピンが入っていますが、ジャンパーワイヤを差すとスカスカ状態になっていますので太いサイズのピンヘッダを用意しておきます。

半田付け完了後の写真を参考にして半田付けを行っていきます。

半田付け完了後はこのようになります。一つ余った黒い部品はモードを選択するようのものです。「MODE」と「GND」をつなぐとブレーキがかからないようになり、「MODE」と「VCC」をつなぐとブレーキがかかるようになります。今回はブレーキをかけたくないので「MODE」と「GND」を黒いパーツで接続しています。

pigpioのインストール

今回はpigpioというライブラリを使用しています。なのでpigpioをインストールしておきます。

デーモンの立ち上げ

pigpioを使う前にはデーモンを立ち上げておく必要があるみたいです。よって、以下も実行しておきます。

Pythonのプログラム

RaspberryPiのほうにはPythonでプログラムを用意しました。

今回は正転と逆転をするようにしています。中身について少し説明すると、pi.set_modeでピンを出力に設定しています。

RaspberryPiのピンはGPIO24とGPIO25を使用します。

pi.set_PWM_frequencyでPWMの周波数を指定しています。今回は100にしています。

pi.set_PWM_rangeでPWMの最大値を設定しています。こちらも100に設定しています。まず、最初のループでDuty比が徐々に上がっていき、それに伴いモーターの回転数も上がっていきます。Duty比が100を超えると今度は下がっていきます。0以下になったらbreakで抜けて次の処理へ移ります。

sleep(3.0)で3秒間時間を空けてから今度は逆回転を行います。逆回転のときも処理は上記と同じようになります。 逆回転の処理をbreakで抜けるとモーターは止まります。

配線する

配線はこのようになります。

VCC → RaspberryPiの5V( 赤 )

GND → RaspberryPiのGND( 黒 )

IN1 → RaspberryPiのGPIO24( グレー )

IN2 → RaspberryPiのGPIO25( 白 )

電源ターミナル側

VM → ACアダプタの+側へ( 赤 )

GND → ACアダプタの – 側へ( 黒 )

OUT1 → モーターへ( 紫 )

OUT2 → モーターへ( 緑 )

実行してみる

動かしてみたときの様子がこちらです。

いい感じに動かせました。あとはこれをもう一セット用意すればクローラロボットなども作れそうです。