Lesson 3.1

การใช้งาน Digital I/O

ความรู้เบื้องต้นเกี่ยวกับไฟฟ้า

ก่อนที่เราจะสั่งงานฮาร์ดแวร์ เราต้องเข้าใจพื้นฐานไฟฟ้า 3 ตัวแปรหลักก่อนครับ:

พอร์ต Digital I/O (Input/Output) คือช่องทางในการสื่อสารภายใต้ ตรรกะทวิลักษณ์ (Binary Logic) ซึ่งมีเพียง 2 สถานะ:

HIGH (1)

5 โวลต์ (5V)

เปรียบเสมือนการ "เปิด" สวิตช์

LOW (0)

0 โวลต์ (0V)

เปรียบเสมือนการ "ปิด" สวิตช์


1. การควบคุมอุปกรณ์ด้วย Digital Output

การส่งคำสั่ง (จ่ายไฟ) ออกไปควบคุมอุปกรณ์ภายนอก เช่น การสั่งให้หลอด LED ติดหรือดับ

👆 กดปุ่ม "Start Simulation" เพื่อสังเกตการไหลของกระแสไฟฟ้า

📌 คำสั่งสำคัญ: pinMode(ขา, OUTPUT); และ digitalWrite(ขา, สถานะ);
Blink_LED.ino
int ledPin = 8;  

void setup() {
  pinMode(ledPin, OUTPUT); // ตั้งเป็นโหมดส่งสัญญาณออก
}

void loop() {
  digitalWrite(ledPin, HIGH); // จ่ายไฟ 5V (เปิดไฟ)
  delay(1000);                
  digitalWrite(ledPin, LOW);  // จ่ายไฟ 0V (ปิดไฟ)
  delay(1000);                
}

2. การอ่านค่าด้วย Digital Input

การรับสัญญาณเข้ามายังบอร์ด เช่น การตรวจสอบว่า "สวิตช์ถูกกดอยู่หรือไม่"

📌 คำสั่งสำคัญ: pinMode(ขา, INPUT); และ digitalRead(ขา);
Read_Switch.ino
int switchPin = 2;  

void setup() {
  pinMode(switchPin, INPUT); // ตั้งเป็นโหมดรับสัญญาณเข้า
}

void loop() {
  int state = digitalRead(switchPin); // อ่านสถานะ 0 หรือ 1
  
  if (state == HIGH) {
    // ทำงานเมื่อสวิตช์ถูกกด
  }
}

3. แกลเลอรีภาพกรณีศึกษา (Case Study Gallery)

ตัวอย่างการนำหลักการ Digital I/O ไปประยุกต์ใช้ในโลกจริง:

🚀 MISSION 1

ภารกิจที่ 1: ผู้พิทักษ์ความปลอดภัย (Smart Alarm)

ให้ออกแบบวงจรและเขียนโปรแกรมระบบสัญญาณกันขโมย โดยใช้ สวิตช์ ร่วมกับเงื่อนไข if-else เพื่อสั่งงานเสียงเตือนภัย (Buzzer) หรือไฟแจ้งเตือน หากพบข้อผิดพลาดให้บันทึกลงในศูนย์แก้ปมปัญหา

ปฏิบัติภารกิจที่ 1