「Arduinoの基礎 - DCモータ」の版間の差分
ナビゲーションに移動
検索に移動
細 (文字列「<source lang」を「<syntaxhighlight lang」に置換) |
|||
47行目: | 47行目: | ||
<br> | <br> | ||
Arduinoのサンプルコードは、以下の通りである。<br> | Arduinoのサンプルコードは、以下の通りである。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
const int PIN_1A = 5; | const int PIN_1A = 5; | ||
const int PIN_2A = 6; | const int PIN_2A = 6; |
2021年11月18日 (木) 10:21時点における版
概要
ここでは、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のサンプルコードは、以下の通りである。
<syntaxhighlight lang="c++"> 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); } </source>