ステアリングサーボを動かす

ステアリングサーボはスピードコントローラと同じなのでプログラムの変更はほとんどないので、細かい説明は省略する。

サーボを動作させるためのSteering_Valの値は、以下のとおりである。
50:ステアリングを左に切った状態
90:中立
130:ステアリングを右に切った状態

また、シリアルモニタからの入力で3,4を入力することにより、Steering_Valの値が上下するようになっている。

#include <Servo.h> // Built-in Servo library
Servo servo[2]; // create servo object for speed controller and steering servo
int SerialInputValue; // Inputed value from serial monitor for debug

void setup() {

//***** set serial port speed (bps)
 Serial.begin(115200);

//***** set servo pin servo[0]..servo[1]
 servo[0].attach(9); // Pin 9 is for Stering Servo
 servo[1].attach(10); // Pin 10 is for Speed Controller

}

void loop() {
 static int Steering_Val = 90; // 50-90-130 Steering value (90:center)
 static int Motor_Val = 94; // 70-92 Speeding Value (70 is fast)

 SerialRead(); // read inputted numeric key
 if (SerialInputValue ==3 && Steering_Val >=52){ 
 Steering_Val -= 2; // '3' is inputted from serial monitor
 }
 if (SerialInputValue ==4 && Steering_Val <=128){
 Steering_Val += 2; // '4' is inputted from serial monitor
 }
 if (SerialInputValue ==1 && Motor_Val >=72){ //73
 Motor_Val -= 2; // '1' is inputted from serial monitor
 }
 if (SerialInputValue ==2 && Motor_Val <=100){ //83
 Motor_Val += 2; // '2' is inputted from serial monitor
 }

 servo[0].write(Steering_Val); // Servo output (Steering)
 Serial.print("Steering Value=");
 Serial.print(Steering_Val);
 
 servo[1].write(Motor_Val); // Servo output (Speeding)
 Serial.print(" Motor Speed=");
 Serial.println(Motor_Val);
}

下記は実験しているときの写真である。
ArduinoからはGNDと9Pin,10Pinの③本だけが出ている。それらがスピードコントローラやステアリングサーボと接続されている。

配線図としては以下となる。