・目的
モータードライバーを使ってDCモータを
制御する。
・使用したもの
Arduino uno
TA7291p
ブレッドボート
ジャンパワイヤ
・方法
(1)TA7291pのピン配置
TA7291pの端子配置を表1に示した。
ロジック側電源はTA7291pの電源。
出力側電源はモーターに供給する電源。
制御端子はpwmを使用する時に使う。
3,9pinはNC端子(何も接続しないこと)
端子記号 |
端子番号 |
端子説明 |
Vcc |
7 |
ロジック側電源端子 |
Vs |
8 |
出力側電源端子 |
Vref |
4 |
制御電源端子 |
GND |
1 |
GND |
IN1 |
5 |
入力端子 |
IN2 |
6 |
入力端子 |
OUT1 |
2 |
出力端子 |
OUT2 |
10 |
出力端子 |
表1:ピン
(2)PWMを使用しない時
pwmを使用しない時の回路図を図1に示した。
この時注意しなければならないことはVref端子の処理である。
pwmをしない場合はVsに抵抗を介して接続すること。
これをしないと上手く動かなくなる。
図1では10kΩ抵抗を接続した。
図1:pwmを使用しない
pwmを使用しない時のコードを
図2にしめした。
const int Pin1 = 8;
const int Pin2 = 9;
void setup() {
pinMode(Pin1,OUTPUT);
pinMode(Pin2,OUTPUT);
}
void draw() {
digitalWrite(Pin1,HIGH);
digitalWrite(Pin2,LOW);
delay(10000);
digitalWrite(Pin2,LOW);
digitalWrite(Pin2,HIGH);
delay(10000);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,LOW);
}
図2:pwmを使用しないとき
(3)PWMを使用する時
pwmを使用する時、回路図を図3に示した。
ATmega328pを搭載しているArduino UNOは3,5,6,9,10,11
ピンでpwmに対応している。
pwmは以下のようにして使える
value は0~255を指定できる
const int pwm = 3;
void setup(){
pinMode(pwm,OUTPUT);
}
void loop(){
value = 100;
analogWrite(pwm,value);
}
図3:pwmを使用するとき
コードを図4に示した。
const int Pin1 = 8;
const int Pin2 = 9;
const int Pwm = 10;
void setup() {
pinMode(Pin1,OUTPUT);
pinMode(Pin2,OUTPUT);
pinMode(Pwm,OUTPUT);
}
void draw() {
digitalWrite(Pin1,HIGH);
digitalWrite(Pin2,LOW);
analogWrite(Pwm,100);
delay(5000);
digitalWrite(Pin1,HIGH);
digitalWrite(Pin2,LOW);
analogWrite(Pwm,200);
delay(5000);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,HIGH);
analogWrite(Pwm,100);
delay(5000);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,HIGH);
analogWrite(Pwm,200);
delay(5000);
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,HIGH);
delay(5000);
}
図4:pwmを使用したとき