project เปิดปิดไฟด้วยแสง
project เปิดปิดไฟด้วยแสง
วิธีการใช้รีเลย์ 5V บน Arduino
Arduino เป็นไมโครคอนโทรลเลอร์ตระกูลต้นแบบที่ทำงานบนไฟ DC ขนาดเล็ก รีเลย์เป็นอุปกรณ์ที่ช่วยให้ไมโครคอนโทรลเลอร์ (หรือแผงควบคุมไมโครคอนโทรลเลอร์) เช่น Arduino เพื่อเปิดหรือปิดเครื่องใช้ในครัวเรือนต่างๆเช่นมอเตอร์ไฟเครื่องทำน้ำอุ่นโทรทัศน์และพัดลมเป็นต้นวันนี้ Arduino กำลังถูกนำมาใช้เพื่อการใช้งานที่หลากหลายเช่นการควบคุม LEDsการตรวจสอบอุณหภูมิการบันทึกข้อมูลและการเปิดมอเตอร์ ฯลฯ งานสำคัญอีกอย่างหนึ่งที่ Arduino สามารถทำได้คือการควบคุมรีเลย์ 5V เพื่อใช้งานเครื่องใช้ไฟฟ้าแรงสูงและอุปกรณ์ต่างๆ .ตระกูล Arduino ตระกูลไมโครคอนโทรลเลอร์เช่นUNO, Nano และ Mega เป็นต้นสามารถตั้งโปรแกรมเพื่อควบคุมรีเลย์ 5V แบบง่ายๆคือเปิดหรือปิดการทำงานเมื่อกดปุ่มอ่านค่าอุณหภูมิจากเทอร์มิสเตอร์หรือเพียงแค่ตั้งค่า จับเวลาที่กำหนดไว้ล่วงหน้า
ในโครงการนี้เราจะเห็นวงจรง่ายๆที่ Arduino UNO จะควบคุมรีเลย์ 5V ซึ่งจะเป็นหลอดไฟ
หมายเหตุ: เราได้ใช้ Arduino UNO ในโครงการนี้เนื่องจากเป็นที่นิยมมากกว่าบอร์ด Arduino อื่น ๆ และผู้เริ่มต้นใช้อุปกรณ์อิเล็กทรอนิกส์สามารถใช้งานได้ง่าย
หากคุณมีบอร์ดอื่น ๆ เช่น Arduino Nano หรือ Arduino Mega คุณสามารถใช้งานได้โดยไม่ต้องยุ่งยากใด ๆ
ข้อควรระวัง: เราจะเชื่อมต่อ 240V แหล่งจ่ายไฟ (หรือ 110V ขึ้นอยู่กับที่ที่คุณอยู่) ไปยังโมดูลรีเลย์ 5V เพื่อเปิดหลอดไฟ
คุณควรระมัดระวังและระมัดระวังเมื่อใช้แหล่งจ่ายไฟ
หากคุณมีข้อสงสัยน้อยที่สุดเกี่ยวกับการเดินสายไฟโปรดอย่าลังเลที่จะรับความช่วยเหลือจากมืออาชีพ
แผนภูมิวงจรรวม
ให้เราดูแผนภาพวงจรสำหรับโครงการ
แม้ว่าเราจะใช้โมดูลรีเลย์ 5 โวลต์การเชื่อมต่อในแผนภาพวงจรนี้จะอธิบายถึงการตั้งค่าทั้งหมด
ส่วนประกอบที่จำเป็น
1.Arduino UNO (หรือบอร์ด Arduino อื่น ๆ )
2.รีเลย์ 5V
3.1N4007 ไดโอด
4.BC547 - ทรานซิสเตอร์ NPN
5.LED สีแดง (สามารถใช้เป็นไฟ LED เปิดเครื่อง)
6.LED สีเขียว (สามารถใช้เป็น LED รีเลย์ ON)
7.ตัวต้านทานโอห์ม 2 ตัว x 1 กิโลวัตต์ (1/4 วัตต์ - สำหรับไฟ LED สีแดงและสีเขียว)
8.โคมไฟ
9.สายไฟสำหรับเชื่อมต่อส่วนประกอบแรงดันไฟฟ้ากระแสตรง
10.สายไฟสำหรับเชื่อมต่อสายไฟ AC และโคมไฟ
คำอธิบายวงจร
ให้เราดูวิธีการออกแบบวงจร สิ่งแรกคือเราใช้รีเลย์ 5V ในโครงการนี้ ช่วยให้ Arduino สามารถเปิดเครื่องรีเลย์ได้โดยตรง ถ้าคุณใช้รีเลย์12V เช่นเดียวกับที่เราใช้ในโครงการ Arduino Relay Control นี้คุณต้องใช้แหล่งจ่ายไฟแยกต่างหากสำหรับรีเลย์
มาถึงการออกแบบของวงจรมันเป็นเรื่องง่ายมากที่เราใช้โมดูลรีเลย์ 5V และไม่ใช่ส่วนประกอบแต่ละชิ้น แม้ว่าแผนภาพวงจรจะอธิบายถึงการเชื่อมต่อโดยละเอียด แต่ในทางปฏิบัติเราไม่จำเป็นต้องทำการเชื่อมต่อทั้งหมด
โมดูลรีเลย์ส่วนใหญ่ (ไม่ว่าจะเป็น 5V หรือ 12V) จะมาพร้อมกับการเชื่อมต่อดังกล่าวและด้วยเหตุนี้สิ่งที่คุณต้องมีคือจ่ายพลังงานให้กับโมดูลรีเลย์เช่น 5V และ GND และเชื่อมต่อสัญญาณควบคุมจาก Arduino เพื่อควบคุมขาบนบอร์ดรีเลย์
มาถึงส่วนที่บรรทุกนั่นคือหลอดไฟสายไฟร้อนจากแหล่งจ่ายไฟจะเชื่อมต่อกับขั้วหนึ่งของหลอดไฟ เทอร์มินอลอื่น ๆ ของหลอดไฟเชื่อมต่อกับช่องเปิด NO (ปกติ) ของรีเลย์ 5V สุดท้ายสายไฟที่เป็นกลางจากสายไฟเชื่อมต่อเข้ากับช่องเสียบ Common (COMM) ของรีเลย์
ใช้เซ็นเซอร์วัดแสงขนาดเล็กในรูปแบบ LDR (Light Dependent Resistor) เพื่อเปิดหรือปิดไฟโดยอัตโนมัติ เอาท์พุทของเซ็นเซอร์ LDR ให้กับขาอินพุท A0
คำอธิบายคอมโพเนนต์
ถ่ายทอด
ข้อดีของการใช้รีเลย์ 5V ในโครงการนี้คือแหล่งจ่ายไฟสำหรับรีเลย์สามารถรับได้โดยตรงจากคณะกรรมการ Arduino UNO เอง ตอนนี้ให้เราดูข้อมูลเบื้องต้นเกี่ยวกับการถ่ายทอดข้อมูล รีเลย์เป็นสวิทช์ที่ทำหน้าที่เป็นตัวเชื่อมต่อระหว่างไมโครคอนโทรลเลอร์และโหลด AC
รีเลย์แบบ Single Pole - Single Throw (SPST) เช่นเดียวกับที่ใช้ในโครงการนี้ประกอบด้วย 5 เทอร์มินัล: 5V, GND, Normally Open (NO), Normal (NC) และ Common (COMM) เนื่องจากเราจำเป็นต้องควบคุมการถ่ายทอดนี้ด้วยความช่วยเหลือของ Arduino จึงใช้ทรานซิสเตอร์กับขาอื่น ๆ ที่เรียกว่า Control Pin บน Relay Modulev
การทำงานของโครงการ
โครงการง่ายๆที่ Arduino UNO ควบคุมการถ่ายทอด 5V ได้อธิบายไว้ที่นี่ การทำงานของโครงการนี้ขึ้นอยู่กับการทำงานของRelay และความสามารถของ Arduino ในการควบคุมการรีเลย์ ขอหารือเกี่ยวกับการทำงานของโครงการ
ดังที่ได้กล่าวมาก่อนหน้านี้โดยเชื่อมต่อ Arduino กับโมดูลรีเลย์ 5V เราตั้งใจจะใช้โหลด AC เช่นหลอดไฟ แทนที่จะใช้โดยตรงเราได้ออกแบบโปรแกรมขนาดเล็กที่ใช้ LDR เพื่อตรวจจับความเข้มของแสงและเปิดหรือปิดการถ่ายทอดโดยอัตโนมัติ
เอาต์พุตจาก LDR จะอยู่ในช่วง 80 - 90 (ช่วงคือ 0 - 255) ภายใต้สภาพแสงปกติ เมื่อสภาพแสงมืด (สามารถทำได้โดยการครอบคลุม LDR ด้วยมือ) ผลลัพธ์จาก LDR จะเลื่อนไปที่ 130 - 140 สภาวะนี้สามารถใช้เพื่อเรียกใช้รีเลย์ 5V และเปิดไฟ
CODE
const int relay=8; | |
const int Ainput=A0; | |
int ldrValue = 0; | |
int range = 0; | |
void setup() | |
{ | |
pinMode(relay,OUTPUT); | |
digitalWrite(relay,HIGH); // My Relay is an active LOW Relay. | |
Serial.begin(9600); | |
} | |
void loop() | |
{ | |
ldrValue = analogRead(Ainput); | |
range = map(ldrValue, 0, 1023, 0, 255); | |
Serial.println(range); | |
if(range>125) | |
digitalWrite(relay,LOW); | |
else | |
digitalWrite(relay,HIGH); | |
} |