DCモーターは電子工作の手軽な動力源の一つです。

通販で安価な2チャンネルのDCモータードライバMX1508モジュールがあったので,これも安価に手に入るギアードモーターを動かしてみました。

ライブラリがコンパイルでエラーが出るなど少々ハマりましたが,PWM(Pulse Wave Modulation)での速度変化も含め,なんとか動きましたのでメモしておきます。


Seeeduino-XIAOMX1508ギアードモーターをつないだところです。




[MX1508の概要]
 Githubに概要やDatasheet(中国語)のリンクなどがあります。以下は一部転載とGithubからの情報をもとに私が自己流に日本語訳したものを含みますので要注意です(^^;;;;
https://github.com/Saeterncj/MX1508

マイコン側の信号入力2本でモーター1個を動かすので,2個のモーターをコントロールできます。

今回はモーター電源を5Vにしました。無負荷なら100mAぐらいで動いています。



• 動作電圧: DC 2-10V
• 信号入力電圧: DC 1.8-7V
• 単一動作電流: 1.5A
• ピーク電流: 2.5A

・真理値表


正転,反転といっても,これは現物合わせで考える事ですね(^^)。



[テストプログラム]

1.デジタル信号での正転・反転
 digitalWrite(Pin, HIGH/LOW)でシンプルに最高速で動きます。

Seeeduino-XIAOのPin0はDACになるのでパルス用途で使うのはもったいない気がして,Pin1,2にしています(^^;;;;。






2.PWM信号でのスピードを変化させた正転・反転
 2本の信号線ともにPWMで使っています。



片方をdigitalWrite()にもできますが,,逆転を考えると頭が混乱するし,途中での逆転がどうにもうまく動いてくれませんでした。

2本の信号線ともにPWM出力で使っているのに,正転・反転ともにどちらかを0にするというもったいない感じですが,,,この設定が一番安定した動作をしてくれています。


★ ライブラリでコンパイルエラーが出る
 私の動作環境のせいかもしれませんが,ライブラリ(MX1508)を試してみると下記のエラーが出ます。
invalid conversion from 'int' to 'NumOfPwmPins' [-fpermissive]

よく分からないし,ライブラリとか環境とかに何か手を加えるのも腕がないので,まずはあきらめておきます(^^;;;。

そもそも,ライブラリを使わなくてもシンプルに動かせるので,私でも何とかなりますね。



ラジコンサーボやステッピングモーターが信号としてはマイコンと相性が良いのでしょうが,模型用のDCモーターも手軽に使えると便利ですね。

今回使ってみたMX1508モジュールは国内でも現在1個100円から130円ぐらいで手に入るので,素人オヤジは助かります(^^)。