#include <Keypad.h>
#include <Servo.h>
const byte ROWS = 4; // จำนวนแถวใน Keypad
const byte COLS = 4; // จำนวนคอลัมน์ใน Keypad
// กำหนดรหัสของแต่ละปุ่มใน Keypad
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; // กำหนดขาของแถวของ Keypad
byte colPins[COLS] = {9,8,7,6}; // กำหนดขาของคอลัมน์ของ Keypad
// กำหนดตัวแปรเก็บค่าต่างๆ
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
Servo servo;
int angle = 0; // สำหรับเก็บค่าองศาของ Servo
void setup() {
servo.attach(10); // กำหนดขาที่ Servo ต่อเข้ากับ Arduino
}
void loop() {
char key = keypad.getKey(); // รับค่าปุ่มที่ถูกกด
if (key != NO_KEY) { // ตรวจสอบว่ามีการกดปุ่มหรือไม่
tone(11, 1000, 100); // เล่นเสียง Buzzer เมื่อมีการกดปุ่ม
// ตรวจสอบปุ่มที่ถูกกดและดำเนินการตามเงื่อนไข
switch (key) {
case '1':
angle += 10; // เพิ่มค่าองศาขึ้น 10
break;
case '2':
angle -= 10; // ลดค่าองศาลง 10
break;
case '3':
angle = 0; // กำหนดค่าองศาเป็น 0
break;
case '4':
angle = 90; // กำหนดค่าองศาเป็น 90
break;
case '5':
angle = 180; // กำหนดค่าองศาเป็น 180
break;
}
// จำกัดค่าองศาให้อยู่ในช่วง 0-180
angle = constrain(angle, 0, 180);
servo.write(angle); // สั่ง Servo หมุนไปที่องศาที่กำหนด
delay(1000); // รอเพื่อให้ Servo หมุนไปยังตำแหน่งที่กำหนด
}
}