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