รหัส Arduino และวิดีโอสำหรับโซลิดสเตตรีเลย์เพื่อควบคุมหลอดไฟ AC หรือโหลด
ในบทช่วยสอนนี้ เราจะสำรวจวิธีการใช้โซลิดสเตตรีเลย์ (SSR) เพื่อควบคุมโหลดไฟฟ้ากระแสสลับหรือไฟฟ้ากระแสตรง เช่น หลอดไฟ โซลิดสเตตรีเลย์ช่วยให้การสลับโหลดไฟฟ้าปลอดภัยและมีประสิทธิภาพโดยใช้สัญญาณแรงดันต่ำจาก Arduino เมื่อจบบทช่วยสอนนี้ คุณจะมีการตั้งค่าที่ใช้งานได้ซึ่งสามารถเปิดและปิดไฟตามช่วงเวลาที่กำหนด

ในการดำเนินโครงการนี้ เราจะใช้ SSR โดยเฉพาะรุ่น G3MB-202P ซึ่งสามารถรองรับโหลดได้สูงสุด 2A รีเลย์จะถูกควบคุมโดยพินดิจิทัลจากบอร์ด Arduino ทำให้เราสามารถส่งสัญญาณเพื่อเปิดหรือปิดโหลดได้ โครงการนี้ไม่เพียงแต่ใช้งานได้จริง แต่ยังเป็นบทนำที่ดีเยี่ยมสำหรับการทำงานกับรีเลย์และ Arduino
สำหรับคำอธิบายภาพโดยละเอียด โปรดดูวิดีโอประกอบ (ในวิดีโอที่ 00:00)
อธิบายฮาร์ดแวร์
ในโครงการนี้ ส่วนประกอบหลักคือโซลิดสเตตรีเลย์ G3MB-202P รีเลย์นี้ช่วยให้คุณควบคุมโหลดแรงดันสูงด้วยสัญญาณแรงดันต่ำ มันทำงานโดยใช้ออปโตไอโซเลเตอร์เพื่อสลับวงจรโหลด โดยให้การแยกทางไฟฟ้าระหว่างด้านควบคุมและด้านโหลด รีเลย์มีสามพิน: DC+, DC- และช่องสัญญาณอินพุตซึ่งเชื่อมต่อกับ Arduino
เมื่อสัญญาณอินพุตต่ำ (0V) รีเลย์จะทำงานและอนุญาตให้กระแสไหลผ่านโหลด ในทางกลับกัน เมื่อสัญญาณอินพุตสูง (5V) รีเลย์จะปิด ตัดกระแสไปยังโหลด กลไกการทริกเกอร์ต่ำนี้จำเป็นสำหรับการจัดการอุปกรณ์แรงดันสูงอย่างปลอดภัยโดยไม่ต้องสัมผัสทางไฟฟ้าโดยตรง
รายละเอียดจากดาต้าชีต
| ผู้ผลิต | Omron |
|---|---|
| หมายเลขชิ้นส่วน | G3MB-202P |
| แรงดันไฟฟ้าลอจิก/IO | 5 V |
| แรงดันไฟฟ้าจ่าย | 5–24 V |
| กระแสเอาต์พุต (ต่อช่อง) | 2 A |
| กระแสสูงสุด (ต่อช่อง) | 4 A |
| คำแนะนำความถี่ PWM | สูงสุด 1 kHz |
| เกณฑ์ลอจิกอินพุต | ต่ำ: 0–1.5 V, สูง: 3–30 V |
| แรงดันตก / RDS(on) / ความอิ่มตัว | สูงสุด 1.5 V |
| ขีดจำกัดความร้อน | –30 ถึง 100 °C |
| แพ็คเกจ | Through-hole |
| หมายเหตุ / รุ่นต่างๆ | มีให้เลือกหลายพิกัดแรงดันไฟฟ้าอินพุต |
- ตรวจสอบให้แน่ใจว่ารีเลย์มีพิกัดเพียงพอสำหรับโหลดที่คุณต้องการควบคุม
- ใช้แผ่นระบายความร้อนที่เหมาะสมหากทำงานใกล้พิกัดกระแสสูงสุด
- ตรวจสอบการเดินสายไฟซ้ำเพื่อหลีกเลี่ยงปัญหาขั้วกลับ
- ใช้ตัวเก็บประจุแยกสัญญาณบนสายจ่ายไฟ
- ระวังอินพุตลอย ตรวจสอบให้แน่ใจว่าสัญญาณควบคุมมีการต่อกราวด์อย่างถูกต้อง
- ยืนยันว่าความถี่ PWM อยู่ในข้อกำหนดของรีเลย์สำหรับการใช้งานสลับ
คำแนะนำการเดินสายไฟ

การเดินสายไฟโซลิดสเตตรีเลย์เป็นเรื่องง่าย เชื่อมต่อขั้วบวกของรีเลย์ (DC+) เข้ากับพิน 5V บน Arduino ขั้วลบ (DC-) ควรเชื่อมต่อกับกราวด์ (GND) ของ Arduino พินอินพุตซึ่งควบคุมรีเลย์ เชื่อมต่อกับพินดิจิทัล 8 บน Arduino พินนี้จะส่งสัญญาณต่ำหรือสูงเพื่อเปิดหรือปิดรีเลย์
ในด้านโหลด เชื่อมต่อสายหนึ่งจากหลอดไฟ AC เข้ากับขั้วเอาต์พุตของรีเลย์ และสายอีกเส้นเข้ากับแหล่งจ่าย AC ตรวจสอบให้แน่ใจว่าใช้ขั้วต่อที่เหมาะสมและยึดการเชื่อมต่อทั้งหมดให้แน่นหนาเพื่อป้องกันอันตรายทางไฟฟ้า
ตัวอย่างโค้ดและคำอธิบาย
นี่คือภาพรวมโดยย่อของโค้ด Arduino เพื่อควบคุมโซลิดสเตตรีเลย์:
int relayPin = 8; // กำหนดพิน 8 สำหรับเอาต์พุตรีเลย์
void setup() {
Serial.begin(9600); // เริ่มต้นการสื่อสารซีเรียล
pinMode(relayPin, OUTPUT); // กำหนดพินรีเลย์เป็นเอาต์พุต
}
ในส่วนนี้ เรากำหนด relayPin เป็น 8 ซึ่งตรงกับพินดิจิทัลที่เชื่อมต่อกับรีเลย์ ฟังก์ชัน setup() เริ่มต้นการสื่อสารซีเรียลและกำหนดพินรีเลย์เป็นเอาต์พุต
void loop() {
digitalWrite(relayPin, LOW); // เปิดรีเลย์
Serial.println("Relay ON"); // แสดงผลไปยังมอนิเตอร์ซีเรียล
delay(2000); // รอ 2 วินาที
}
ในฟังก์ชัน loop() เราจะเปิดรีเลย์โดยตั้งค่า relayPin เป็น LOW ซึ่งจะเปิดใช้งานรีเลย์และอนุญาตให้กระแสไหลไปยังโหลด มีการพิมพ์ข้อความไปยังมอนิเตอร์ซีเรียลเพื่อยืนยัน
digitalWrite(relayPin, HIGH); // ปิดรีเลย์
Serial.println("Relay OFF"); // แสดงผลไปยังมอนิเตอร์ซีเรียล
delay(2000); // รอ 2 วินาที
}
ถัดไป เราปิดรีเลย์โดยตั้งค่า relayPin เป็น HIGH ซึ่งจะหยุดการไหลของกระแสไปยังโหลด อีกครั้ง เราพิมพ์ข้อความไปยังมอนิเตอร์ซีเรียลเพื่อระบุสถานะของรีเลย์ กระบวนการนี้ทำซ้ำอย่างไม่มีที่สิ้นสุด โดยเปิดและปิดรีเลย์ทุกสองวินาที
สำหรับโค้ด Arduino ที่สมบูรณ์ โปรดดูโค้ดเต็มที่โหลดไว้ด้านล่างบทความ
การสาธิต / สิ่งที่คาดหวัง
เมื่ออัปโหลดโค้ดไปยัง Arduino คุณควรเห็นรีเลย์เปิดและปิด โดยเปิดและปิดหลอดไฟที่เชื่อมต่อทุกสองวินาที หากรีเลย์ไม่ทำงานตามที่คาดหวัง ให้ตรวจสอบการเชื่อมต่อสายไฟและตรวจสอบให้แน่ใจว่ารีเลย์ได้รับสัญญาณควบคุมที่ถูกต้อง ปัญหาทั่วไปรวมถึงขั้วกลับในด้านโหลดหรือการเชื่อมต่อที่ไม่ถูกต้องบน Arduino
สำหรับการยืนยันด้วยภาพเพิ่มเติมเกี่ยวกับการทำงานของรีเลย์ โปรดดูวิดีโอ (ในวิดีโอที่ 06:00) ซึ่งแสดงหลอดไฟเปิดและปิดเมื่อรีเลย์ทำงาน
ไทม์สแตมป์วิดีโอ
- 00:00 - แนะนำโครงการ
- 01:30 - การตั้งค่าฮาร์ดแวร์
- 03:15 - คำอธิบายโค้ด
- 05:45 - การสาธิตสด
- 07:00 - บทสรุป
/*
* This is the Arduino code for a Solid State Relay
* to control turning ON or OFF an AC or DC load
* Watch the video https://youtu.be/64NatLeGsaE
* *
* Written by Ahmad Shamshiri for Robojax Video
* Date: January 13, 2018, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
// Introduction to a 5v Solid State relay.
int relayPin = 8;// set pin 8 for relay output
// setup code for Robojax Solid State Relay
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
Serial.println("Robojax Solid State Relay");
pinMode(relayPin, OUTPUT);
}
// loop code for Robojax Solid State Relay
void loop() {
// Turn the relay switch ON (Robojax.com/learn/arduino)
digitalWrite(relayPin, LOW);// set relay pin to low
Serial.println("Relay ON");
delay(2000);
// Turn the relay switch OFF (Robojax.com/learn/arduino)
digitalWrite(relayPin, HIGH);// set relay pin to HIGH
Serial.println("Relay OFF");
delay(2000);
}
แหล่งข้อมูลและเอกสารอ้างอิง
ยังไม่มีทรัพยากรเลย
ไฟล์📁
ไฟล์ Fritzing
-
โมดูลรีเลย์โซลิดสเตตระดับสูง
Solid State High Level Relay Module .fzpz0.04 MB