ทำความเข้าใจกับการออกแบบวงจร
หากคุณไม่ต้องการอ่านคำอธิบายทั้งหมดคุณสามารถดูวิดีโอนี้แทน:

ตอนนี้ให้เราดูแผนภาพวงจรด้านล่างและเรียนรู้ว่าสิ่งนี้ทำงานอย่างไร เราเห็นชิ้นส่วนหลักต่อไปนี้ในวงจร:

บอร์ด Arduino - นี่คือสมองของเรา มันให้พัลส์ SPWM ที่ตัดสินใจว่าวงจรของเราจะทำงานอย่างไร
IR2110 MOSFET Driver ICS (IC1 และ IC2) -อุปกรณ์เหล่านี้ใช้สัญญาณ SPWM มาตรฐานจาก Arduino และทำให้เข้ากันได้เพื่อสลับ MOSFETs H-Bridge 4 N-Channel อย่างถูกต้องโดยใช้วิธีการบูต
MOSFETS (Q1, Q2, Q3, Q4) - นี่คือสวิตช์พลังงาน พวกเขาเปิดและปิดพลังงาน DC ในวิธีที่เฉพาะเจาะจงในการสร้าง AC ที่เอาต์พุต
ไดโอด (1N4007) และตัวเก็บประจุ - สิ่งเหล่านี้มีไว้สำหรับการเปิดใช้งานการทำงานที่ถูกต้องของเครือข่าย bootstrapping ของ ICS สำหรับการสลับอย่างสมบูรณ์แบบของ 4 mosfets
ตัวเก็บประจุและตัวต้านทานอื่น ๆ - สิ่งเหล่านี้มีขนาดเล็ก แต่สำคัญมากเพราะพวกเขาทำให้ทุกอย่างทำงานได้อย่างราบรื่น
แหล่งจ่ายไฟ - เราต้องการ +12V และ +5V สำหรับ Arduino และ IR2110 ICS และแรงดันไฟฟ้า DC สูงสำหรับ MOSFETs ตามข้อกำหนดของโหลด
เกิดอะไรขึ้นในวงจร?
ตอนนี้ให้เราดูว่ามันทำงานอย่างไรทีละขั้นตอน:
Arduino สร้างสัญญาณ SPWM ที่หมุดเอาท์พุทสองตัว (พิน 8 และพิน 9) สัญญาณเหล่านี้ยังคงเปลี่ยนความกว้างเพื่อสร้างรูปร่างเทียบเท่ากับคลื่น AC Sine
IR2110 ICS ได้รับสัญญาณ PWM เหล่านี้และใช้เพื่อเปิดและปิด MOSFETs ด้วยวิธีที่เฉพาะเจาะจงมาก
H-bridge ที่ทำโดยใช้ mosfets สี่ตัวแปลงแหล่งจ่ายไฟบัส DC เป็นเอาต์พุต AC-like โดยการสลับทิศทางปัจจุบันผ่านโหลดโดยใช้การสลับ SPWM
ที่เอาท์พุทเราได้รับการประมาณคลื่นไซน์ซึ่งหมายความว่ามันดูเหมือนคลื่นไซน์ แต่จริง ๆ แล้วทำจากพัลส์สลับอย่างรวดเร็ว
หากเราเพิ่มวงจรตัวกรองที่เอาต์พุตเราสามารถทำให้พัลส์เหล่านี้ราบรื่นและรับคลื่นไซน์ที่สมบูรณ์แบบยิ่งขึ้น
รหัส Arduino ของเราสำหรับ Sine Wave PWM
ตอนนี้ให้เราดูรหัส นี่คือสิ่งที่ Arduino จะทำงานเพื่อสร้างสัญญาณ SPWM
835EA9484999CA2B1A94FC3D1BB3E885B51FF2262เกิดอะไรขึ้นในรหัสนี้?
ก่อนอื่นเราตั้งค่าพินเอาท์พุทสองตัว (พิน 8 และพิน 9) สิ่งเหล่านี้จะส่งสัญญาณ PWM ของเราออกไป
จากนั้นในลูปเราจะเปิดและปิดพินในรูปแบบพิเศษ
เราเริ่มต้นด้วยพัลส์แคบและค่อยๆเพิ่มความกว้างของพัลส์จากนั้นเราก็ลดลงกลับลง สิ่งนี้สร้างรูปแบบ PWM Sine Wave ที่ก้าวล้ำ
หลังจากครึ่งรอบแรกเสร็จแล้วเราทำซ้ำสิ่งเดียวกันบนพินอื่น ๆ (พิน 9) สำหรับรอบต่อไป
ด้วยวิธีนี้ H-Bridge ของเราจะเปลี่ยน mosfets ในคลื่นไซน์ที่เหมาะสมเช่นแฟชั่น
สิ่งที่ดีเกี่ยวกับการออกแบบนี้
การออกแบบนั้นง่ายมาก เราใช้เพียง Arduino และส่วนประกอบทั่วไป
เราไม่จำเป็นต้องใช้เครื่องกำเนิดคลื่นไซน์ที่นี่ใช่แล้ว Arduino เองกำลังสร้างรูปร่างไซน์โดยใช้ SPWM
H-Bridge ทำงานได้อย่างมีประสิทธิภาพโดยใช้ IR2110 ICS เพื่อให้แน่ใจว่าสวิตช์ MOSFETS อย่างถูกต้องโดยไม่ต้องมีความร้อนสูงเกินไป
เราสามารถปรับแต่ง SPWM ได้อย่างง่ายดายในกรณีที่เราต้องการความถี่คลื่นไซน์ที่แตกต่างกันจากนั้นเราเพียงแค่แก้ไขรหัสเล็กน้อย
วิธีที่เราควรจัดการกับความล่าช้าในการบูต Arduino
ตอนนี้สิ่งที่สำคัญมากที่เราต้องเข้าใจคือ Arduino ใช้เวลาสักครู่เพื่อเริ่มต้นหลังจากที่เราเปิดใช้พลังงาน
สิ่งนี้เกิดขึ้นเพราะเมื่อเราเปิดใช้งาน Arduino จากนั้นมันจะเรียกใช้ bootloader ภายในซึ่งใช้เวลาสองสามวินาที
ดังนั้นในช่วงเวลานี้ ICS และ MOSFETs ไดรเวอร์ IR2110 อาจไม่ได้รับสัญญาณที่เหมาะสมจาก Arduino
หากสิ่งนั้นเกิดขึ้น MOSFETs อาจเปิดแบบสุ่มซึ่งสามารถสร้างความเสียหายให้กับ ICS ได้ทันทีหรือทำให้เกิดการลัดวงจรหรือการระเบิด
เพื่อให้แน่ใจว่าการหน่วงเวลาการบูตด้านบนไม่ได้เผาไหม้ ICS และ MOSFETs ในระหว่างการเปิดเครื่องเริ่มต้นเราจำเป็นต้องแก้ไขรหัสด้านบนดังที่แสดงด้านล่าง:
// By Swagatam - Full Bridge Sine Wave Inverter Code with Delay
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
delay(3000); // Booting delay (wait for 3 seconds before starting)
}
void loop() {
// First pin (8) switching pattern
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(2000);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
// Second pin (9) switching pattern
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(2000);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
}
รายการชิ้นส่วน
บอร์ด Arduino | Arduino Uno (หรือบอร์ดที่เข้ากันได้) | 1 |
MOSFET Driver IC | IR2110 คนขับด้านข้างสูงและต่ำ | 2 |
Mosfets | IRF3205 (หรือ N-channel ที่คล้ายกัน) | 4 |
ไดโอด | 1N4007 (สำหรับ Bootstrap & Protection) | 4 |
ตัวต้านทาน | 1KΩ 1/4W (MOSFET GATE PULL-DOWN) | 4 |
ตัวต้านทาน | 150Ω 1/4W (ตัวต้านทานซีรีย์ประตู MOSFET) | 4 |
ตัวเก็บประจุ | 100NF (ตัวเก็บประจุ bootstrap) | 2 |
ตัวเก็บประจุ | 22UF 25V (ตัวกรองแหล่งจ่ายไฟ) | 2 |
โหลด | ภาระตัวต้านทานหรืออุปนัยใด ๆ | 1 |
แหล่งจ่ายไฟ | +12V DC (สำหรับ MOSFETS) & +5V DC (สำหรับ Arduino) | 1 |
สายไฟและตัวเชื่อมต่อ | เหมาะสำหรับการเชื่อมต่อวงจร | ตามต้องการ |
เคล็ดลับการก่อสร้าง
ตอนนี้เมื่อเราสร้างสิ่งนี้จริง ๆ เราต้องระวังให้มากเกี่ยวกับสิ่งสำคัญสองสามอย่าง มิฉะนั้นอาจไม่ได้ผลหรือแย่กว่านั้นบางสิ่งบางอย่างอาจเหนื่อยล้า? ดังนั้นนี่คือเคล็ดลับการก่อสร้างที่สำคัญที่สุดที่เราต้องทำตาม:
เราควรจัดเรียงชิ้นส่วนบนกระดานอย่างไร
หากเราใช้เขียงหั่นขนมวงจรนี้อาจใช้งานไม่ได้เพราะ MOSFET และไดรเวอร์ที่ใช้พลังงานสูงต้องการการเชื่อมต่อที่แข็งแกร่งและแข็งแกร่ง
ดังนั้นเราควรใช้ PCB (แผงวงจรพิมพ์) หรืออย่างน้อยก็เป็นบอร์ดที่สมบูรณ์แบบและประสานชิ้นส่วนอย่างถูกต้อง
หากเราสร้าง PCB เราจะต้องเก็บ mosfets และ IR2110 ICs ไว้ด้วยกันเพื่อให้สัญญาณไม่อ่อนแอหรือล่าช้า
สายหนาควรไปสำหรับเส้นทางปัจจุบันสูงเช่นจากแหล่งจ่ายไฟไปยัง mosfets และจาก mosfets ไปยังโหลด
สายไฟบางสามารถใช้สำหรับการเชื่อมต่อสัญญาณเช่นจาก Arduino ไปยัง IR2110 ICS
เราควรวาง mosfets อย่างไร
ควรวาง mosfets ทั้งสี่ไว้ในรูปแบบ H-Bridge ที่เหมาะสมเพื่อให้การเดินสายไม่ยุ่งเหยิง
MOSFET แต่ละตัวควรมีการเชื่อมต่อที่สั้นและหนากับ IR2110 IC
หากเราวาง mosfets ที่อยู่ไกลจาก IR2110 มากเกินไปสัญญาณอาจอ่อนแอและ mosfets อาจสลับไม่ถูกต้อง
หากสิ่งนั้นเกิดขึ้น MOSFETS จะร้อนและถูกไฟไหม้
เราควรแก้ไขปัญหาความร้อนอย่างไร
หากเราใช้ MOSFETS IRF3205 หรือที่คล้ายกันพวกเขาจะร้อนขึ้นหากเราไม่ให้ฮีทซิงค์กับพวกเขา
ดังนั้นเราต้องแก้ไขฮีทซิงค์อลูมิเนียมขนาดใหญ่ให้กับ Mosfets เพื่อให้พวกเขาเย็น
หากเราทำอินเวอร์เตอร์กำลังสูง (มากกว่า 100W) เราควรติดตั้งพัดลมระบายความร้อนบนฮีทซิงค์
หาก mosfets ร้อนเกินไปที่จะสัมผัสนั่นหมายความว่ามีปัญหาบางอย่างและเราต้องตรวจสอบวงจรอีกครั้ง
เราควรให้พลังงานกับวงจรอย่างไร
ส่วน Arduino ทำงานบน 5V และ MOSFETs ต้องการ 12V หรือมากกว่าในการทำงาน
ดังนั้นเราต้องไม่เชื่อมต่อ 12V กับ Arduino หรือมันจะเผาไหม้ทันที!
IR2110 ICS ต้องการแหล่งจ่ายไฟสองแหล่ง:
12V สำหรับ mosfets ด้านสูง
5V สำหรับส่วนตรรกะ
หากเราผสมสายไฟเหล่านี้วงจรจะทำงานไม่ถูกต้องและ MOSFETS จะสลับไม่ถูกต้อง
เราควรเชื่อมต่อสายไฟอย่างไร
การเชื่อมต่อพื้นดิน (GND) มีความสำคัญอย่างยิ่ง หากการเดินสายพื้นดินอ่อนแอหรือยาววงจรอาจมีพฤติกรรมแปลก ๆ
เราควรใช้พื้นดินทั่วไปสำหรับทุกส่วนซึ่งหมายถึงพื้นดิน Arduino, IR2110 Ground และ MOSFET Source Ground ต้องเชื่อมต่อกัน
หากเราเห็นวงจรประพฤติตัวแปลก ๆ (เช่นเอาต์พุตกะพริบหรือ mosfets อุ่นโดยไม่ต้องโหลด) เราควรตรวจสอบการเชื่อมต่อภาคพื้นดินก่อน
เราควรตรวจสอบวงจรก่อนที่จะเปิดเครื่องได้อย่างไร
ก่อนที่เราจะเปิดพลังงานเราต้องตรวจสอบการเชื่อมต่อทั้งหมดเพื่อดูว่าทุกอย่างถูกต้องหรือไม่
หากเรามีมัลติมิเตอร์เราควรใช้เพื่อตรวจสอบแรงดันไฟฟ้าที่จุดต่าง ๆ ก่อนที่จะแทรก MOSFETS
เราจะต้องมีออสซิลโลสโคปอย่างเคร่งครัดเพื่อให้เราสามารถตรวจสอบสัญญาณ SPWM ที่มาจาก Arduino เพื่อดูว่าพวกเขาดูถูกต้องหรือไม่
เราควรทดสอบวงจรอย่างระมัดระวัง
วิธีที่ดีที่สุดในการทดสอบวงจรนี้อย่างปลอดภัยคือเริ่มต้นด้วยแรงดันไฟฟ้าต่ำ
แทนที่จะเป็น 12V เราสามารถลองด้วย 6V หรือ 9V เพื่อดูว่า MOSFETS สลับได้อย่างถูกต้องหรือไม่
หากวงจรทำงานได้ดีที่แรงดันไฟฟ้าต่ำเราสามารถเพิ่มขึ้นเป็น 12V และในที่สุดก็เป็นแรงดันไฟฟ้าเต็ม
หากเราใช้แรงดันไฟฟ้าเต็มและมีบางอย่างผิดปกติบางอย่างอาจทำให้เกิดความเหนื่อยล้าทันที!
ดังนั้นเราต้องทดสอบทีละขั้นตอนและตรวจสอบพฤติกรรมความร้อนสูงเกินไปหรือผิด
เราจะเพิ่มตัวกรองสำหรับเอาต์พุตที่ราบรื่นขึ้นได้อย่างไร
วงจรนี้ทำให้เอาต์พุต AC โดยใช้ PWM แต่ก็ยังทำจากพัลส์ที่รวดเร็ว
หากเราต้องการคลื่นไซน์ที่สะอาดเราต้องเพิ่มตัวกรอง LC ที่เอาต์พุต
ตัวกรอง LC นี้เป็นเพียงตัวเหนี่ยวนำขนาดใหญ่และตัวเก็บประจุที่เชื่อมต่อกับเอาต์พุต
ตัวเหนี่ยวนำจะลบพัลส์สลับอย่างรวดเร็วและตัวเก็บประจุทำให้รูปคลื่นเรียบ
หากเราทำสิ่งนี้อย่างถูกต้องเราจะได้คลื่นไซน์บริสุทธิ์ที่ปลอดภัยสำหรับเครื่องใช้ไฟฟ้า
เราควรปกป้องวงจรจากความเสียหายอย่างไร
เราควรเพิ่มฟิวส์ในซีรีส์ด้วยแหล่งจ่ายไฟ
หากสิ่งที่กางเกงขาสั้นหรือ MOSFET ล้มเหลวฟิวส์จะแตกหักก่อนและบันทึกวงจรจากการเผาไหม้
หาก mosfets ล้มเหลวบางครั้งพวกเขาก็ล้มเหลว (หมายถึงพวกเขาอยู่เสมอ)
หากสิ่งนั้นเกิดขึ้นกระแสขนาดใหญ่สามารถไหลและทำลายหม้อแปลงหรือชิ้นส่วนอื่น ๆ
ดังนั้นจึงเป็นการดีที่จะตรวจสอบ mosfets โดยใช้มัลติมิเตอร์ก่อนที่จะใช้พลังงานสูง
บทสรุป
ดังนั้นที่นี่เราเห็นวิธีที่เราสามารถสร้างอินเวอร์เตอร์ Sine Wave โดยใช้ Just Arduino และ H-Bridge Mosfet เราใช้ไดรเวอร์ IR2110 MOSFET เพื่อสลับการควบคุม MOSFETs และ PWM จาก Arduino อย่างถูกต้องเพื่อสร้าง AC ที่ปรับด้วยไซน์ของเรา
ตอนนี้สิ่งหนึ่งที่ต้องจำไว้คือเอาต์พุตนี้ยังคงทำจากพัลส์สลับอย่างรวดเร็วดังนั้นหากเราต้องการคลื่นไซน์บริสุทธิ์เราต้องเพิ่มตัวกรอง LC ที่เอาต์พุตเพื่อทำให้มันราบรื่น
แต่โดยรวมแล้วนี่เป็นวิธีที่ใช้งานง่ายและง่ายดายในการสร้างอินเวอร์เตอร์ Sine Wave ที่บ้าน!