// ตัวอย่าง การเขียนโปรแกรมบอร์ด Multi Function - Arduino uno r3
// LAB11 SeralMonitor S1 and D10
// ครูวิบูลย์ กัมปนาวราวรรณ เสาร์ 1 มิถุนายน 2567
const int switchPin = A1; // พินที่เชื่อมต่อกับสวิทช์ S1
const int ledPin = 10; // พินที่เชื่อมต่อกับ LED
void setup() {
Serial.begin(9600); // เริ่มต้นการสื่อสารแบบ serial ที่ baud rate 9600
pinMode(ledPin, OUTPUT); // กำหนดพิน 10 เป็นพินเอาท์พุต
pinMode(switchPin, INPUT); // กำหนดพิน A1 เป็นพินอินพุต
digitalWrite(ledPin, HIGH); // ตั้งค่าสถานะเริ่มต้นของ LED (ปิด LED)
Serial.println("Please press S1.");
// แสดงข้อความ "Please press S1." บน Serial Monitor
}
void loop() {
int switchState = digitalRead(switchPin); // อ่านค่าสถานะปัจจุบันของสวิทช์
// ตรวจสอบสถานะของสวิทช์
if (switchState == LOW) { // ถ้าสวิทช์ถูกกด (สถานะเป็น LOW)
digitalWrite(ledPin, LOW); // เปิด LED (ส่งค่าลอจิก 0 ไปยังพิน 10)
Serial.println("S1 is pressed - LED ON.");
// แสดงข้อความ "S1 is pressed - LED ON." บน Serial Monitor
} else { // ถ้าสวิทช์ถูกปล่อย (สถานะเป็น HIGH)
digitalWrite(ledPin, HIGH); // ปิด LED (ส่งค่าลอจิก 1 ไปยังพิน 10)
Serial.println("S1 released - LED OFF.");
// แสดงข้อความ "S1 released - LED OFF." บน Serial Monitor
}
delay(100); // หน่วงเวลา 100 มิลลิวินาทีเพื่อป้องกันการกระเพื่อม (debounce)
}