การใช้งาน Arduino Nano กับ LED และปุ่มกด

1. บทนำ

นอกจากการทำให้ LED ติด–ดับแบบอัตโนมัติแล้ว เราสามารถเพิ่ม ปุ่มกด (Push Button) เพื่อให้ผู้ใช้มีปฏิสัมพันธ์กับระบบได้ เช่น เมื่อกดปุ่มแล้วไฟติด ปล่อยแล้วไฟดับ การทดลองนี้จึงเป็นพื้นฐานสำคัญของการเขียนโปรแกรมเชิงโต้ตอบ (Interactive Programming)


2. อุปกรณ์ที่ใช้

  • บอร์ด Arduino Nano
  • หลอดไฟ LED สีแดง และสีเขียว พร้อมตัวต้านทาน (220–330 Ω)
  • ปุ่มกด 2 ตัว (Push Button)
  • สายไฟต่อวงจร

3. การต่อวงจร

จากภาพที่นักเรียนเห็น:

  • LED แดง ต่อกับขา D2 ของ Arduino
  • LED เขียว ต่อกับขา D3
  • ปุ่มกดสีเขียว ต่อกับขา D12
  • ปุ่มกดสีแดง ต่อกับขา D11
  • ขาอีกด้านของปุ่มกดต่อลง GND เพื่อเป็นทางกลับกระแส
  • ทั้ง LED มีตัวต้านทานจำกัดกระแสเพื่อป้องกันความเสียหาย

4. ตัวอย่างโค้ด

void setup() {
  // กำหนดขาออก (OUTPUT) สำหรับ LED
  pinMode(2, OUTPUT);   // LED แดง
  pinMode(3, OUTPUT);   // LED เขียว

  // กำหนดขาเข้า (INPUT) สำหรับปุ่มกด
  pinMode(12, INPUT);   // ปุ่มเขียว
  pinMode(11, INPUT);   // ปุ่มแดง
}

void loop() {
  // ตรวจสอบปุ่มเขียว
  if (digitalRead(12) == HIGH) {
    digitalWrite(2, HIGH);  // LED แดงติด
  } else {
    digitalWrite(2, LOW);   // LED แดงดับ
  }

  // ตรวจสอบปุ่มแดง
  if (digitalRead(11) == HIGH) {
    digitalWrite(3, HIGH);  // LED เขียวติด
  } else {
    digitalWrite(3, LOW);   // LED เขียวดับ
  }
}

5. คำอธิบายโค้ด

  1. pinMode(2, OUTPUT); และ pinMode(3, OUTPUT); → กำหนดให้ขา D2 และ D3 เป็นขา Output เพื่อควบคุม LED
  2. pinMode(12, INPUT); และ pinMode(11, INPUT); → กำหนดให้ D12 และ D11 เป็น Input สำหรับปุ่มกด
  3. if (digitalRead(12) == HIGH) → ตรวจสอบว่ามีการกดปุ่ม (ค่าเป็น HIGH)
    • ถ้ากด → LED ติด
    • ถ้าไม่กด → LED ดับ
  4. การทำงานของปุ่มแดงกับ LED เขียวก็ใช้หลักการเดียวกัน

6. สรุป

จากการทดลองนี้ นักเรียนได้เรียนรู้ว่า:

  • การใช้ ปุ่มกด ทำให้ Arduino สามารถรับข้อมูลจากผู้ใช้ได้
  • คำสั่ง digitalRead() ใช้อ่านค่าจากปุ่มกด
  • คำสั่ง digitalWrite() ใช้ควบคุมสถานะของ LED
  • เราสามารถขยายความรู้ไปทำโครงงาน เช่น ไฟควบคุมทางม้าลาย, เครื่องเล่นเกมกดปุ่ม, หรือระบบควบคุมง่าย ๆ ในชีวิตประจำวัน