โค้ด Arduino สำหรับโมดูลรีเลย์ 5V 4 ถึง 16 ช่อง
ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีควบคุมโมดูลรีเลย์ 4 ช่องโดยใช้อาร์ดูอิโน ซึ่งจะช่วยให้คุณจัดการโหลดไฟฟ้ากระแสสลับ เช่น หลอดไฟ พัดลม หรือเครื่องทำความร้อนได้อย่างปลอดภัยและมีประสิทธิภาพ โค้ดที่ให้ไว้นี้สามารถปรับใช้กับโมดูลที่มีช่องมากขึ้นได้ ทำให้มีความยืดหยุ่นสำหรับการใช้งานต่างๆ
ก่อนที่เราจะลงรายละเอียด จำเป็นต้องเข้าใจส่วนประกอบที่เกี่ยวข้องในโปรเจกต์นี้ โมดูลรีเลย์ทำหน้าที่เป็นสวิตช์ที่สามารถควบคุมอุปกรณ์ไฟฟ้าแรงสูงได้ในขณะที่ถูกควบคุมด้วยสัญญาณแรงดันต่ำจากอาร์ดูอิโน รีเลย์แต่ละตัวสามารถเป็นแบบปกติเปิดหรือปกติปิดได้ ทำให้มีความยืดหยุ่นในการทำงานของอุปกรณ์ที่เชื่อมต่อ โปรดดูวิดีโอเพื่อเป็นแนวทางในการมองเห็น (ในวิดีโอที่ 02:15)
อธิบายฮาร์ดแวร์
ส่วนประกอบหลักของโปรเจกต์นี้ประกอบด้วยบอร์ดอาร์ดูอิโนและโมดูลรีเลย์ อาร์ดูอิโนทำหน้าที่เป็นตัวควบคุม ส่งสัญญาณไปยังโมดูลรีเลย์ตามโค้ดที่เราเขียน โมดูลรีเลย์ประกอบด้วยรีเลย์หลายตัวที่สามารถสลับโหลดไฟฟ้ากระแสสลับเปิดและปิดได้ รีเลย์แต่ละตัวมีขั้วต่อสามขั้ว: ปกติปิด (NC), ปกติเปิด (NO) และขั้วร่วม (COM)
เมื่อรีเลย์ถูกกระตุ้น ขั้วร่วมจะเชื่อมต่อกับขั้วปกติเปิด ทำให้กระแสไหลผ่านโหลดได้ นี่คือรีเลย์แบบทริกเกอร์ต่ำ หมายความว่ามันจะทำงานเมื่อได้รับสัญญาณแรงดันต่ำ (0V) และหยุดทำงานเมื่อได้รับสัญญาณแรงดันสูง (5V) การเข้าใจกลไกนี้มีความสำคัญอย่างยิ่งต่อการควบคุมอุปกรณ์ไฟฟ้ากระแสสลับอย่างปลอดภัย
รายละเอียดจากดาต้าชีต
| ผู้ผลิต | ทั่วไป |
|---|---|
| หมายเลขชิ้นส่วน | โมดูลรีเลย์ 4 ช่อง |
| แรงดันลอจิก/IO | 5 โวลต์ |
| แรงดันไฟฟ้าที่จ่าย | 5 โวลต์ |
| กระแสเอาต์พุต (ต่อช่อง) | สูงสุด 10 แอมป์ |
| กระแสสูงสุดชั่วขณะ (ต่อช่อง) | 15 แอมป์ |
| คำแนะนำความถี่ PWM | ไม่มี |
| เกณฑ์แรงดันลอจิกอินพุต | ต่ำ: 0 โวลต์; สูง: 5 โวลต์ |
| แรงดันตก / RDS(on) / ความอิ่มตัว | ไม่มี |
| ขีดจำกัดความร้อน | 85 องศาเซลเซียส |
| แพ็คเกจ | โมดูลรีเลย์มาตรฐาน |
| หมายเหตุ / รุ่นต่างๆ | มีให้เลือก 2, 4, 8 และ 16 ช่อง |
- ตรวจสอบให้แน่ใจว่าไม่เกินพิกัดกระแสของรีเลย์เพื่อป้องกันความเสียหาย
- ใช้แหล่งจ่ายไฟแยกต่างหากสำหรับการใช้งานกระแสสูงเพื่อแยกอาร์ดูอิโน
- รักษาการระบายความร้อนที่เหมาะสมสำหรับรีเลย์ระหว่างการทำงาน
- ตรวจสอบการเดินสายไฟอย่างระมัดระวังเพื่อหลีกเลี่ยงการลัดวงจร
- ใช้ออปโตไอโซเลเตอร์หากจำเป็นเพื่อเพิ่มการป้องกัน
คำแนะนำการเดินสายไฟ

ในการเดินสายไฟโมดูลรีเลย์เข้ากับอาร์ดูอิโน ให้เริ่มต้นโดยเชื่อมต่อพินกราวด์ของโมดูลรีเลย์เข้ากับพินกราวด์บนอาร์ดูอิโน จากนั้นเชื่อมต่อพิน VCC บนโมดูลรีเลย์เข้ากับพิน 5V บนอาร์ดูอิโน สำหรับพินควบคุม ให้เชื่อมต่อพิน IN1, IN2, IN3 และ IN4 ของโมดูลรีเลย์เข้ากับพินดิจิทัล 2, 3, 4 และ 5 บนอาร์ดูอิโนตามลำดับ การตั้งค่านี้ช่วยให้อาร์ดูอิโนสามารถควบคุมสถานะของรีเลย์แต่ละตัวได้
ตรวจสอบให้แน่ใจว่าวางโมดูลรีเลย์บนพื้นผิวที่ฉนวน เนื่องจากเกี่ยวข้องกับโหลดไฟฟ้ากระแสสลับ หากคุณใช้แหล่งจ่ายไฟภายนอกสำหรับรีเลย์ ให้เชื่อมต่อกราวด์ของมันเข้ากับกราวด์ของอาร์ดูอิโนเพื่อให้แน่ใจว่ามีจุดอ้างอิงร่วมกัน ซึ่งมีความสำคัญต่อการทำงานที่ถูกต้องและความปลอดภัย
ตัวอย่างโค้ดและคำอธิบาย
ตัวอย่างโค้ดต่อไปนี้เริ่มต้นจำนวนรีเลย์และตั้งค่าพินควบคุม:
int ch = 4; // จำนวนรีเลย์ที่คุณมี
int relay[]={2,3,4,5}; // หมายเลขพินอาร์ดูอิโนสำหรับรีเลย์
สิ่งนี้กำหนดจำนวนรีเลย์และการเชื่อมต่อพินอาร์ดูอิโนที่เกี่ยวข้อง อาร์เรย์ relay เก็บหมายเลขพินที่ใช้ควบคุมรีเลย์แต่ละตัว

จากนั้น เราตั้งค่าพินในฟังก์ชัน setup():
void setup() {
Serial.begin(9600); // เตรียม Serial monitor
for(i=0; i < ch; i++) {
pinMode(relay[i], OUTPUT); // ตั้งค่าพินที่ i(th) เป็นเอาต์พุต
digitalWrite(relay[i], HIGH); // ปิดรีเลย์
}
Serial.println("Robojax 4 Relay Test");
}
โค้ดนี้เริ่มต้น Serial monitor และตั้งค่าพินรีเลย์แต่ละตัวเป็นเอาต์พุต โดยปิดไว้เป็นค่าเริ่มต้น คำสั่งพิมพ์ผ่าน Serial ยืนยันว่าการตั้งค่าเสร็จสมบูรณ์
ลูปหลักของโปรแกรมควบคุมรีเลย์:
void loop() {
for(int i=0; i < ch; i++) {
Serial.print("Relay "); Serial.print(i+1); Serial.println(" ON");
digitalWrite(relay[i], LOW); // เปิดรีเลย์
delay(wait);
}
for(int i=0; i < ch; i++) {
Serial.print("Relay "); Serial.print(i+1); Serial.println(" OFF");
digitalWrite(relay[i], HIGH); // ปิดรีเลย์
delay(wait);
}
Serial.println("====== loop done ==");
}
ลูปนี้จะเปิดรีเลย์แต่ละตัวทีละตัว รอตามเวลาที่กำหนด จากนั้นปิดในลำดับเดียวกัน เอาต์พุตผ่าน Serial ช่วยตรวจสอบสถานะรีเลย์แบบเรียลไทม์
การสาธิต / สิ่งที่คาดหวัง
เมื่อรันโปรแกรม คุณจะเห็นรีเลย์ทำงานตามลำดับ เปิดและปิดทุกสองวินาที หากการเดินสายถูกต้อง โหลดไฟฟ้ากระแสสลับที่เชื่อมต่อกับรีเลย์จะตอบสนองตามนั้น ควรระวังกระแสไฟฟ้าที่ดึงจาก Arduino หากเปิดรีเลย์หลายตัวพร้อมกัน อาจเกินความสามารถของบอร์ด (ในวิดีโอที่ 13:45)
ไทม์สแตมป์ของวิดีโอ
- 00:00 บทนำ
- 02:15 คำอธิบายฮาร์ดแวร์
- 05:30 คำแนะนำการเดินสาย
- 08:45 อธิบายโค้ด
- 13:45 การสาธิต
++
/*
This is code to control 4 to 16 channel 5V relay modules using Arduino.
* Watch the video on how to use 4 to unlimited relay channels: https://youtu.be/Wbm3MCMgM_s
*/
/*
* This code was written by Ahmad Shamshiri for Robojax.com.
// Written March 26, 2018, at 12:14 in Ajax, Ontario, Canada.
*
*/
int ch = 4;// number of relays you have
int relay[]={2,3,4,5}; // Arduino pin numbers. The same number of relays should be defined here as input pins
int wait = 2000;// delay time
int i=0;
void setup() {
Serial.begin(9600);// prepare Serial monitor
// set pins as output
for(i=0; i < ch; i++)
{
pinMode(relay[i], OUTPUT);// set i(th) pin as output
digitalWrite(relay[i], HIGH); // Turn the relay OFF
}
Serial.println("Robojax 4 Relay Test");
}
void loop() {
for(int i=0; i < ch; i++)
{
Serial.print("Relay "); Serial.print(i+1);Serial.println(" ON");
digitalWrite(relay[i], LOW); // Turn the relay ON
delay(wait);
}// for loop
for(int i=0; i < ch; i++)
{
Serial.print("Relay "); Serial.print(i+1);Serial.println(" OFF");
digitalWrite(relay[i], HIGH); // Turn the relay OFF
delay(wait);
}// for loop
Serial.println("====== loop done ==");
}// loop
pinMode(relay[0], OUTPUT);// connected to relay 1
digitalWrite(relay[0], HIGH); // Turn the relay OFF
pinMode(relay[1], OUTPUT);// connected to relay 2
digitalWrite(relay[1], HIGH); // Turn the relay OFF
pinMode(relay[2], OUTPUT);// connected to relay 3
digitalWrite(relay[2], HIGH); // Turn the relay OFF
pinMode(relay[3], OUTPUT);// connected to relay 4
digitalWrite(relay[3], HIGH); // Turn the relay OFF
สิ่งที่คุณอาจต้องการ
-
อเมซอน
-
อาลีเอ็กซ์เพรสBuy 5V/12V 1, 2, 4, 6, or 8-channel relay modules.click.aliexpress.com
แหล่งข้อมูลและเอกสารอ้างอิง
ยังไม่มีทรัพยากรเลย
ไฟล์📁
ไฟล์ Fritzing
-
omron silid state relay SSR module 4 channel
omron-relay-module-4way-1.fzpz0.02 MB -
4-Channel 5v Relay module
4-Channel 5v Relay Shield.fzpz0.02 MB -
omron solid state relay SSR module- 8 channel
omron-relay-module-8way-1.fzpz0.02 MB -
AC Plug Fritzing Part (Robojax.com)
ACPlug_Robojax.com.fzpz