#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <Servo.h>
// กำหนดขา RX, TX ของ Arduino
SoftwareSerial gpsSerial(10, 11); // RX, TX
TinyGPSPlus gps;
Servo servoMotor;
void setup() {
Serial.begin(9600);
gpsSerial.begin(9600);
servoMotor.attach(4); // กำหนดขาของ Servo Motor
//เช็คความพร้อม Air Brake ตอนบิดกุญแจ //
servoMotor.write(0);
delay(3000);
servoMotor.write(90);
delay(3000);
}
void loop() {
while (gpsSerial.available() > 0) {
if (gps.encode(gpsSerial.read())) {
if (gps.speed.isValid()) {
// คำนวณความเร็วจากเมตรต่อวินาทีเป็นกิโลเมตรต่อชั่วโมง
float speedKmph = gps.speed.kmph();
Serial.print("Speed: ");
Serial.print(speedKmph);
Serial.println(" km/h");
// เมื่อความเร็วน้อยกว่า 30 km/h, ให้ Servo Motor หมุนไปที่ 0 องศา
if (speedKmph < 30) {
servoMotor.write(0);
Serial.println("Servo Motor turned to 0 degrees.");
}
// เมื่อความเร็วน้อยกว่า 60 km/h แต่ไม่ต่ำกว่า 30 km/h, ให้ Servo Motor หมุนไปที่ 60 องศา
else if (speedKmph < 60) {
servoMotor.write(60);
Serial.println("Servo Motor turned to 60 degrees.");
}
// เมื่อความเร็วถึงหรือมากกว่า 60 km/h, ให้ Servo Motor อยู่ในสถานะ Stanby
else {
// ทำอะไรตามความต้องการ เช่น โหมด Standby
Serial.println("Servo Motor in Standby Mode.");
}
}
}
}
}