[電子工作No.2] DCモータ制御その2(速度制御)

January 01, 2023
Author(著者):
beaver
DCモータ
エンコーダ

今回はモータドライバと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);

                
}
モータドライバと半固定抵抗の配線完了
SerialMonitorで「speed」の値が連続的に変化していることを確認

DCモータの速度制御まではできるようになったので、
次回はエンコーダの波形測定について投稿したいと思います。

おまけ

ArduinoUnoの不具合と力尽きたジャンパー線…


copyright © 2024 beavers-hive.com