以前、arduinoでDCモータを回そうとして
上手くいかなかった件。
http://brown.ap.teacup.com/nekosan0/507.html
なんとなく引っかかっていてキチンとやり直しを
したいと思ってたんだけど、いざやり直したら
サクッと上手くいってしまいました。
例によってarduinoボードには
reduino-nanoを使用し、DCモータ
ブリッヂドライバには秋月で買っておいたTA7267BP
を使用。260モータを正逆両方に回転させる
んだけど、アナログ出力を使ってゆっくり回転
~高速回転という制御。こんな感じ。
![](https://blogimg.goo.ne.jp/user_image/39/97/9e90fddaffd15dda88dd3174248e32de.jpg)
可変抵抗で作った電圧をアナログ入力して、それを
アナログ出力でTA7267BPへ。
写真に写っているLEDや抵抗は、スケッチの動作
確認用に使った物で、モーター動作には関係が
ありません。
なお、USBからの給電ではパワー不足でモーターは
回せないので、LEDでスケッチの動作確認が出来た
以降はUSBケーブルを外してスタンドアローンで
動かします。左の配線は5Vスイッチングアダプターに。
可変抵抗を弄ってみると、上手い具合にモーターが
正逆回転し、速度も思いのまま。GOOD。
回路とかスケッチは近々サイト上に纏めておきます。
以前実験して上手く行かなかった原因の一つは、
3.3Vでやってたことみたい。
TA7267BPは電源端子が2つあって、
一つはモーターへのパワー供給。もう一つは
制御回路用への供給。で、この後者はデータ
シートによると6V以上必要みたいなので、
3.3Vはアウトって事みたい。
というか、今回も5Vで動かしてるから
本当はアウトなんだけど、まぁこのくらい
ならなんとか動作可能ってことなようです。
気になる場合は、電源に6Vを用いつつ、
arduinoとTA7267BPの間に
トランジスタのオープンコレクタ出力を
噛まして電圧変換するといいと思います。
ちなみにTA7267BPは元々PWMを
前提にしていないみたいで、あまり高い周波数
には対応していないみたい。色々検索してみた
結果、せいぜい1kHz以下で使うのが一般的
っぽいです。
arduinoのアナログ出力は約490Hz
で発振してるんだけど、この手のデバイスでも
トラブらないように低めの周波数になってる
んだろうな。LEDとかモーターとかを簡単に
制御できるっていうのはarduinoにとって
重要だろうから…
そういう配慮とか考えると、arduinoって
よく出来てるよな。スバラシイ。
![](/images/clear.gif)
![](/images/clear.gif)
![](/images/clear.gif)
|