今回はモータドライバとArduinoを用いたモータの速度制御について投稿します。
(正転・逆転)制御
TA7291Pのモータドライバを使って速度制御を行おうとしていたので
Amazon.co.jp: Motor Driver TA7291P Set of 2 : Industrial & Scientific
準備物等は下記のサイトを参照して用意しました。
モータードライバー(TA7291P)の使い方 [Arduino] (petitmonte.com)
さて、やろうかとしたところ12Vの電源がないことに気付いた…
ということで、急遽手持ちであった定格3.0Vのタミヤの「6速ギアボックス」でモータを回してみました。
初めに用意していたArduinoUNOはArduinoIDEでのスケッチの際、アップロードができないという不具合が起き、Arduinoの
基板を初めとは違うものに交換して動かしています。(pinの配置はArduinoUNOと同様のものです)
速度制御
下記のサイトを参考に、可変抵抗の抵抗値変更をanalogReadで読み取って速度制御を行いました。
Analog Read Serial | Arduino Documentation | Arduino Documentation
ArduinoIDEでコードを作成
#include <Arduino_BuiltIn.h>
#define PIN_IN1 7
#define PIN_IN2 8
#define PIN_VREF 9 // PWM
float val = 0;
int speed = 0;
void setup(){
pinMode(PIN_IN1,OUTPUT);
pinMode(PIN_IN2,OUTPUT);
Serial.begin(9600);
}
void loop(){
val=analogRead(A1);
val=val/1023*255;
speed=round(val);
Serial.println(speed);
// speedの値によってモーターの回転速度設定する
analogWrite(PIN_VREF,speed);
// 回転
digitalWrite(PIN_IN1,HIGH);
digitalWrite(PIN_IN2,LOW);
delay(10);
}
DCモータの速度制御まではできるようになったので、
次回はエンコーダの波形測定について投稿したいと思います。
おまけ
ArduinoUnoの不具合と力尽きたジャンパー線…