Arduinoの基礎 - DCモータ
ナビゲーションに移動
検索に移動
概要
ここでは、L293DモータドライバICを使用して、ArduinoからDCモータを制御する方法を記載する。
動作試験を行うため、以下の製品を使用している。
- L293D(TI製)
- 模型用モータ 2個
- 抵抗10[kΩ] 2個
- セラミックコンデンサ 0.1[μF] 1個
- アルミ電解コンデンサ 1[μF]
- 9V 電池スナップ
- 22[AWG] ソリッドコアワイヤ / ジャンパワイヤ
<yjshopping seller_id="robotena">DCギヤボックス+タイヤセット</yjshopping>
L293Dの使用
L293Dのピン配置は、以下の通りである。
TI社のデータシートより、電流は1[A]となっている。
L293Dの電源電圧VCC1(16番ピン)は、Arduinoの5[V]ピンと接続している。
L293DのVCC2(8番ピン)はモータへの電源であるので、9[V]電池と接続する。
また、Arduinoへの電源はVINに接続する。
モータ1は1Yと2Y、モータ2は3Yと4Yに接続する。
双方向の回転(回転方向を変える)を実現するために、1Y / 2Yと3Y / 4Yとペアにしてモータに接続しているが、
1方向だけなら、1Y / GND、2Y / GNDのようにしてもよい。
EN | 1A | 2A | 1Y | 2Y | 回転方向 |
---|---|---|---|---|---|
H | H | L | H | L | ↩ |
H | L | H | L | H | ↪ |
H | L | L | |||
H | H | H | |||
L |
Arduinoのサンプルコードは、以下の通りである。
const int PIN_1A = 5;
const int PIN_2A = 6;
const int PIN_3A = 7;
const int PIN_4A = 8;
void setup()
{
pinMode(PIN_1A, OUTPUT);
pinMode(PIN_2A, OUTPUT);
pinMode(PIN_3A, OUTPUT);
pinMode(PIN_4A, OUTPUT);
}
void loop()
{
motor1( HIGH, LOW, 3000);
motor1( LOW, LOW, 100);
motor1( LOW, HIGH, 3000);
motor1( LOW, LOW, 0);
motor2( HIGH, LOW, 3000);
motor2( LOW, LOW, 100);
motor2( LOW, HIGH, 3000);
motor2( LOW, LOW, 0);
}
void motor1(int a1, int a2, int d)
{
digitalWrite(PIN_1A, a1);
digitalWrite(PIN_2A, a2);
delay(d);
}
void motor2(int a3, int a4, int d)
{
digitalWrite(PIN_3A, a3);
digitalWrite(PIN_4A, a4);
delay(d);
}