Arduino Relay 5V 4 ช่อง: วิธีต่อ COM/NO/NC และ High/Low Trigger เปิดปิดไฟ 220V
Arduino Relay 5V 4 ช่อง: วิธีต่อ COM/NO/NC และ High/Low Trigger เปิดปิดไฟ 220V
Arduino Relay 5V 4 ช่อง เป็นอุปกรณ์ที่ช่วยให้ Arduino ควบคุมอุปกรณ์ไฟฟ้าที่ใช้กระแสสูงกว่าปกติได้ เช่น หลอดไฟบ้าน 220V ปั๊มน้ำ หรือมอเตอร์ บอร์ด Relay 4 ช่องนี้รองรับไฟได้ถึง 250V/10A ต่อช่อง พร้อมวงจรแยก (Optocoupler) ป้องกัน Arduino จากไฟกระชาก
ถ้ายังไม่เข้าใจคำว่า COM/NO/NC, Active Low หรือ High/Low Trigger แนะนำอ่าน รีเลย์ Arduino/ESP32 คืออะไร ก่อน แล้วค่อยกลับมาดูตัวอย่างวงจร 4 ช่องในหน้านี้ หรือถ้าต้องการให้ช่วยต่อวงจร/แก้โค้ด ดู บริการรับเขียนโปรแกรม Arduino
อุปกรณ์ที่ต้องเตรียม
- Arduino UNO R3
- บอร์ด Relay 4 ช่อง 5V (High & Low Trigger)
- Power Adapter 9V 2A สำหรับจ่ายไฟให้ Arduino
- หลอดไฟ LED E27 7W พร้อมขั้วหลอด E27
- สายไฟ AC พร้อมปลั๊ก 2*0.75 ยาว 1.5-3m
- บอร์ดทดลอง Breadboard MB-102 (ถ้าต้องการต่อวงจรเพิ่มเติม)
- สายจัมเปอร์ ผู้-ผู้ และ ผู้-เมีย ยาว 20cm
วงจรเชื่อมต่อ Arduino กับ Relay Module
การต่อวงจรเริ่มจากเชื่อมสายไฟจาก Arduino ไปยังบอร์ด Relay ตามนี้
| Arduino | ขา Relay Module |
|---|---|
| 5V | DC+ |
| GND | DC- |
| ขา 2 | IN1 |
| ขา 3 | IN2 |
| ขา 4 | IN3 |
| ขา 5 | IN4 |
ส่วนวงจร Power สำหรับหลอดไฟ 220V ให้ต่อที่ขา COM และ NO ของ Relay ช่องที่ 1 ดังนี้
- สายไฟ AC ฝั่ง Line (สายสีน้ำตาลหรือสีร้อน) ต่อเข้า COM1
- สายไฟ AC ฝั่ง Neutral (สายสีฟ้าหรือสีเย็น) ต่อเข้าหลอดไฟ
- สายจากหลอดไฟ ต่อเข้า NO1
สำคัญ: หลีกเลี่ยงไม่ให้สายไฟ AC 220V สัมผัสกับสายสัญญาณของ Arduino หรือบอร์ด Relay ตรงจุดเชื่อมต่อทั้งหมด เพราะอาจทำให้ Arduino เสียหายได้
ขา COM NO NC คืออะไร
บอร์ด Relay ทุกช่องจะมีขา 3 ตัวสำหรับต่อโหลด
- COM (Common) ขากลาง ใช้ต่อกับแหล่งจ่ายไฟ
- NO (Normal Open) ขาที่จะต่อวงจรเมื่อรีเลย์ทำงาน เหมาะสำหรับต่อโหลดที่ต้องการให้ทำงานตอนสั่งเปิด
- NC (Normal Closed) ขาที่ต่อวงจรอยู่ตอนรีเลย์ไม่ทำงาน จะขาดออกเมื่อรีเลย์ทำงาน
ทำความเข้าใจโหมด Trigger บน Relay Module
บอร์ด Relay 4 ช่องมีจัมป์สีเหลืองให้เลือกตั้งได้ 3 โหมด
โหมด Active HIGH (H)
ตั้งจัมป์ไว้ที่ฝั่ง H ทั้งหมด รีเลย์จะทำงานเมื่อ Arduino ส่งสัญญาณ HIGH มาที่ขา IN เมื่อได้รับ HIGH รีเลย์จะสลับจาก NC ไปเป็น NO ทำให้วงจรหลอดไฟติด รอ 10 วินาที แล้ว Arduino ส่งสัญญาณ LOW กลับมา รีเลย์ก็สลับกลับไปที่ NC ทำให้หลอดไฟดับ 2 วินาที
โหมด Hybrid (H+L)
ตั้งจัมป์ครบทั้งฝั่ง H และฝั่ง L รีเลย์จะสลับได้ทั้งเมื่อได้รับ HIGH และ LOW ทำให้ควบคุมอุปกรณ์ได้หลายตัวพร้อมกันตามลอจิกที่ส่งออกไป
โหมด Active LOW (L)
ตั้งจัมป์ไว้ที่ฝั่ง L ทั้งหมด รีเลย์จะทำงานเมื่อ Arduino ส่งสัญญาณ LOW มาที่ขา IN การทำงานจะตรงกันข้ามกับโหมด HIGH คือเมื่อได้รับ LOW รีเลย์จะสลับจาก NC ไปเป็น NO ทำให้หลอดไฟติด 2 วินาที แล้วรอ Arduino ส่ง HIGH กลับมาอีก 10 วินาที
โค้ด Arduino ควบคุม Relay
เนื่องจากบทความต้นทางไม่มีโค้ดมา เลยเขียนโค้ดตัวอย่างให้ copy ไปใช้ได้เลย โค้ดนี้จะแสดงการใช้งานทั้ง 3 โหมด แบ่งเป็น 3 ส่วน เลือกส่วนที่ต้องการใช้ได้ตามโหมดจัมป์ที่ตั้งไว้
// กำหนดขา Relay ที่ต่อกับ Arduino
const int relay1 = 2;
const int relay2 = 3;
const int relay3 = 4;
const int relay4 = 5;
void setup() {
// ตั้งค่าขาเป็น Output
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
// ปิดรีเลย์ทั้งหมดตอนเริ่มต้น (ขึ้นอยู่กับโหมดจัมป์)
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
Serial.begin(9600);
}
void loop() {
// ===== โหมด Active HIGH =====
// หลอดไฟติด 10 วินาที แล้วดับ 2 วินาที
Serial.println("Active HIGH: Relay ON 10s");
digitalWrite(relay1, HIGH); // สั่งให้รีเลย์ทำงาน
delay(10000); // รอ 10 วินาที
Serial.println("Active HIGH: Relay OFF 2s");
digitalWrite(relay1, LOW); // ปิดรีเลย์
delay(2000); // รอ 2 วินาที
// ===== โหมด Hybrid =====
// สั่ง Relay1 (HIGH) และ Relay2 (LOW trigger) พร้อมกัน
Serial.println("Hybrid: Relay1 ON, Relay2 OFF");
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH); // ถ้าจัมป์ฝั่ง L ตั้งไว้ รีเลย์ฝั่งนั้นจะทำงานเมื่อได้รับ LOW
delay(5000);
Serial.println("Hybrid: Relay1 OFF, Relay2 ON");
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW); // ถ้าจัมป์ฝั่ง L ตั้งไว้ รีเลย์ฝั่งนั้นจะทำงานเมื่อได้รับ LOW
delay(5000);
// ===== โหมด Active LOW =====
// หลอดไฟติด 2 วินาที แล้วดับ 10 วินาที (ลอจิกกลับกัน)
Serial.println("Active LOW: Relay ON 2s");
digitalWrite(relay1, LOW); // LOW trigger ทำให้รีเลย์ทำงาน
delay(2000);
Serial.println("Active LOW: Relay OFF 10s");
digitalWrite(relay1, HIGH); // HIGH trigger ทำให้รีเลย์หยุดทำงาน
delay(10000);
}
จุดที่ต้องปรับตามโหมดจริง:
- ถ้าใช้แค่โหมด Active HIGH อย่างเดียว ให้ลบส่วน Hybrid และ Active LOW ออก แล้วเอาแต่ส่วนแรกไปใช้
- ถ้าใช้โหมด Active LOW ต้องสลับลอจิกกลับ เช่น
digitalWrite(relay1, LOW)แทน HIGH - ขา Arduino ที่ใช้ (2-5) สามารถเปลี่ยนได้ตามความเหมาะสม
วิธี Upload โค้ดลงบอร์ด
- เปิดโปรแกรม Arduino IDE แล้ววางโค้ดด้านบนลงไป
- ไปที่ Tools → Port เลือก Port ที่บอร์ดเชื่อมต่อ
- ไปที่ Tools → Board เลือก Arduino UNO
- กดปุ่ม Upload (ลูกศรขวา) รอจนขึ้น Done uploading
[image: ภาพหน้าจอ Arduino IDE แสดงการเลือก Port และ Board จากเมนู Tools พร้อมป้ายบอร์ด UNO และ COM3]
วิดีโออ้างอิง
สรุป
Relay Module 5V 4 ช่องเป็นอุปกรณ์ที่ทำให้ Arduino ควบคุมไฟ AC 220V ได้อย่างปลอดภัย เพราะมีวงจรแยก (Optocoupler) ป้องกันไฟกระชากกลับมาเสียหายบอร์ด การเลือกโหมด High/Low Trigger ขึ้นอยู่กับลอจิกที่ Arduino ส่งออกไป และการตั้งจัมป์บนบอร์ดเป็นตัวกำหนดว่ารีเลย์จะตอบสนองกับสัญญาณไหน ถ้าเข้าใจหลักการนี้ก็นำไปประยุกต์ใช้กับงาน Home Automation ได้ไม่ยาก
อยากทำโปรเจคแบบนี้?
รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน
หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก
จ้างทำโปรเจคเลย