#include <Servo.h>
  Servo myservo;        // สร้าง Object สำหรับควบคุมเซอร์โวมอเตอร์
int potPin = A0;      // กำหนดขา Analog สำหรับ Potentiometer
int servoPin = 10;    // กำหนดขา Digital สำหรับควบคุมเซอร์โวมอเตอร์
int startButtonPin = 3;   // กำหนดขา Digital สำหรับปุ่ม Start
int stopButtonPin = 4;    // กำหนดขา Digital สำหรับปุ่ม Stop
int val;              // ตัวแปรสำหรับเก็บค่า Analog จาก Potentiometer
int angle;            // ตัวแปรสำหรับเก็บค่าองศาของเซอร์โวมอเตอร์
bool isRunning = false;  
// ประกาศตัวแปรชนิด bool ชื่อ isRunning เพื่อเก็บสถานะการทำงานของ Servo Motor
void setup() {
  Serial.begin(9600);              // เปิด Serial Monitor
  myservo.attach(servoPin);       // กำหนดขาควบคุมเซอร์โวมอเตอร์
  pinMode(startButtonPin, INPUT_PULLUP); 
  // กำหนดขา Digital สำหรับปุ่ม Start เป็นขา Input พร้อม Pull-up resistor
  pinMode(stopButtonPin, INPUT_PULLUP);  
  // กำหนดขา Digital สำหรับปุ่ม Stop เป็นขา Input พร้อม Pull-up resistor
}
void loop() {
  // ตรวจสอบสถานะของปุ่ม Start
  if (digitalRead(startButtonPin) == LOW) {
    isRunning = true;
    myservo.write(0); // เซ็ต Servo Motor ให้หมุนซ้าย
  }
  // ตรวจสอบสถานะของปุ่ม Stop
  if (digitalRead(stopButtonPin) == LOW) {
    isRunning = false;
    myservo.write(180); // เซ็ต Servo Motor ให้หมุนขวา
  }
  // ตรวจสอบค่าต่าง ๆ ของ Potentiometer
  val = analogRead(potPin);         // อ่านค่า Analog จาก Potentiometer
  float voltage = val * (5.0 / 1023.0); // คำนวณแรงดัน (Voltage) จากค่า Analog
  if (voltage == 5.0) {              // ถ้าแรงดันเกิน 5V
    myservo.write(90);              // เซ็ต Servo Motor ให้หมุนที่ 90 องศา
    isRunning = false;              // หยุดการทำงานของ Servo Motor
  }
  delay(100);  // รอ 100 มิลลิวินาที
}