Simple Output Stage Inverter for Arduino UNO
โครงงานนี้เป็นการออกแบบในส่วนของวงจรขับกำลังเอาต์พุตอินเวอร์เตอร์แรงดันสูง (70VDC) และสามารถเชื่อมต่อกับบอร์ดควบคุมไมโครคอรโทรลเลอร์ได้โดยเฉพาะบอร์ด Arduino UNO ทั้งนี้เพื่อเป็นการปรับระดับสัญญาณของเชื่อมต่อระหว่างบอร์ดควบคุมที่แรงดันต่ำให้สามารถควบคุมแรงดันเอาต์พุตที่แรงดันสูงได้ง่าย ใช้อุปกรณ์ทั่วไปที่หาซื้อได้ง่ายและราคาถูก โดยโครงงานนี้เราสามารถปรับขนาดของสัญญาณเอาต์พุตได้ด้วยตัวต้านทานปรับค่า และผู้อ่านสามารถนำตัวอย่างโปรแกรมไปพัฒนาให้วงจรควบคุมแรงดันเอาต์พุตให้คงที่ ด้วยการควบคุมแบบระบบปิด (Close Loop Control) ในรูปแบบต่างๆ ต่อไปครับ.
รูปที่ 1 วงจรเอาต์พุตอินเวอร์เตอร์ที่ประกอบเสร็จแล้ว และใช้สำหรับทดลองโดยเป็นวงจรต้นแบบบนแผ่นเบรดบอร์ด เพื่อให้ง่ายต่อการแก้ไขและปรับแต่งวงจร
รูปที่ 2 แสดงการต่อแหล่งจ่ายไฟเลี้ยงให้กับวงจรอินเวอร์เตอร์และบอร์ดควบคุม Arduino UNO รวมทั้งการวัดสัญญาณควบคุมเบื้องต้นจากบอร์ดควบคุม
รูปที่ 3 แสดงลักษณะของการเชื่อมต่อระหว่างบอร์ดควบคุม Ardiono UNO และบอร์ดอินเวอร์เตอร์ โดยใช้สายแพขนาดเล็กในการทดลอง
รูปที่ 4 แสดงตัวตัวต้านทานขนาด 10 โอห์ม 20 วัตต์ จำนวน 2 ตัว (ตัวสีขาวและมีปากคีบ) ส่วนอีกตัวหนี่งจะเป็นตัวต้านทานปรับค่า โดยในการทดลองนี้จะทำหน้าที่ปรับขนาดของสัญญาณเอาต์พุตอินเวอร์เตอร์
รุปที่ 5 เป็นแหล่งจ่ายไฟเลี้ยงในการทดลองสำหรับวงจรอินเวอร์เตอร์ และเป็นไฟเลี้ยงสำหรับการขับที่ขาเกต (G) ของเพาเวอร์มอสเฟตทั้งหมด ทั้งนี้เพื่อเป็นการทดลองเบื้องต้นและสังเกตลักษณะการทำงานของวงจรที่ออกแบบ
/* Code Program for test output stage Inverter by Arduino UNO MCU : Arduino UNO Adj PWM : POT = 2K Frequency output : 50Hz Dev by : Nattapon Date : 6/7/2021, V.0 */ int TonDelayuS = 0; int ToffDelayuS = 0; int sensorValue = 0; int Value = 0; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); pinMode(3, OUTPUT); digitalWrite(13, LOW); digitalWrite(3, LOW); delay(300); } void loop() {sensorValue = analogRead(A0);
// Read ADC CH0Value = (sensorValue*9);
// multiplyValue
X9Serial.println(Value);
// MonitorValue
TonDelayuS = Value;
// Set Ton SignalToffDelayuS = (10000-Value);
// Set Toff SignaldigitalWrite(13,HIGH);
// Set Ton Phase AdelayMicroseconds(TonDelayuS);
digitalWrite(13,LOW);
// Set Toff Phase AdelayMicroseconds(ToffDelayuS);
digitalWrite(3,HIGH);
// Set Ton Phase BdelayMicroseconds(TonDelayuS);
digitalWrite(3,LOW);
// Set Toff Phase BdelayMicroseconds(ToffDelayuS);
}
โปรแกรมการทำงานของโครงงานนี้เป็นตัวอย่างแบบง่ายเพื่อให้เราสามารถสร้างสัญญาณควบคุมให้กับวงจรอินเวอร์เตอร์ และการปรับขนาดของสัญญาณตามที่เราต้องการ โดยจากตัวโปรแกรมจะใช้ขาสร้างสัญญาณไปยังเอาต์พุต 2 ขา คือขา D3 และ D13 จากนั้นโปรแกรมจะรับค่าสัญญาณเข้ามาควบคุมจากขา A0 แบบอะนาลอก ซึ่งจะเปลี่ยนเป็นค่าสำหรับหน่วงเวลา 2 ส่วนคือ TonDelayuS = Value; และ ToffDelayuS = (10000-Value); จากนั้นนำค่าที่ได้ไปกำหนดการ ON และ OFF ที่ขา D3 และ D13 ตามลำดับต่อเนื่องกัน
รูปที่ 6 แสดงลักษณะสัญญาณเอาต์พุตของอินเวอร์เตอร์เมื่อปรับค่า Ton และ Toff ใกล้เคียงกันเป็นค่าเริ่มต้น และค่าแรงดันเเอาต์พุตที่ได้ประมาณ 9.93Vrms โดยในการทดลองจะใช้แรงดันสำหรับวงจรอินเวอร์เตอร์ประมาณ 15VDC
รูปที่ 7 แสดงลักษณะสัญญาณที่เอาต์พุตอินเวอร์เตอร์เมื่อปรับค่า Ton น้อยลงและ Toff เพิ่มขึ้น ซึ่งผลที่ได้ทำให้ค่าแรงดันเอาต์พุตลดลงมาที่ 5.81Vrms
รูปที่ 8 แสดงลักษณะสัญญาณที่เอาต์พุตอินเวอร์เตอร์เมื่อปรับค่า Ton เพิ่มขึ้นและ Toff ลดลง ซึ่งผลที่ได้ทำให้ค่าแรงดันเอาต์พุตเพิ่มขึ้นมาที่ 12.4Vrms
รูปที่่ 9 แสดงลักษณะของการทดลองโครงงานอินเวอร์เตอร์ เครื่องมือและอุปกรณ์ต่างๆ
รูปที่ 10 การทำงานของวงจรนั้นจะเริ่มจาก Q1 และ Q2 จะถูกกำหนดให้ทำงานทำงานสลับกัน คือที่ตำแหน่งออปโต้คัปเปิ้ล U5 ที่ขา C จะต่อเข้ากับ R7 (1K) ทำหน้าที่พูลอัพ (Pull-up) กับแหล่งจ่ายไฟเลี้ยง 15V โดยถ้าขา A ของออปโต้คัปเปิ้ล U5 ได้รับลอจิก 1 จะเป็นผลให้ Q2 หยุดการทำงาน (ไบอัสกลับ) และจะเป็นผลให้ Q7 ได้รับไบอัสกลับเช่นกัน ซึ่งการได้รับไบอัสกลับของ Q7 จะทำให้แรงดันจากตัวเก็บประจุ C2 จ่ายมายังมอสเฟต Q1 ผ่าน R10 มายังขา G และ S เกิดการนำกระแส Q1 นั้นเอง
ทั้งนี้การทำงานจะเป็นในลักษณะเช่นเดียวกันกับ Q3 และ Q4 สัญญาณควบคุมจะได้รับจากบอร์ด Arduino UNO ที่ขา D3 และ D13 มายังออปโต้คัปเปิ้ล U5 และ U6 นั้นเอง นอกจากนี้เราสามารถปรับขนาดการจ่ายกำลังไฟฟ้าที่เอาต์พุตได้ที่ตัวต้านทาน RP1 และในส่วนของไฟเลี้ยงวงจรจะมี 2 ส่วนคือ 15V สำหรับวงจรขับขาเกต (Vgs) ให้กับเพาเวอร์มอสเฟตทั้ง 4 ตัว และส่วนของแรงดันสูงรับไฟเลี้ยงได้ในช่วง 12V-70VDC ที่ตำแหน่ง +VBUS และ GND
สำหรับโครงงานนี้เป็นการออกแบบในส่วนขับกำลังของอินเวอร์เตอร์ที่สามารถรับแรงดันได้สูง และสามารถเชื่อมต่อกับบอร์ดควบคุมต่างๆ ได้ทั้งอะนาลอกและดิจิตอล โดยเฉพาะไมโครคอนโทรลเลอร์ Arduino UNO ซึ่งจะมีส่วนของวงจรปรับระดับสัญญาณไว้เรียบร้อยแล้ว รวมทั้งใช้ออปโต้คัปเปิ้ลทำหน้าที่แยกกันทางไฟฟ้าสำหรับป้องกันการรบกวนระหว่างบอร์ดควบคุมและขับกำลังอินเวอร์เตอร์ ทั้งนี้อุปกรณ์ทั้งหมดสามารถหาซื้อได้ทั่วไปในราคาไม่แพงครับ.
Reference
- https://www.circuitsdiy.com/h-bridge-inverter-power-stage-with-passives/
- https://www.homemade-circuits.com/sg3525-full-bridge-inverter-circuit/
- https://verifiedschematics.com/high-power-mosfet-h-bridge-using-irfz44-irf630-updated/
- https://makingcircuits.com/blog/easy-150-w-full-bridge-inverter-circuit-tested/