けつあご日記

きくちはやみのふぃくさーにしかなりたくない.ひゃっぽゆずっててんほういは,あり.

TA7291P使ってArduinoでモーター回して見たメモ

↓前回トランジスタを使ってモーター制御してみた.
www.ketsuago.com

今回はモータードライバなるものを使ってやってみたので,自分用メモしておく.普通モーターの制御と言えばモータードライバを使うらしい.使ったのは最も一般的なモータードライバらしいTA7291P.頑張れ東芝!!

f:id:kichiku_kikuchi:20170223185609j:plain:w500


以下のサイトをそのままパクってやってみた.ドライバ端子の何番が何に相当するかは↓の一個目を参照.
DCモーターをArduinoで動かしてみる。 - つくったブログ
DCモーターをArduinoで動かしてみる。その2 - つくったブログ

f:id:kichiku_kikuchi:20170223185846j:plain:w500


うん,完璧.注意が必要なのは,モーターにつなぐ電池の電圧をArduinoの電圧(5V)以上にすること.その他の電圧の大小関係は気にしなくていいらしい(ドライバの7番につなぐ電源は4.5V以上である必要があるが,Arduinoの5Vを繋げば問題ない).データシートを参照のこと.

電池の電圧が5V以上必要なので,1.5V乾電池を4本以上つなぐ必要がある.ケースを2本用と3本用しか持っていなかったので,それらを接続して7.5Vにした.

モーターは下のセットについてきたFA-130を使っている.これはTA7291Pの電流の強さにちょうどいいらしい.

タミヤ 楽しい工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ (70168)

タミヤ 楽しい工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ (70168)


ドライバ側の4番にArduinoのanalogWriteできる端子("~"がついているやつ)をつなぐと,回転数を制御できる.ので,回転数を徐々に上げることなどが可能.

// Arduino Sketch
const int motIn1 = 7; //to driver 6
const int motIn2 = 8; //to driver 5
const int motControl = 9; //to driver 4
int rotSpeed = 0;
int stepSpeed = 5;

void setup(){
  pinMode(motIn1,OUTPUT);
  pinMode(motIn2,OUTPUT);
}

void loop(){
  digitalWrite(motIn1,HIGH);
  digitalWrite(motIn2,LOW);
  
  analogWrite(motControl,rotSpeed);
  delay(500);
  rotSpeed = rotSpeed + stepSpeed;
    
  if (rotSpeed == 80) {
    rotSpeed = 0;
    analogWrite(motControl,rotSpeed);
    delay(1000);
  }
}


その他参考サイト
TA7291P を使った小型モータ駆動回路 | マルツオンライン
建築発明工作ゼミ2008: Arduino 小型DCモータ/TA7291P
ブレッドボードを使った Arduino流 ものづくり(ATtiny4313版)
Arduino 日本語リファレンス: analogWrite()
あると便利な熱収縮チューブ | パーツ&工具,測定器←モーターに導線つなぐときに使った


よーし次は超音波センサを使ってモーター制御してみるぞい.↓これこの前買ったやつより全然安い...ツライ.

HC-SR04 超音波距離センサーモジュール For Arduino

HC-SR04 超音波距離センサーモジュール For Arduino



↓アフィカスリンク

Arduinoをはじめよう 第3版 (Make:PROJECTS)

Arduinoをはじめよう 第3版 (Make:PROJECTS)

ArduinoとProcessingではじめるプロトタイピング入門 (KS理工学専門書)

ArduinoとProcessingではじめるプロトタイピング入門 (KS理工学専門書)