Scientific Journey

私の冒険記録。たまに回り道。

【Arduino】Parallax HB-25 Motor Controlを使ってみるよ

今回は大きめな電流を流せるモータドライバを使ってみます。

用意するもの

  • HB-25 Motor Driver

akizukidenshi.com

  • テスター
  • 可変電源(6V)流せるもの
  • Arduino Uno

配線

HB-25 つなげる場所
W Arduino 9 pin
R Arduino 5V
B Arduino GND
+ 可変電源+
- 可変電源ー
M1 モータ+側
M2 モーター側

プログラム

こちらに素晴らしい先駆者がいました。
Reefwing Robotics: Parallax HB-25 Motor Control Library for Arduino
Servo.hを使ってコントロールをしていきます。

私が使ったコードはこちら

#include <Servo.h>

#define REVERSE       1000
#define STOP          1500
#define FORWARD       2000
#define HOLD_OFF_TIME 8
#define controlPin 9

Servo servo;

void setup(){
  // HB-25 initialisation time (5ms)
  delay(5);                                           
  pinMode(controlPin, OUTPUT);
  // Set control pin low on power up
  digitalWrite(controlPin, LOW);
  //serial confirm
  Serial.begin(9600);
}

void loop(){
  // Attach HB-25 to the control pin & set valid range                    
  servo.attach(controlPin, 800, 2200);
  servo.writeMicroseconds(STOP);
  Serial.println("Stop");
  delay(5000);
  
   // Attach HB-25 to the control pin & set valid range                    
  servo.attach(controlPin, 800, 2200);
  servo.writeMicroseconds(FORWARD);
  Serial.println("Forward");
  delay(5000);
  
  // Attach HB-25 to the control pin & set valid range                    
  servo.attach(controlPin, 800, 2200);
  servo.writeMicroseconds(STOP);
  Serial.println("Stop");
  delay(5000);
  
   // Attach HB-25 to the control pin & set valid range                    
  servo.attach(controlPin, 800, 2200);
  servo.writeMicroseconds(REVERSE);
  Serial.println("Reverse");
  delay(5000);
  
}

結果

コマンド M1 M2
STOP 0 0
FORWARD + -
REVERSE - +

今回は可変電源から6V流したので、6Vが出力されています。
コマンドによって、電源の流れる向きが制御できます。