So-net無料ブログ作成

Arduino Nano とモータードライバでDCモーターを正転・逆転してみた(1) [Arduino]

Arduino Nano とモータードライバ(DRV8830)を使ってDCモーターの制御にチャレンジしてみました。
DRV8830は、I2Cで動作するモータードライバです。下記にデータシートがあります。


シリアル・インターフェース内蔵、低電圧モーター・ドライバ
http://www.tij.co.jp/jp/lit/ds/symlink/drv8830.pdf


Arduino Nano のI2Cの端子は、SCL (A5pin)、SDA (A4pin) になります。ピン配置をネットから拝借してきました。(Arduno Nano のシルクは小さくて見にくいのでこの表にいつもお世話になってます ^^;)

nano_pins.png
http://arduino.alhin.de/index.php?n=13


DRV8830は、下記のように接続しました。

arduino nano with drv8830-3.JPG

1 DRV8830 pin assignment.png

A0, A1 はデバイスのアドレスを決定するためのピンです。今回は両方ともGNDに接続しています。

2 DRV8830 address setting.png

この表から、 書き込みアドレス:0xC0、読み込みアドレス:0xC1 になります。Arduono から指定するデバイスアドレスは右に1ビットシフトした値になるので、「0x60」になります。


ISENSEに関しては、詳しい説明は省きますが、データシートに下記の記述がありますのでとりあえずGNDに接続しています。

3 ISENSE.png


I2Cのレジスタマップは、0x00:コントロール0x01:障害状態の読込み となっています。

4 DRV8830 i2c register map.png

今回は動作テストがメインですので「障害状態の読込み」は行いません。参考までにI2Cの書き込みシーケンスを示します。

5 DRV8830 i2c writting protocol.png

レジスタ0 (0x00:コントロール) は下記のような構成となっています。

6 DRV8830 register 0.png

VSET[0..5]はモーターに印加する電圧を設定します。データシートにまとまった表があります。

7 DRV8830 VSET0-5 setting.png

IN1、IN2はモーターの回転方向を制御します。

9 DRV8830 bridge control.png


さて、これでArduino Nano でモーター制御するための予備知識は揃いました。Arduino Nano とモータードライバ、DCモータを下記のように組んでみました。

arduino nano with drv8830-1.JPG

位置関係が分かりやすくなるように、斜めからも撮影しました。

arduino nano with drv8830-2.JPG


スケッチを下記のようにプログラムしてみました。

sketch.png

動かしてみます。



あれ?期待したような動きになっていません。1秒間動き続けてほしいのですが一瞬で止まってしまいます。

ひょっとしたらと思いスケッチをプログラムし直してみました。

sketch-b1.png

delay を 10msec にしたのは、データシートで下記の記述を見つけたためです。検証が必要ですが、とりあえずの仮に設定しました。

reason of 10msec.png

さて、動作を見てみましょう。



無事、動いたようです。分かりにくいですが、きちんと正転・逆転をしています。

もし、I2Cのレジスタを設定し続けなければいけないとするとかなりやっかいです。まだ使いこなせていないようなので、もう少し調べてみたいと思います。

今回は、DRV8830の説明をしてしまったので、ものすごく長くなってしまいました。最後まで読んでいただいた方ありがとうございますー。 「Arduino Nano とモータードライバでDCモーターを正転・逆転してみた(2)」に続きます。
(^_^)/~


関連記事
Arduino Nano とモータードライバでDCモーターを正転・逆転してみた(2)
http://makers-with-myson.blog.so-net.ne.jp/2014-05-19

Arduino でモータを動かす
http://makers-with-myson.blog.so-net.ne.jp/2013-11-11

Arduino Nano でサーボモータを動かしてみた
http://makers-with-myson.blog.so-net.ne.jp/2014-04-24






サインスマート(SainSmart) Nano 3.0 互換ボード for Arduino

サインスマート(SainSmart) Nano 3.0 互換ボード for Arduino

  • 出版社/メーカー: サインスマート(SainSmart)
  • メディア: Personal Computers



サインスマート(SainSmart)Nano I/O 拡張シールド for Arduino

サインスマート(SainSmart)Nano I/O 拡張シールド for Arduino

  • 出版社/メーカー: サインスマート(SainSmart)
  • メディア: おもちゃ&ホビー







nice!(29)  コメント(3)  トラックバック(0) 

nice! 29

コメント 3

まいく

Nano3.0互換ボードを買ってしまいましたが、まだ何も出来ません。
とりあえずファンコントロール用に温度センサーを買う予定です。
by まいく (2014-05-16 21:51) 

ys_oota

まいくさん、コメントありがとうございます。
Arduino Nano は小さいのがいいですよね。簡単に組めてしまうので、ぜひ活用ください。でも、温度センサーの選択はけっこう難しそうですね。。
by ys_oota (2014-05-17 01:07) 

homemadegarbage

はじめまして
こちらのスケッチを参考にさせていただき
モータを使って電子工作しました!
ありがとうございました。
by homemadegarbage (2016-05-18 20:42) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0