- ส่วนประกอบที่จำเป็น
- การทำงานของการควบคุมพัดลม AC โดยใช้ Arduino
- 1. เครื่องตรวจจับ Zero-Crossing
- 2. วงจรควบคุมมุมเฟส
- 3. โพเทนชิออมิเตอร์เพื่อควบคุมความเร็วพัดลม
- 4. หน่วยสร้างสัญญาณ PWM
- แผนภูมิวงจรรวม
- การเขียนโปรแกรม Arduino สำหรับการควบคุมความเร็วพัดลม AC
คำเตือน!! แผนภาพวงจรที่กล่าวถึงในโครงการนี้มีวัตถุประสงค์เพื่อการศึกษาเท่านั้น โปรดทราบว่าการทำงานกับแรงดันไฟ 220 โวลต์ต้องใช้ความระมัดระวังเป็นอย่างยิ่งและควรปฏิบัติตามขั้นตอนด้านความปลอดภัย อย่าสัมผัสส่วนประกอบหรือสายไฟใด ๆ เมื่อวงจรกำลังทำงาน
การเปิดหรือปิดเครื่องใช้ไฟฟ้าภายในบ้านทำได้ง่ายโดยใช้สวิตช์หรือโดยใช้กลไกควบคุมบางอย่างเหมือนกับที่เราทำในโครงการ Home Automation ที่ใช้ Arduino จำนวนมาก แต่มีแอปพลิเคชั่นมากมายที่เราจำเป็นต้องควบคุมไฟฟ้ากระแสสลับบางส่วนเช่นเพื่อควบคุมความเร็วของพัดลมหรือความเข้มของหลอดไฟ ในกรณีนี้จะใช้เทคนิค PWM ดังนั้นเราจะเรียนรู้วิธีใช้ Arduino ที่สร้าง PWM เพื่อควบคุมความเร็วพัดลม AC ด้วย Arduino
ในโครงการนี้เราจะแสดงให้เห็นถึงArduino AC ควบคุมความเร็วพัดลมใช้ TRIAC วิธีการควบคุมเฟสของสัญญาณ AC ที่นี่ใช้เพื่อควบคุมความเร็วพัดลม AC โดยใช้สัญญาณ PWM ที่สร้างโดย Arduino ในบทช่วยสอนก่อนหน้านี้เราควบคุมความเร็วพัดลม DC โดยใช้ PWM
ส่วนประกอบที่จำเป็น
- Arduino UNO
- 4N25 (เครื่องตรวจจับการข้ามศูนย์)
- โพเทนชิออมิเตอร์ 10k
- MOC3021 0pto-coupler
- (0-9) V, 500 mA Stepdown Transformer
- BT136 TRIAC
- พัดลม AC ตามแนวแกน 230 VAC
- การเชื่อมต่อสายไฟ
- ตัวต้านทาน
การทำงานของการควบคุมพัดลม AC โดยใช้ Arduino
การทำงานสามารถแบ่งออกเป็นสี่ส่วนต่างๆ มีดังต่อไปนี้
1. Zero-Crossing Detector
2. Phase Angle Controlling circuit
3. Potentiometer เพื่อควบคุมปริมาณความเร็วพัดลม
4. วงจรสร้างสัญญาณ PWM
1. เครื่องตรวจจับ Zero-Crossing
แหล่งจ่ายไฟ AC ที่เราได้รับในบ้านคือ 220v AC RMS, 50 HZ สัญญาณ AC นี้มีลักษณะสลับกันและเปลี่ยนขั้วเป็นระยะ ในช่วงครึ่งแรกของทุกรอบจะไหลไปในทิศทางเดียวถึงแรงดันไฟฟ้าสูงสุดแล้วลดลงเหลือศูนย์ จากนั้นในครึ่งรอบถัดไปมันจะไหลในทิศทางอื่น (ลบ) ไปยังแรงดันไฟฟ้าสูงสุดจากนั้นก็มาที่ศูนย์อีกครั้ง สำหรับการควบคุมความเร็วของพัดลม AC จำเป็นต้องสับหรือควบคุมแรงดันไฟฟ้าสูงสุดของทั้งสองรอบครึ่ง สำหรับสิ่งนี้เราต้องตรวจจับจุดศูนย์ที่สัญญาณจะถูกควบคุม / สับ จุดบนเส้นโค้งแรงดันไฟฟ้าที่แรงดันไฟฟ้าที่มีการเปลี่ยนแปลงทิศทางนี้เรียกว่าแรงดันศูนย์ข้าม
วงจรที่แสดงด้านล่างคือวงจรตรวจจับการข้ามศูนย์ซึ่งใช้เพื่อให้ได้จุดข้ามศูนย์ ขั้นแรกให้แรงดันไฟฟ้า 220V AC ลดลงเป็น 9V AC โดยใช้หม้อแปลงแบบ step-down จากนั้นจะป้อนเข้ากับออปโตคัปเปลอร์ 4N25 ที่ขา 1 และ 2 ออปโตคัปเปลอร์ 4N25 มี LED ในตัวพร้อมขา 1 เป็นขั้วบวกและขา 2 เป็น a แคโทด. ดังนั้นตามวงจรด้านล่างเมื่อคลื่น AC เข้าใกล้จุดข้ามศูนย์มากขึ้นไฟ LED ในตัวของ 4N25 จะดับลงและส่งผลให้ทรานซิสเตอร์เอาท์พุตของ 4N25 จะถูกปิดด้วยและขาพัลส์เอาต์พุตจะ ดึงได้ถึง 5V ในทำนองเดียวกันเมื่อสัญญาณเพิ่มขึ้นเรื่อย ๆ จนถึงจุดสูงสุดจากนั้นไฟ LED จะเปิดและทรานซิสเตอร์จะเปิดขึ้นด้วยเมื่อพินกราวด์เชื่อมต่อกับพินเอาต์พุตซึ่งทำให้พินนี้เป็น 0V การใช้พัลส์นี้สามารถตรวจจับจุดข้ามศูนย์ได้โดยใช้ Arduino
2. วงจรควบคุมมุมเฟส
หลังจากตรวจพบจุดตัดศูนย์ตอนนี้เราต้องควบคุมระยะเวลาที่จะเปิดและปิดเครื่อง สัญญาณ PWM นี้จะกำหนดจำนวนเอาต์พุตแรงดันไฟฟ้าไปยังมอเตอร์ AC ซึ่งจะควบคุมความเร็วของมัน ที่นี่ใช้ BT136 TRIAC ซึ่งควบคุมแรงดันไฟฟ้ากระแสสลับเนื่องจากเป็นสวิตช์อิเล็กทรอนิกส์กำลังสำหรับควบคุมสัญญาณแรงดันไฟฟ้ากระแสสลับ
TRIAC เป็นสวิตช์ AC แบบสามขั้วที่สามารถถูกกระตุ้นโดยสัญญาณพลังงานต่ำที่ขั้วประตู ใน SCR จะดำเนินการในทิศทางเดียวเท่านั้น แต่ในกรณีของ TRIAC สามารถควบคุมพลังงานได้ทั้งสองทิศทาง หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ TRIAC และ SCR โปรดติดตามบทความก่อนหน้าของเรา
ดังแสดงในรูปด้านบน TRIAC จะถูกเรียกที่มุมยิง 90 องศาโดยใช้สัญญาณพัลส์ประตูเล็ก ๆ กับมัน เวลา“ t1” คือเวลาหน่วงเวลาที่กำหนดตามข้อกำหนดในการลดแสง ตัวอย่างเช่นในกรณีนี้มุมการยิงคือ 90 เปอร์เซ็นต์ดังนั้นกำลังขับจะลดลงครึ่งหนึ่งด้วยและด้วยเหตุนี้หลอดไฟจะเรืองแสงด้วยความเข้มครึ่งหนึ่ง
เรารู้ว่าความถี่ของสัญญาณ AC คือ 50 เฮิรตซ์ที่นี่ ดังนั้นช่วงเวลาจะเป็น 1 / f ซึ่งก็คือ 20ms สำหรับครึ่งรอบนี้จะเป็น 10ms หรือ 10,000 microseconds ดังนั้นสำหรับการควบคุมกำลังไฟของหลอดไฟ AC ช่วงของ“ t1” สามารถเปลี่ยนแปลงได้ตั้งแต่ 0-10000 ไมโครวินาที
ออปโตคัปเปลอร์:
Optocoupler เรียกอีกอย่างว่า Optoisolator ใช้เพื่อรักษาการแยกระหว่างวงจรไฟฟ้าสองวงจรเช่นสัญญาณ DC และ AC โดยทั่วไปจะประกอบด้วย LED ที่ปล่อยแสงอินฟราเรดและตัวรับแสงซึ่งตรวจจับได้ ที่นี่ออปโตคัปเปลอร์ MOC3021 ใช้เพื่อควบคุมพัดลม AC จากสัญญาณไมโครคอนโทรลเลอร์ซึ่งเป็นสัญญาณ DC
แผนภาพการเชื่อมต่อ TRIAC และ Optocoupler:
3. โพเทนชิออมิเตอร์เพื่อควบคุมความเร็วพัดลม
ที่นี่โพเทนชิออมิเตอร์ใช้เพื่อปรับความเร็วของพัดลม AC เรารู้ว่าโพเทนชิออมิเตอร์เป็นอุปกรณ์ 3 เทอร์มินัลที่ทำหน้าที่เป็นตัวแบ่งแรงดันไฟฟ้าและให้เอาต์พุตแรงดันไฟฟ้าแปรผัน แรงดันเอาต์พุตแบบอะนาล็อกแบบแปรผันนี้ได้รับที่ขั้วอินพุตอะนาล็อก Arduino เพื่อตั้งค่าความเร็วของพัดลม AC
4. หน่วยสร้างสัญญาณ PWM
ในขั้นตอนสุดท้ายจะมีการกำหนดพัลส์ PWM ให้กับ TRIAC ตามข้อกำหนดด้านความเร็วซึ่งจะทำให้เวลาเปิด / ปิดของสัญญาณ AC แตกต่างกันไปและให้เอาต์พุตตัวแปรเพื่อควบคุมความเร็วพัดลม ที่นี่ Arduino ใช้เพื่อสร้างพัลส์ PWM ซึ่งรับอินพุตจากโพเทนชิออมิเตอร์และส่งสัญญาณ PWM ไปยัง TRIAC และวงจรออปโตคัปเปลอร์ซึ่งจะขับเคลื่อนพัดลม AC ด้วยความเร็วที่ต้องการ เรียนรู้เพิ่มเติมเกี่ยวกับการสร้าง PWM โดยใช้ Arduino ที่นี่
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับวงจรควบคุมความเร็วพัดลม 230v ที่ใช้ Arduinoนี้แสดงไว้ด้านล่าง:
หมายเหตุ: ฉันได้แสดงวงจรทั้งหมดบนเขียงหั่นขนมเพื่อความเข้าใจเท่านั้น คุณไม่ควรใช้แหล่งจ่ายไฟ 220V AC โดยตรงบนเขียงหั่นขนมของคุณฉันใช้กระดานประเพื่อทำการเชื่อมต่อดังที่คุณเห็นในภาพด้านล่าง
การเขียนโปรแกรม Arduino สำหรับการควบคุมความเร็วพัดลม AC
หลังจากการเชื่อมต่อฮาร์ดแวร์เราจำเป็นต้องเขียนโค้ดสำหรับ Arduino ซึ่งจะสร้างสัญญาณ PWM เพื่อควบคุมเวลาเปิด / ปิดสัญญาณ AC โดยใช้อินพุตโพเทนชิออมิเตอร์ ก่อนหน้านี้เราใช้เทคนิค PWM ในหลายโครงการ
รหัสทั้งหมดของโครงการควบคุมความเร็วพัดลม Arduino AC นี้มีให้ที่ด้านล่างของโครงการนี้ คำอธิบายขั้นตอนของรหัสมีให้ด้านล่าง
ในขั้นตอนแรกประกาศตัวแปรที่จำเป็นทั้งหมดซึ่งจะใช้ตลอดทั้งรหัส ที่นี่ BT136 TRIAC เชื่อมต่อกับพิน 6 ของ Arduino และมีการประกาศตัวแปรspeed_valเพื่อเก็บค่าของ speed step
int TRIAC = 6; int speed_val = 0;
ถัดไปภายในฟังก์ชั่น การตั้งค่า ให้ประกาศขาTRIACเป็นเอาต์พุตเนื่องจากเอาต์พุต PWM จะถูกสร้างขึ้นผ่านพินนี้ จากนั้นกำหนดค่าการขัดจังหวะเพื่อตรวจจับการข้ามศูนย์ ที่นี่เราได้ใช้ฟังก์ชันที่เรียกว่าattachInterruptซึ่งจะกำหนดค่า Digital Pin 3 ของ Arduino เป็นการขัดจังหวะภายนอกและจะเรียกใช้ฟังก์ชันชื่อzero_crossingเมื่อตรวจพบการขัดจังหวะที่พิน
การตั้งค่าเป็นโมฆะ () {pinMode (LAMP, OUTPUT); attachInterrupt (digitalPinToInterrupt (3), zero_crossing, CHANGE); }
ภายใน ลูป ไม่มีที่สิ้นสุดให้อ่านค่าอนาล็อกจากโพเทนชิออมิเตอร์ซึ่งเชื่อมต่อที่ A0 และแมปกับช่วงค่า (10-49)
ในการหาช่วงนี้เราต้องทำการคำนวณเล็กน้อย ก่อนหน้านี้มีการบอกว่าแต่ละรอบครึ่งเทียบเท่ากับ 10,000 ไมโครวินาที ดังนั้นที่นี่การลดแสงจะถูกควบคุมใน 50 ขั้นตอนซึ่งเป็นค่าที่กำหนดเองและสามารถเปลี่ยนแปลงได้ ที่นี่ขั้นตอนต่ำสุดจะดำเนินการเป็น 10 ไม่ใช่ศูนย์เนื่องจากขั้นตอน 0-9 ให้กำลังขับที่เท่ากันโดยประมาณและขั้นตอนสูงสุดจะดำเนินการเป็น 49 เนื่องจากไม่แนะนำให้ใช้ขีด จำกัด บน (ซึ่งคือ 50 ในกรณีนี้)
จากนั้นแต่ละขั้นตอนสามารถคำนวณได้เป็น 10,000 / 50 = 200 microseconds สิ่งนี้จะถูกใช้ในส่วนถัดไปของโค้ด
โมฆะ loop () {int pot = analogRead (A0); int data1 = แผนที่ (หม้อ, 0, 1023,10,49); speed_val = data1; }
ในขั้นตอนสุดท้ายกำหนดค่าการขัดจังหวะที่ขับเคลื่อนด้วยฟังก์ชั่นzero_crossingที่นี่สามารถคำนวณเวลาลดแสงได้โดยการคูณเวลาของแต่ละขั้นตอนโดยไม่มี จำนวนก้าว จากนั้นหลังจากเวลาหน่วงนี้ TRIAC สามารถถูกกระตุ้นโดยใช้พัลส์สูงขนาดเล็ก 10 ไมโครวินาทีซึ่งเพียงพอที่จะเปิด TRIAC
เป็นโมฆะ zero_crossing () {int chop_time = (200 * speed_val); delayMicroseconds (เวลาสับ); digitalWrite (TRIAC สูง); delayMicroseconds (10); digitalWrite (TRIAC, LOW); }
รหัสที่สมบูรณ์พร้อมกับวิดีโอการทำงานสำหรับการควบคุมพัดลม AC โดยใช้ Arduino และ PWM ดังแสดงด้านล่าง