Arduinoで モータードライバ TA7291p をつかってみた。

・目的

 モータードライバーを使ってDCモータを

 制御する。

・使用したもの

Arduino uno

TA7291p

ブレッドボート

ジャンパワイヤ

Mac mini

 

・方法

 (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Ω抵抗を接続した。

f:id:shangtian:20170907100821p:plain

図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); } 

 

 

f:id:shangtian:20170907100912p:plain

 図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を使用したとき