モーターシールド V2.0
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
このドキュメントは Motor Shield V2.0/2.1/2.2 に対応しています。
モーターシールドは、モーターの動作速度と方向をArduinoで制御できるドライバーモジュールです。デュアルフルブリッジドライブチップL298をベースにしており、2つのDCモーターまたはステップモーターを駆動することができます。モーターシールドは、Arduinoから直接電力を供給するか、端子入力を介して外部6V〜15Vの電源で動作させることができます。このモジュールは、マイクロロボットやインテリジェントビークルの開発などに使用できます。
リビジョン | 説明 | リリース |
v1.0 | 初回公開リリース | NA |
v2.0 | Arduino/Seeeduinoの+5Vピンでモーターを駆動可能に | 2013-2 |
特徴
- 標準Arduino UNOシールドピンアウト
- L298フルブリッジICをベース
- 2つのDCモーターまたは1つのステップモーターを駆動
- 外部電源入力対応
- LEDインジケーター
- パフォーマンス向上のためのヒートシンク
- Arduinoライブラリ
仕様
仕様 | 値 |
動作電圧 | 5V |
外部電源 | 6-15V |
出力電流 | 各チャンネル最大2.0A |
PWM範囲 | 0-100% |
出力 | 2チャンネル、4ポート |
ハードウェア概要
1. チャンネル1インジケーター、3つのLEDを含む
- EB - チャンネル1有効、高アクティブ
- IN3 - OUT3の状態
- IN4 - OUT4の状態
2. チャンネル1センス - 通常使用時には左側の2ピンを接続してください。
注意:これは電流を検知するための高度なアプリケーションです。詳細についてはデータシートと回路図を参照してください。
3. 出力 - 2つのチャンネルがあり、各チャンネルには2つの出力があります
- チャンネル0 - OUT1, OUT2
- チャンネル1 - OUT3, OUT4
4. チャンネル0センス
5. チャンネル0インジケーター、3つのLEDを含む
- EB - チャンネル0有効、高アクティブ
- IN1 - OUT1の状態
- IN2 - OUT2の状態
6. 外部電源入力、範囲6-15V
7. リセットインジケーター - リセットボタンが押されると赤く点灯
8. リセットボタン - シールドとArduinoをリセットするために押します
9. 電源インジケーター - 内部または外部の電源が供給されると緑色に点灯
A. 電源スイッチ
- 接続 - Arduinoから電源を取得
- 切断 - 外部ソースから電源を取得
B. 標準Arduinoシールドピンアウト
使用されるデジタルピン
Arduinoピン | 機能 |
D0 | 未使用 |
D1 | 未使用 |
D2 | 未使用 |
D3 | 未使用 |
D4 | 未使用 |
D5 | 未使用 |
D6 | 未使用 |
D7 | 未使用 |
D8 | OUT1 |
D9 | チャンネル0の有効化 |
D10 | チャンネル1の有効化 |
D11 | OUT2 |
D12 | OUT3 |
D13 | OUT4 |
D8〜D13はモーターシールドで使用されます。競合を避けるため、これらのピンを使用しないでください。
使用されるアナログピン
Arduinoピン | 機能 |
D0 | 未使用 |
D1 | 未使用 |
D2 | 未使用 |
D3 | 未使用 |
D4 | 未使用 |
D5 | 未使用 |
未使用とは、これらのピンを自由に使用できることを意味します。
はじめに
DCモーターを駆動する
接続
ここでは、このモーターシールドがどのように動作するかを簡単なデモを通じて説明します。まず、以下のものを準備してください:
Seeeduino V4 | DCモーター | モーターシールド |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- SEN_AとSEN_Bを設定し、左側の2つのピンをジャンパーで接続します。
- MB_ENをジャンパーで接続します(外部電源は使用しません)。
- DCモーターをチャンネル0(OUT1とOUT2)に接続します。
- モーターシールドをArduinoに差し込みます。
- USBケーブルを使用してArduinoをPCに接続します。
ソフトウェア
- 以下のボタンをクリックしてモーターシールドライブラリをダウンロードしてください。
- Arduinoライブラリのインストール方法に従ってライブラリをインストールしてください。
- 以下のコードをSeeeduino V4にアップロードします。
// デモ関数: DCモーターを駆動するためのアプリケーション方法。
// 作成者: Loovee ([email protected])
// 2016-3-11
#include "MotorDriver.h"
MotorDriver motor;
void setup()
{
// 初期化
motor.begin();
}
void loop()
{
motor.speed(0, 100); // モーター0を速度100に設定
delay(1000);
motor.brake(0); // ブレーキ
delay(1000);
motor.speed(0, -100); // モーター0を速度-100に設定
delay(1000);
motor.stop(0); // 停止
delay(1000);
}
// END FILE
- これで、モーターが動作(1秒)、停止(1秒)、逆方向に動作(1秒)、停止(1秒)を繰り返すことが確認できます。
何も起こらない場合は、以下を確認してください:
- コードが正常にアップロードされているか
- モーターが正しく接続されているか
- LEDインジケーターが正しく点滅しているか
ステッパーモーターを駆動する
接続
ここでは、このモーターシールドがどのように動作するかを簡単なデモを通じて説明します。まず、以下のものを準備してください:
Seeeduino V4 | ステッパーモーター | モーターシールド |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- SEN_AとSEN_Bを設定し、左側の2つのピンをジャンパーで接続します。
- MB_ENをジャンパーで接続します(外部電源は使用しません)。
- ステッパーモーターのピン定義を確認し、シールドのOUTPUTに接続します。以下のように接続してください:
ステッパー | OUT1 |
A+ | OUT2 |
A- | OUT3 |
B+ | OUT4 |
B- | 使用しない |
- モーターシールドをArduinoに差し込みます。
- USBケーブルを使用してArduinoをPCに接続します。
ソフトウェア
以下のコードをArduino IDEにコピーしてSeeeduino V4にアップロードしてください。これでステッパーモーターが動作することが確認できます。
/*
* Seeed Motor Shield V2用ステッパーテスト
* loovee @ 2016年3月15日
*/
#include <Stepper.h>
// モーターのステップ数を変更してください
#define STEPS 200
// ステッパークラスのインスタンスを作成し、
// モーターのステップ数と接続されているピンを指定します
Stepper stepper(STEPS, 8, 11, 12, 13);
// アナログ入力からの前回の読み取り値
int previous = 0;
void step(int steps)
{
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
stepper.step(steps);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
void setup()
{
// モーターの速度を30RPMに設定
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
stepper.setSpeed(30);
}
void loop()
{
step(1000);
step(-1000);
}
// END FILE
何も起こらない場合は、配線が正しく接続されているかを再確認してください。
ライブラリ API
DC モーター API
begin
説明
void begin();
speed
説明
void move(int motor_id, int speed);
- motor_id
- 0 - チャンネル 0
- 1 - チャンネル 1
- speed: -100~100、大きいほど速くなる、0は停止
stop
void stop(unsigned char motor_id);
brake
void brake(unsigned char motor_id);
ステッパー
注意 Arduino IDE によって提供されるライブラリを使用してステッパーを駆動します。
いくつか修正が必要です。例を参照してください。
FAQs
Q1: ジャンパー MB_EN の目的
A1: モーターシールド上に電源ジャンパー(MB_EN)があるのがわかります。このジャンパーを移動すると、Arduino がシールドに電力を供給できますが、シールド(シールドが外部電源に接続されている場合)は Arduino に電力を供給することはできません。
ジャンパーが存在する場合、以下の2つの状況で一方が他方に電力を供給できます:
USB から Arduino: シールドに外部電源が個別に接続されていない場合、Arduino は VCC ピンを介してシールドに電力を供給します。
シールドに外部電源が接続されている場合:シールドが個別の電源を持っている場合、電圧はまず整流器(78M05)を通過し、その後 Arduino に電力を供給します。この状況では、Arduino の電流は 78M05 を介して Arduino からシールドに流れることはありません。
したがって、このジャンパーの目的は、シールドを使用して Arduino に電力を供給するかどうかを選択することです。
Q2: Arduino UNO 上で SD カードシールド (103030005) とモーターシールド (105030001) の間にピンの競合はありますか?それらを一緒に使用する方法は?
A2: Arduino Uno のデジタルピン D11、D12、D13 においてモーターシールドと SD カードシールドの間にピンの競合があります。そのため、Arduino Uno ボードと一緒にそれらを積み重ねて使用することはできません。以下はそれらを一緒に使用するための解決策です。
- ステップ 1: SD カードシールドを Arduino に積み重ねます。
- ステップ 2: Motordriver.h ライブラリを以下のように修正します。
/******ピン定義*************/
#define MOTORSHIELD_IN1 8
#define MOTORSHIELD_IN2 7
#define MOTORSHIELD_IN3 6
#define MOTORSHIELD_IN4 5
#define SPEEDPIN_A 9
#define SPEEDPIN_B 10
Q3: モーターシールドを積み重ねず、ジャンパーワイヤーを使用して Arduino から個別に接続する方法
A3: 以下は接続方法です。
Arduino | モーターシールド |
5V | 5V |
GND | GND |
D5 | D13 |
D6 | D12 |
D7 | D11 |
D8 | D8 |
D9 | D9 |
D10 | D10 |
モーターシールド V2.0 Eagle ファイル回路図オンラインビューア
Motor shield V2.1 Eagle ファイル回路図オンラインビューア
リソース
- [Eagle] Motor Shield V2.0 Eagle ファイル
- [Eagle] Motor shield V2.1 Eagle ファイル
- [PDF] Motor Shield 2.0 回路図
- [PDF] Motor Shield 2.1 回路図
- [PDF] Motor Shield 2.2 回路図
- [Library] Motor Shield ライブラリ
- [Datasheet] L298 データシート
- [Datasheet] 78M05 データシート
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルをご用意しています。