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 — ข้อมูลทางเทคนิคควรตรวจสอบก่อนนำไปใช้งานจริง