ステアリングサーボはスピードコントローラと同じなのでプログラムの変更はほとんどないので、細かい説明は省略する。
サーボを動作させるための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の③本だけが出ている。それらがスピードコントローラやステアリングサーボと接続されている。

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

