Lab 4
การขับโหลดกระแสไฟฟ้าสูงด้วย Relay
VDO Link : https://www.youtube.com/watch?v=MT8J6Oi-P5M&t=1s
ระดับความยากง่าย
● ปานกลาง
ประมาณเวลาที่ใช้เรียนรู้ + ลงมือทำตาม
● 30 นาที - 1 ชั่วโมง
Prerequisite ต้องผ่านหัวข้อหรือใบงานกิจกรรมใดมาก่อน
● Module Arduino on NETPIE Lab 2 การติดตั้ง Arduino IDE และทดสอบการทำงานเบื้องต้นของ Arduino Mega 2560 (https://netpie.gitbooks.io/netpie-lab-4-arduino-on-netpie/content/test.html)
● Module Arduino on NETPIE Lab 3 การติดต่อ Digital Output (https://netpie.gitbooks.io/netpie-lab-4-arduino-on-netpie/content/lab_3.html)
วัตถุประสงค์
- เพื่อให้เข้าใจการใช้งานและสามารถประยุกต์ใช้งาน Digital Output
- เพื่อให้เข้าใจการใช้งานของรีเลย์ (Relay) เพื่อใช้ในการเปิด - ปิดอุปกรณ์ไฟฟ้า
อุปกรณ์ที่ใช้ในการทดลอง
1.บอร์ด Arduino Mega 2560
2.Relay Module
3.หลอดไฟพร้อมขั้วหลอดที่สามารถขันสายไฟด้วยน็อตได้
4.สายไฟพร้อมปลั๊กไฟ
5.ไขควง
6.Breadboard
7.สายไฟเชื่อมต่อ (Male to Female)
เนื้อหาเชิงทฤษฎี
การทดลองนี้คือการต่อ Digital Output ของบอร์ด Arduino Mega 2560 เข้ากับอุปกรณ์เอาต์พุตเพื่อขับให้ทำงาน โดยในที่นี้เราจะใช้รีเลย์โมดูล (Relay module) เป็นอุปกรณ์เอาต์พุตเพื่อไปขับอุปกรณ์โหลดสูงอื่นๆ อีกทอด เช่น หลอดไฟในบ้าน ดังแสดงในภาพ เป็นต้น
Relay Module
หลักการทำงานวงจรของ Relay module คือ การเปิด - ปิดวงจรด้วยแม่เหล็กไฟฟ้า เมื่อขดลวดเหนี่ยวนำมีกระแสไหลผ่านจะมีคุณสมบัติเป็นแม่เหล็ก สามารถส่งแรงผลักหรือดูดเพื่อเปลี่ยนตำแหน่งสวิตช์ได้ ดังนั้น ใน Relay Module จะประกอบด้วยสองวงจรดังตัวอย่างในรูปข้างล่าง วงจรทางด้านซ้ายเป็นวงจรเพื่อเหนี่ยวนำขดลวดซึ่งจะต่ออยู่กับบอร์ดควบคุม วงจรด้านขวาเป็นวงจรของอุปกรณ์ที่เราต้องการขับ (ในรูปคือหลอดไฟ) โดยมีสวิตช์เปิดปิดวงจรตามแรงดูดของขดลวด หน้าสัมผัสของสวิตช์มี 2 ชนิด คือ
หน้าสัมผัสปกติเปิดหรือ NO (Normally Open) หมายถึง หน้าสัมผัสที่เปิดในภาวะขดลวดไม่เหนี่ยวนำ
หน้าสัมผัสปกติปิดหรือ NC (Normally Closed) หมายถึง หน้าสัมผัสที่ปิดในภาวะขดลวดไม่เหนี่ยวนำ
โดยทั่วไปแล้วหน้าสัมผัส NO คือ ฝั่งที่ทำให้กระแสครบวงจรในฝั่งอุปกรณ์ ดังแสดงในรูปตัวอย่าง นั่นหมายถึงจะต้องมีการจ่ายไฟให้ขดลวดในวงจรด้านซ้าย เพื่อดูดสวิตช์ในวงจรฝั่งขวามาที่หน้าสัมผัส NO วงจรจึงจะปิด และหลอดไฟจะติด การเปิดปิดกระแสผ่านขดลวดในวงจรฝั่งซ้าย กระทำผ่านการควบคุมไฟเลี้ยงทรานซิสเตอร์ เมื่อทำให้เกิดการจ่ายไฟเลี้ยง (VCC) ทรานซิสเตอร์จะนำกระแส ทำให้วงจรด้านขดลวดปิด และขดลวดจะทำหน้าที่เป็นแม่เหล็ก ซึ่งบอร์ด Arduino จะสามารถเข้ามาควบคุม Relay ได้ที่จุด ln1 กล่าวคือถ้าส่งลอจิก High จะไม่มีการจ่ายไฟเลี้ยง เนื่องจากไม่มีความต่างศักย์ ในทางกลับกัน หากส่งลอจิก Low จะทำให้วงจรปิด และสวิตช์จะเปลี่ยนทิศทาง ดังนั้นวงจร Relay ลักษณะนี้จึงเป็นแบบ Active Low
ขั้นตอนการทดลอง
1.ต่อวงจร Relay Module เข้ากับบอร์ด Arduino Mega 2560 และหลอดไฟกระแสสลับตามภาพ
2.เปิดโปรแกรม Arduino IDE ขึ้นมาแล้ว แล้วไปที่ File -> New File
3.เขียน Code ลงไปในโปรแกรมดังนี้
#define LED 13
#define LAMP 7
voidsetup()
{
pinMode(LED,OUTPUT); // setup output
pinMode(LAMP,OUTPUT); // setup output
}
voidloop()
{
digitalWrite(LED,HIGH);
digitalWrite(LAMP,HIGH);
delay(250);
digitalWrite(LED,LOW);
digitalWrite(LAMP,LOW);
delay(250);
}
คำอธิบายโปรแกรม
ส่วน #define เป็นการกำหนดให้เรียกขา 13 ของบอร์ด Arduino Mega 2560 ซึ่งต่ออยู่กับ LED ที่ของบอร์ด ว่า LED และกำหนดให้เรียกขา 7 ของ Arduino Mega 2560 ต่ออยู่กับกับ Relay Module ที่จะไปควบคุมหลอดไฟว่า LAMP
ส่วนภายในฟังก์ชั่น setup() ซึ่งจะทำงานรอบเดียวจากบรรทัดบนไปสู่บรรทัดล่าง ไม่มีการวนซ้ำ ในที่นี้กำหนดให้ขา LED และ LAMP เป็น Digital Output
ส่วนภายในฟังก์ชั่น loop() เริ่มจากสั่งเขียนค่าลอจิก HIGH (5V) ไปยัง ขา LED และขา LAMP จากนั้นประวิงเวลา 250 ms แล้วสั่งให้เขียนค่าลอจิก LOW (0V) ไปที่ขา LED และ LAMP ตามลำดับ และประวิงเวลาอีก 250 ms จากนั้นกลับไปยังคำสั่งแรกในฟังก์ชั่น วนลูปซ้ำเช่นนี้ไปเรื่อยๆ
4.คลิกปุ่ม เพื่อคอมไพล์โค้ดแล้วทำการบันทึกไฟล์เป็น “Relay” ไว้บนDesktop (ดังภาพตัวอย่างด้านล่าง เมื่อคอมไพล์เสร็จสิ้นและไม่มีข้อผิดพลาด ทำการอัพโหลดโดยคลิกปุ่ม
5.สังเกตผลลัพธ์จะเห็นว่า หลอดไฟมีการกระพริบติดและดับเป็นจังหวะพร้อมๆ กันกับหลอด LED ที่อยู่บนบอร์ด
สรุปผล
ในการทดลองนี้เราทดลองใช้งาน Digital Output ของบอร์ด Arduino Mega 2560 โดยต่อบอร์ดขาของบอร์ดเข้ากับ Relay Module และตั้งเป็นโหมดเอาต์พุต จากนั้นต่อ Relay Module เข้ากับวงจรหลอดไฟฟ้า 220 VAC เมื่อเราเขียนโปรแกรมส่งลอจิก HIGH (LOW) ไปยังขาเอาต์พุตดังกล่าว จะเป็นการสั่งควบคุมเปิด (ปิด) หลอดไฟจากบอร์ดได้
แบบฝึกหัดทดสอบความเข้าใจ
- หากต้องการให้บอร์ด Arduino Mega 2560 สามารถเปิดปิดหลอดไฟ 220 VAC นั้นต้องใช้อุปกรณ์อะไรเป็นตัวกลางควบคุมอุปกรณ์ดังกล่าวทำหน้าที่เป็นอินพุตหรือเอาต์พุตของบอร์ด
- เขียนรูปแบบคำสั่งที่ใช้ในการควบคุมการสั่งงาน Relay Module
- หากหลอดไฟที่ต่ออยู่กับ Relay module ที่ขาหมายเลข 10 ของบอร์ดจะสว่างก็ต่อขดลวดไม่อยู่ในสภาวะเหนี่ยวนำ ต้องเขียนคำสั่งใดในการสั่งเปิดไฟ
เฉลย-แบบฝึกหัดทดสอบความเข้าใจ
- Relay Module, เอาต์พุต
- digitalWrite(Pin #,Logic);
- digitalWrite(10,LOW);
VDO Link : https://www.youtube.com/watch?v=MT8J6Oi-P5M&t=1s