Arduino UNO+ Grove I2CモータードライバモジュールでDCモータ回す
前回はArduinoUNOでステッピングモータを動かしたが、今回は秋月電子で販売していたGrove I2CモータードライバモジュールでDCモータを回してみる。
Grove I2Cモータードライバモジュールの詳細な説明は下のWikiに書いてある。 Grove - I2C Motor Driver (L298P) - Seeed Wiki
簡単に説明するとL298Pというモータドライバをマイコンで制御しているボードで、L298PにはHブリッジが2つあるのでDCモータの場合は2つ、ステッピングモータを1つのいずれかを回せる。つまり、ステッピングモータを1つ回してるときはDCモータを回すことが出来ないので注意が必要。
このドライバの良いところは前述の通り、ボード上にマイコンが載っているのでArduinoなどの上位のコントローラがPWMを発生させたりする手間が少ないことと、I2C通信でコントロールできてレベル変換回路も搭載されているので色々な手間がなく使うことが出来る。
一方で、電流は連続2Aまでしか流せないので注意が必要。また内部のHブリッジトランジスタの動作が遅いのでPWM周波数を高い設定にして電流を流していくと発熱に注意する必要がある。
ライブラリのインクルード
Grove I2CモータードライバモジュールにはArduino用のライブラリが用意されている。そのライブラリのインクルード方法を下に画像らで示す。
まず、下のGithubのURLからライブラリのZIPファイルをダウンロードする。
配線
Grove I2CモータードライバモジュールとArduinoの配線は簡単で、VCC,GND,SCL、SDAの端子をモータドライバモジュールの白いコネクタにつなげるだけ。
スケッチ
サンプルプログラムを参考に下のスケッチを書いた。ほとんどサンプルプログラムと一緒だが、PWM周波数を設定する関数を備忘録として追加したある。PWM周期の設定は4種類しかないので注意が必要。
動作させた動画
モータをMotor1に接続して動作させた様子を下に示す
8周遅れのArduinoでモータ回す(ArduinoUNO+Grove I2C MotorDriver)