- ส่วนประกอบที่ใช้:
- เทคนิคการตรวจจับการข้ามศูนย์
- TRIAC ทำงาน
- ออปโตคัปเปลอร์
- แผนภูมิวงจรรวม:
- การเขียนโปรแกรม Arduino สำหรับ AC Light Dimmer:
- การทำงานของวงจร Arduino Lamp Dimmer
ในครัวเรือนของเราเครื่องใช้ไฟฟ้าส่วนใหญ่ใช้พลังงานจากแหล่งจ่ายไฟ AC เช่นไฟทีวีและพัดลมเป็นต้นเราสามารถเปิด / ปิดแบบดิจิทัลได้หากจำเป็นโดยใช้ Arduino และรีเลย์โดยสร้างการตั้งค่าระบบอัตโนมัติในบ้าน แต่จะเป็นอย่างไรหากเราต้องควบคุมพลังงานของอุปกรณ์เหล่านั้นเช่นหรี่ไฟ AC หรือควบคุมความเร็วของพัดลม ในกรณีนั้นเราต้องใช้เทคนิคการควบคุมเฟสและสวิตช์แบบคงที่เช่น TRIAC เพื่อควบคุมเฟสของแรงดันไฟฟ้ากระแสสลับ
ดังนั้นในการกวดวิชานี้เราจะได้เรียนรู้เกี่ยวกับหรี่ไฟ AC ใช้ Arduino และ TRIAC ที่นี่ TRIAC ใช้เพื่อเปลี่ยนหลอดไฟ AC เนื่องจากอุปกรณ์นี้เป็นอุปกรณ์สวิตชิ่งไฟฟ้าแบบอิเล็กทรอนิกส์ที่รวดเร็วซึ่งเหมาะที่สุดสำหรับการใช้งานเหล่านี้ ติดตามบทความฉบับสมบูรณ์สำหรับรายละเอียดฮาร์ดแวร์และการเขียนโปรแกรมของโครงการนี้ ตรวจสอบบทช่วยสอนก่อนหน้าของเราเกี่ยวกับLight Dimming:
- IR Remote Controlled TRIAC Dimmer Circuit
- Arduino LED Dimmer โดยใช้ PWM
- วงจรหรี่ไฟ LED 1 วัตต์
- ไฟ LED หรี่โดยใช้ไมโครคอนโทรลเลอร์ ATmega32
ส่วนประกอบที่ใช้:
- Arduino UNO-1
- MCT2E ออปโตคัปเปลอร์ -1
- MOC3021 ออปโตคัปเปลอร์ -1
- BT136 TRIAC-1
- (12-0) V, 500mA ขั้นตอนลงหม้อแปลง -1
- ตัวต้านทาน 1K, 10K, 330ohm
- โพเทนชิออมิเตอร์ 10K
- ที่วาง AC พร้อมโคมไฟ
- สายไฟ AC
- จัมเปอร์
ก่อนที่จะดำเนินการต่อไปเราจะเรียนรู้เกี่ยวกับการข้ามศูนย์ TRIAC และออปโตคัปเปลอร์
เทคนิคการตรวจจับการข้ามศูนย์
ในการควบคุมแรงดันไฟฟ้ากระแสสลับสิ่งแรกที่เราต้องทำคือตรวจจับการข้ามศูนย์ของสัญญาณ AC ในอินเดียความถี่ของสัญญาณ AC คือ 50 HZ และตามธรรมชาติสลับกันไป ดังนั้นทุกครั้งที่สัญญาณมาที่จุดศูนย์เราจะต้องตรวจจับจุดนั้นและหลังจากนั้นจึงเรียก TRIAC ตามความต้องการพลังงาน จุดตัดเป็นศูนย์ของสัญญาณ AC แสดงด้านล่าง:
TRIAC ทำงาน
TRIAC เป็นสวิตช์ AC สามขั้วซึ่งสามารถถูกกระตุ้นโดยสัญญาณพลังงานต่ำที่ขั้วประตู ใน SCR จะดำเนินการในทิศทางเดียวเท่านั้น แต่ในกรณีของ TRIAC สามารถควบคุมกำลังได้ทั้งสองทิศทาง นี่เรากำลังใช้BT136 TRIAC สำหรับลดแสงโคมไฟ ACวัตถุประสงค์
ดังแสดงในรูปด้านบน TRIAC จะถูกเรียกที่มุมยิง 90 องศาโดยใช้สัญญาณพัลส์ประตูเล็ก ๆ กับมัน เวลา“ t1” คือเวลาหน่วงเวลาที่เราต้องให้ตามข้อกำหนดการลดแสงของเรา ตัวอย่างเช่นในกรณีนี้เมื่อมุมการยิงเท่ากับ 90 เปอร์เซ็นต์ดังนั้นกำลังขับจะลดลงครึ่งหนึ่งด้วยและด้วยเหตุนี้หลอดไฟจะเรืองแสงด้วยความเข้มครึ่งหนึ่ง
เรารู้ว่าความถี่ของสัญญาณ AC คือ 50 Hz ที่นี่ ดังนั้นช่วงเวลาจะเป็น 1 / f ซึ่งจะเป็น 20ms ดังนั้นครึ่งรอบจะเป็น 10ms หรือ 10,000 microseconds ดังนั้นสำหรับการควบคุมพลังงานของหลอดไฟ AC ของเราช่วงของ“ t1” สามารถเปลี่ยนแปลงได้ตั้งแต่ 0-10000 ไมโครวินาที เรียนรู้เพิ่มเติมเกี่ยวกับ Triac และการทำงานที่นี่
ออปโตคัปเปลอร์
Optocoupler เรียกอีกอย่างว่าOptoisolato r ใช้เพื่อรักษาการแยกระหว่างวงจรไฟฟ้าสองวงจรเช่นสัญญาณ DC และ AC โดยทั่วไปจะประกอบด้วย LED ที่ปล่อยแสงอินฟราเรดและตัวรับแสงซึ่งตรวจจับได้ ที่นี่เราใช้ออปโตคัปเปลอร์ MOC3021เพื่อควบคุมหลอดไฟ AC จากสัญญาณไมโครคอนโทรลเลอร์ซึ่งเป็นสัญญาณ DC ก่อนหน้านี้เราใช้ออปโตคัปเปลอร์ MOC3021 ตัวเดียวกันในวงจรหรี่ไฟ TRIAC เรียนรู้เพิ่มเติมเกี่ยวกับ Optocouplers และประเภทของอุปกรณ์ได้ตามลิงค์
แผนภูมิวงจรรวม:
แผนภาพวงจรสำหรับAC Light Dimmer แสดงไว้ด้านล่าง:
แผนภาพการเชื่อมต่อ TRIAC และ Optocoupler:
ฉันบัดกรีวงจร TRIAC และ Optocoupler MOC3021 บนบอร์ด perf หลังจากบัดกรีแล้วจะมีลักษณะดังนี้:
ฉันยังบัดกรีออปโตคัปเปลอร์ MCT2Eบนบอร์ด perf สำหรับเชื่อมต่อกับ Transformer สำหรับแหล่งจ่ายไฟ AC:
และวงจรที่สมบูรณ์สำหรับArduino Lamp Dimmerจะมีลักษณะดังนี้:
การเขียนโปรแกรม Arduino สำหรับ AC Light Dimmer:
หลังจากตั้งค่าฮาร์ดแวร์เสร็จเรียบร้อยแล้วก็ถึงเวลาตั้งโปรแกรม Arduino โปรแกรมที่สมบูรณ์แบบด้วยการสาธิตวิดีโอจะได้รับในตอนท้าย ที่นี่เราได้อธิบายรหัสทีละขั้นตอนเพื่อการเข้าใจที่ดีขึ้น
ในขั้นตอนแรกประกาศตัวแปรส่วนกลางทั้งหมดซึ่งจะใช้ตลอดทั้งรหัส ที่นี่ TRIAC เชื่อมต่อกับพิน 4 ของ Arduino จากนั้นจึงประกาศdim_valเพื่อเก็บค่าของขั้นตอนการลดแสงที่เราจะใช้ในโปรแกรม
หลอด int = 4; int dim_val = 0;
ถัดไปฟังก์ชั่น การตั้งค่า ภายในจะประกาศขา LAMP เป็นเอาต์พุตและกำหนดค่าการขัดจังหวะเพื่อตรวจจับการข้ามศูนย์ ที่นี่เราได้ใช้ฟังก์ชันที่เรียกว่าattachInterruptซึ่งจะกำหนดค่า Digital Pin 2 ของ Arduino เป็นการขัดจังหวะภายนอกและจะเรียกฟังก์ชันชื่อzero_crossเมื่อตรวจพบการขัดจังหวะที่พิน
การตั้งค่าเป็นโมฆะ () {pinMode (LAMP, OUTPUT); attachInterrupt (digitalPinToInterrupt (2), zero_cross, CHANGE); }
ภายใน ลูป ไม่มีที่สิ้นสุดอ่านค่าอนาล็อกจากโพเทนชิออมิเตอร์ซึ่งเชื่อมต่อที่ A0 จากนั้นแมปกับช่วงค่า (10-49) หากต้องการทราบสิ่งนี้เราต้องทำการคำนวณเล็กน้อย ก่อนหน้านี้ฉันได้บอกไปแล้วว่าแต่ละครึ่งรอบนั้นเทียบเท่ากับ 10,000 ไมโครวินาที ดังนั้นให้เราต้องควบคุมการลดแสงใน 50 ขั้นตอน (ซึ่งเป็นค่าที่กำหนดเองคุณสามารถเปลี่ยนได้) ฉันทำตามขั้นตอนต่ำสุดเป็น 10 ไม่ใช่ศูนย์เพราะ 0-9 ขั้นตอนให้กำลังขับเท่ากันโดยประมาณและไม่แนะนำให้ใช้จำนวนขั้นสูงสุดในทางปฏิบัติ ดังนั้นฉันได้ก้าวสูงสุดเป็น 49
จากนั้นแต่ละขั้นตอนสามารถคำนวณได้เป็น 10,000 / 50 = 200 microseconds สิ่งนี้จะถูกใช้ในส่วนถัดไปของโค้ด
โมฆะลูป () {ข้อมูล int = analogRead (A0); int data1 = แผนที่ (ข้อมูล 0, 1023,10,49); dim_val = data1; }
ในขั้นตอนสุดท้ายกำหนดค่าการขัดจังหวะที่ขับเคลื่อนด้วยฟังก์ชั่นzero_crossที่นี่สามารถคำนวณเวลาลดแสงได้โดยการคูณเวลาของแต่ละขั้นตอนโดยไม่มี จำนวนก้าว จากนั้นหลังจากเวลาหน่วงนี้ TRIAC สามารถถูกกระตุ้นโดยใช้พัลส์สูงขนาดเล็ก 10 ไมโครวินาทีซึ่งเพียงพอที่จะเปิด TRIAC
เป็นโมฆะ zero_cross () {int dimming_time = (200 * dim_val); delayMicroseconds (เวลาลดแสง); digitalWrite (หลอดสูง); delayMicroseconds (10); digitalWrite (LAMP, LOW); }
การทำงานของวงจร Arduino Lamp Dimmer
ด้านล่างนี้เป็นภาพแสดงสามขั้นตอนของการลดแสงหลอดไฟ AC โดยใช้ Arduino และ TRIAC
1. ขั้นตอนการลดแสงต่ำ
2. ขั้นตอนการหรี่แสงปานกลาง
3. ขั้นตอนการลดแสงสูงสุด:
นี่คือวิธีการสร้างวงจร AC Light Dimmer อย่างง่ายดายโดยใช้ TRIAC และออปโตคัปเปลอร์ วิดีโอการทำงานและArduino ไฟหรี่รหัสได้รับด้านล่าง
/>