L293D モータードライバーシールド を使ってみる(Arduino)
宝箱?の押入を整理していたら、
L293Dモータードライバーシールドが出てきました。
少し古いものですが、このシールド1枚で、
DCモーター、ステッピングモーター、サーボモーター
の制御が可能です。
今では、国内での販売は少ないようですが、
大陸ではまだまだ多く販売されています。
・arduino motor shield V1.x
国内:¥1,000-前後
大陸:¥200-前後
現在ではこの製品の新しい(後継)製品が販売されています。
"モータードライバーシールド V2.x"
というものです。
・Arduino用モーター・シールドキット V2.3
秋月電子通商
https://akizukidenshi.com/catalog/g/gK-07748/
¥2,370-
・Iic I2C TB6612 mosfetステッピングモータPCA9685 pwmサーボドライバシールドV2
AliExpress
https://ja.aliexpress.com/
¥840-(お店により価格。送料は違います)
この製品、"L293Dモータードライバーシールド V1.x" は、
・DCモーター (4個)
・ステッピングモーター (2個)
・サーボモーター (2個)
が制御できます。
※DCモーター2個か、ステッピングモーター1個か
のどちらか選択になります。
今回使用する各モーターの参考:
Ali Express
https://ja.aliexpress.com/
・L293D モータードライブシールドデュアル arduino
¥192-
・マイクロサーボ9g SG90サーボ
¥200-
・DCモーター
¥40-
・ステッピングモーター 28BYJ-48
¥150-
※お店により価格、送料は違います。
秋月電子通商
・ユニポーラ ステッピングモーター 28BYJ-48
https://akizukidenshi.com/catalog/g/gP-13256/
¥250-
・DCモーター FA-130RA-2270
https://akizukidenshi.com/catalog/g/gP-06437/
¥100-
・DCモーター FA-130RA-2270L(リード線付き)
https://akizukidenshi.com/catalog/g/gP-09169/
¥120-
・マイクロサーボ9g SG-90
https://akizukidenshi.com/catalog/g/gM-08761/
¥400-
・マイクロサーボ SG92R
https://akizukidenshi.com/catalog/g/gM-08914/
¥500-
このシールドはV1.x製品ですが、格安で手に入り、
車や戦車など模型の複数モーター制御が容易になります。
このシールドに関する情報やスケッチについて、
Arduino の公式ページの PROJECT HUB で紹介されています。
"ArduinoL293Dモータードライバーシールドチュートリアル" ページを
https://create.arduino.cc/projecthub/electropeak/arduino-l293d-motor-driver-shield-tutorial-c1ac9b
ぜひ、参考にされて下さい。
では、私なりに、
それぞれのモーターを制御するスケッチをしてみます。
DCモーター、ステッピングモーターのスケッチには、
"Adafruit Motor Shield library" ライブラリが必要です。
メニュー「スケッチ」→「ライブラリをインクルード」
→「ライブラリ管理」 を選択します。
表示された、ライブラリマネージャ画面の検索欄に、
"AF_motor"
と入力し、表示された一覧から
"Adafruit Motor Shield library"
の、最新バージョンを選択し、「インストール」をクリックします。
※私のインストールバージョンは、1.0.1でした。
サーボモーターのスケッチには、
"Servo" ライブラリが必要ですが、インストール済みだと思います。
もし、インストールされていない場合は、
"Adafruit Motor Shield library" ライブラリと同じ操作で、
インストールします。
※検索欄への入力は、"Servo" で検索できます。
私のインストールバージョンは、1.1.7でした。
1.DCモーター(FA-130RA)を接続してみます。
回路は図の通りです。
この回路図の作図には fritzing を利用させて頂いております。
https://fritzing.org/home/
スケッチです。
// DCモーター制御
// AFMotorライブラリインクルード
#include <AFMotor.h>
// DCモータオブジェクト生成(motor端子1を使用)
AF_DCMotor motor1(1, MOTOR12_64KHZ); // 1~4
void setup() {
// put your setup code here, to run once:
// モータースピード設定
motor1.setSpeed(200);
}
void loop() {
// put your main code here, to run repeatedly:
// 正転
motor1.run(FORWARD);
delay(1000);
// 反転
motor1.run(BACKWARD);
delay(1000);
// 解放
motor1.run(RELEASE);
delay(1000);
}
検証し、マイコンボードに書き込み実行してみます。
正転、反転を繰り返します。
2.ステッピングモーター(28BYJ-48)を接続してみます。
回路は図の通りです。
スケッチです。
// ステッピングモーター制御
// AFMotorライブラリインクルード
#include <AFMotor.h>
// ステッピングモーターオブジェクト生成
// (ステッピングモーター端子2を使用)
AF_Stepper smotor2(48, 2); // 1, 2
void setup() {
// put your setup code here, to run once:
// スピード設定
smotor2.setSpeed(200);
}
void loop() {
// put your main code here, to run repeatedly:
// 正転、反転、SINGLEモード(1コイル)
smotor2.step(1, FORWARD, SINGLE);
// smotor2.step(1, BACKWARD, SINGLE);
// 正転、反転、DOUBLEモード(2コイル)
// smotor2.step(1, FORWARD, DOUBLE);
// smotor2.step(1, BACKWARD, DOUBLE);
// 正転、反転、INTERLEAVEモード
// smotor2.step(1, FORWARD, INTERLEAVE);
// smotor2.step(1, BACKWARD, INTERLEAVE);
// 正転、反転、MICROSTEPモード
// smotor2.step(1, FORWARD, MICROSTEP);
// smotor2.step(1, BACKWARD, MICROSTEP);
// 解放
// smotor2.release();
}
検証し、マイコンボードに書き込み実行してみます。
スピード200で、Singleモードで正転を続けます。
3.マイクロサーボ(SG92R)を接続してみます。
回路は図の通りです。
スケッチです。
// サーボモーター制御
// Servoライブラリインクルード
#include <Servo.h>
// サーボモーターオブジェクト生成
Servo servo1;
// 角度設定用変数宣言
int val = 0;
void setup() {
// put your setup code here, to run once:
// サーボモーター設定(サーボ端子1を使用)
servo1.attach(10); // servo1:10, servo2:9
}
void loop() {
// put your main code here, to run repeatedly:
// サーボモーターへ角度指示
servo1.write(val);
delay(500);
// 次の角度を生成
val += 10;
if( val >= 180 ){
val = 0;
}
}
検証し、マイコンボードに書き込み実行してみます。
0~180度へ10度毎に回転を繰り返します。
簡単な各モーター使用を掲載しています。
・"DCモーターの回転を制御してみる"
https://shinog.jp/computer/arduino/dc%e3%83%a2%e3%83%bc%e3%82%bf%e3%83%bc%e3%81%ae%e5%9b%9e%e8%bb%a2%e3%82%92%e5%88%b6%e5%be%a1%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/
・"マイクロサーボを使ってみる"
https://shinog.jp/computer/arduino/%e3%83%9e%e3%82%a4%e3%82%af%e3%83%ad%e3%82%b5%e3%83%bc%e3%83%9c%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/
・"ステッピングモーターを使ってみる"
https://shinog.jp/computer/arduino/%e3%82%b9%e3%83%86%e3%83%83%e3%83%94%e3%83%b3%e3%82%b0%e3%83%a2%e3%83%bc%e3%82%bf%e3%83%bc%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/