Grove - I2C モータードライバ V1.2
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Grove I2C モータードライバは、使いやすいインターフェースを備えた Grove シリーズの新しい追加製品です。その中心には、デュアルチャネル H ブリッジドライバチップ(L298N)があり、各チャネルで最大 2A の電流を処理できます。これは Atmel ATmega8L によって制御され、例えば Arduino との I2C 通信を処理します。両方のモーターを同時に異なる速度と方向で駆動することができます。2つのブラシ付き DC モーターまたは1つの4線式2相ステッピングモーターを駆動できます。モーターを駆動するには 6V から 15V の電源が必要で、オンボードの 5V 電圧レギュレータが I2C バスと Arduino に電力を供給できます(ジャンパーで選択可能)。すべてのドライバラインは逆起電力からダイオードで保護されています。
簡単なソフトウェアインターフェースだけでなく、Grove I2C モータードライバはすぐに使用を開始できるように設計されています。電源用の LED と、各モーターが動作しているか、どの方向に動作しているかを示す4つの LED を備えています。スクリュー端子はモーターと電源の接続を容易にし、Grove システムプラグと I2C インターフェースにより、他の多くのデバイスとデイジーチェーン接続が可能です。
バージョントラッカー
リビジョン | 説明 | リリース日 |
---|---|---|
v1.0 | 初回公開リリース | 2012年5月17日 |
v1.2 | ハードウェアで I2C アドレスを設定 | 2012年7月2日 |
特徴
Grove 互換
I2C インターフェース
モーターの速度と方向を制御可能
チャネル数: 2
ハードウェアで変更可能なスレーブアドレス
仕様
項目 | 最小 | 標準 | 最大 | 単位 |
---|---|---|---|---|
動作電圧 | 6 | - | 15 | VDC |
チャネルごとの最大出力電流 | 0.5 | A | ||
最大合計電流 | 1.0 | A | ||
I2C バスの入出力電圧 | 5 | V | ||
通信プロトコル | I2C | / |
インターフェース機能
78M05 IC: 5V 電圧レギュレータ
L298 IC: デュアルフルブリッジドライバ
Atmega8 IC: モーター回転を制御
注意: スクリュー端子の入力電圧は 5V に調整され、ジャンパー(J4)を介して I2C +5V に接続されます。スクリュー端子を介した外部電源と I2C ヘッダーを介した電源の両方を使用する場合はジャンパーを取り外してください。I2C バスに 5V を供給する場合はジャンパーを使用してください。
アプリケーションアイデア
このモータードライバは、5Vで2Aを超えない消費電力のブラシ付き電子モーターを駆動するために使用できます。2つのモーターを同時に駆動でき、それぞれ異なる速度と方向に設定できます。速度は完全に比例制御可能で、ボード上のATmega8によってPWMを使用して制御されます。速度はArduinoまたはSeeeduinoから送信されるI2Cコマンドで設定されます。
このモータードライバは、ロボット、自作のRCカー、ケースファン、高出力LED照明、または比例負荷制御を含むその他のプロジェクトに最適です。
注意事項
1Aを超える電流で動作中は、ボードが非常に熱くなります。手で触れないようにしてください!
Arduino IDE(バージョン1.0以上)がサポートされています。
使用方法
I2Cモータードライバは、L298チップをベースにしたモーターを制御できます。L298は単なるデュアルモータードライバではなく、デュアルHブリッジです。Hブリッジは、電流の方向を切り替えるための特定のトランジスタ構成です。モーターに接続すると、両方向に回転させることができ、PWM入力を使用してArduinoで任意の速度で回転させることができます。L298には2つのHブリッジがあるため、ロボットを前後に移動させるだけでなく、各車輪を異なる方向に回転させて回転させることもできます。
次に、I2Cモータードライバを使用して、2つのDCモーターまたはステッパーモーターを正方向または逆方向に回転させる方法を説明します。
I2Cモータードライバのアドレスを設定する
- 新しいI2Cモータードライバに追加された新機能として、ダイヤルスイッチでアドレスを設定します。
- 次に、プログラム内のアドレス設定をI2Cモータードライバ上のアドレス設定と同じに保ちます。プログラム内のデフォルトのアドレス設定は0x0fです。
#define I2CMotorDriverAdd 0x0f // I2CMotorDriverのアドレスを設定
2つのDCモーターを駆動する方法
- 最初に注意すべき点は、DCモーター用に外部電源が必要であることです。Arduinoの5Vピンでは2つのモーターを駆動するのに十分な電力を供給できず、Arduinoが損傷する可能性があります。
次に、以下のようにArduinoをプログラムします:
#include <Wire.h>
.......
.......
< ドライバ関数 >
.......
.......
void setup() {
Wire.begin(); // I2Cバスに参加(マスターの場合はアドレスはオプション)
delayMicroseconds(10000); // モータードライバの初期化を待つ
}
void loop() {
while(1) {
MotorSpeedSetAB(100,20);
delay(10); // この遅延が必要
MotorDirectionSet(0b1010); //0b1010 正方向に回転
delay(1000);
MotorDirectionSet(0b0101); //0b0101 逆方向に回転
delay(500);
}
}
このプログラムでは、Arduinoが最初にMotorSpeedSetAB()コマンドを使用して2つのDCモーターの速度を設定し、その後MotorDirectionSet()コマンドを使用してDCモーターの動作方向を設定します。詳細については、Grove-I2C_Motor_Driver_V1.2#Function_Referenceを参照してください。すべてのデモコードはGrove-I2C_Motor_Driver_V1.2#Resourcesからダウンロードできます。
4線式ステッパーを駆動する方法
I2Cモータードライバは、4線式ステッパーを駆動するためにも使用できます。ステッパーをI2Cモータードライバの出力ピンに接続し、I2Cバスを使用してモータードライバをArduino/Seeeduinoに接続します。以下のようにArduinoをプログラムします:
#include <Wire.h>
.......
.......
< ドライバ関数 >
.......
.......
void setup() {
Wire.begin(); // I2Cバスに参加(マスターの場合はアドレスはオプション)
delayMicroseconds(10000); // モータードライバの初期化を待つ
}
void loop() {
while(1) {
MotorSpeedSetAB(100,100);// ステッパーを駆動する場合、速度は100に設定する必要があります
delay(10);
MotorDirectionSet(0b0001);
delay(4);
MotorDirectionSet(0b0011);
delay(4);
MotorDirectionSet(0b0010);
delay(4);
MotorDirectionSet(0b0110);
delay(4);
MotorDirectionSet(0b0100);
delay(4);
MotorDirectionSet(0b1100);
delay(4);
MotorDirectionSet(0b1000);
delay(4);
MotorDirectionSet(0b1001);
delay(4);
}
}
この接続された4線式ステッパーは回転します。Arduinoプログラム内で回転速度やステップ数を調整できます。また、他のステッパーライブラリを使用して制御することもできます。すべてのデモコードはResourceからダウンロードできます。
関数リファレンス
1. void MotorSpeedSetAB(unsigned char MotorSpeedA , unsigned char MotorSpeedB)
説明: モーター1とモーター2の速度を設定します
MotorSpeedA: DCモーターAの速度、0~100の範囲で指定する必要があります。
MotorSpeedB: DCモーターBの速度、0~100の範囲で指定する必要があります。
使用例:
Serial.println("DC速度100を送信しました");
MotorSpeedSetAB(100,100);//モーター1とモーター2の速度を設定します。
delay(10); //この遅延が必要です
2. void MotorPWMFrequenceSet(unsigned char Frequence)
説明: PWMのプリスケール周波数を設定します。デフォルトは0x03です。
Frequence: PWMのプリスケール周波数。
3. void MotorDirectionSet(unsigned char Direction)
説明: モーターの回転方向を調整します。
Direction: 前進/逆回転を指定できます。
使用例:
MotorDirectionSet(0b1010); //"0b1010"は出力の極性を定義します。"10"はM+が"正"で、M-が"負"であることを意味します。
// DCモーターを駆動する際は、M+とM-が異なる極性であることを確認してください。
delay(1000);
MotorDirectionSet(0b0101); //0b0101 逆方向に回転します
delay(500);
4. void MotorDriectionAndSpeedSet(unsigned char Direction,unsigned char MotorSpeedA,unsigned char MotorSpeedB)
説明: モーターの方向と速度を同時に調整します。
回路図オンラインビューア
リソース
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験をスムーズにするために、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。