Digital I/O บน Arduino — สั่งงาน Relay และอ่านค่าสวิตช์

Digital Input/Output บน Arduino

Arduino มีขา Digital I/O (ป้อนข้อมูล/ส่งออกแบบดิจิตอล) ที่สามารถอ่านค่า HIGH (5V) หรือ LOW (0V) และเขียนค่า HIGH/LOW เพื่อควบคุมอุปกรณ์ภายนอก

pinMode(), digitalWrite(), digitalRead()

// ตั้งค่าขา
const int RELAY_PIN = 7;   // ควบคุม Relay Module
const int SWITCH_PIN = 8;  // อ่านค่าจากสวิตช์

void setup() {
  pinMode(RELAY_PIN, OUTPUT);   // ขาสั่งงาน Relay
  pinMode(SWITCH_PIN, INPUT_PULLUP); // ขาอ่านสวิตช์ (ใช้ Pull-up ภายใน)
  digitalWrite(RELAY_PIN, LOW); // ปิด Relay เริ่มต้น
}

void loop() {
  int sw = digitalRead(SWITCH_PIN);
  if (sw == LOW) { // กดสวิตช์ (Active Low เพราะ Pull-up)
    digitalWrite(RELAY_PIN, HIGH); // เปิด Relay
    delay(5000);                   // ค้าง 5 วินาที
    digitalWrite(RELAY_PIN, LOW);  // ปิด Relay
  }
}

INPUT_PULLUP — ไม่ต้องใช้ตัวต้านทานภายนอก

Arduino มี Pull-up Resistor ภายใน (~20kΩ) ต่ออยู่ที่ขา Digital ทุกขา โดยเรียกใช้ pinMode(pin, INPUT_PULLUP) ทำให้:

  • เมื่อสวิตช์เปิด (ไม่กด) → อ่านได้ HIGH
  • เมื่อสวิตช์ปิด (กด) → อ่านได้ LOW
  • ไม่ต้องใช้ตัวต้านทาน Pull-up ภายนอก — ลดจำนวนอุปกรณ์!

ควบคุม Relay Module DC 12V

Relay Module ที่ใช้กับ Arduino มักเป็นแบบ Active Low — คือเมื่อเขียน LOW ไปที่ขา Control Relay จะทำงาน (ติด) ซึ่งตรงกันข้ามกับที่คิด:

const int RELAY = 7;
void setup() { pinMode(RELAY, OUTPUT); digitalWrite(RELAY, HIGH); } // RELAY ปิดตอนเริ่ม

void relayOn()  { digitalWrite(RELAY, LOW); }  // RELAY ติด (Active Low)
void relayOff() { digitalWrite(RELAY, HIGH); } // RELAY ดับ
Tip: Relay Module ที่เป็น DC 12V ต้องใช้ไฟ 12V แยกจาก Arduino จ่ายให้ขา VCC ของ Relay Module (ไม่ใช่จาก 5V ของ Arduino) — ใช้ไฟ 12V จาก Adapter เดียวกัน โดยต่อ VCC Relay = 12V, GND = GND รวม, IN = ขา Arduino

💰 ราคาประมาณการ

อุปกรณ์ราคา
Arduino Uno R3 (แท้)~300-450 บาท
Arduino Uno R3 (เทียบ)~120-180 บาท
Arduino Nano (เทียบ)~60-100 บาท
ESP8266 NodeMCU~80-150 บาท
ESP32~150-280 บาท
Screw Shield~30-60 บาท
สาย Jumper 40 เส้น~25-50 บาท

🔋 ทางเลือกใช้แบตเตอรี่

Arduino สามารถใช้ Power Bank 5V (ผ่าน USB) หรือ แบต Li-ion 18650 จำนวน 3 ก้อนต่ออนุกรม (~12V) เข้าขา VIN สำหรับงานที่ต้องพกพาหรือไม่มีปลั๊กไฟ

🔋 แบต Li-ion 18650 3S: ~300-500 บาท (รวม charger module) — ใช้ได้ 8-24 ชม. ต่อการชาร์จ

🔋 Power Bank 5V 10000mAh: ~200-400 บาท — ใช้กับ Arduino Uno ผ่าน USB ได้ 10-20 ชม.

⚠️ หมายเหตุ: เนื้อหานี้ค้นคว้าและเรียบเรียงโดย Hermes AI — ข้อมูลทางเทคนิคควรตรวจสอบก่อนนำไปใช้งานจริง

⚠️ เนื้อหาถูกสร้างโดย AI (Hermes AI) — ข้อมูลทางเทคนิคอาจต้องตรวจสอบก่อนนำไปใช้งานจริง