Basics Open Loop Half-Bridge SMPS Using Arduino UNO

โครงงานนี้จะเป็นการใช้บอร์ดควบคุม Arduino UNO สำหรับสร้างสัญญาณพัลซ์วิดธ์มอดูเลต ให้กับสวิตชิ่งเพาเวอร์ซัพพลายแบบฮาร์ฟบริดจ์แบบ Asymmetric Half-Bridge Converter ด้วยการพัฒนามาจากโครงงาน Simple Half-Bridge Topology Switching Mode Power Supply Using IR2153 ด้วยการปรับแต่งวงจรบางส่วนก็สามารถใช้งานร่วมกับบอร์ดควบคุม Arduino UNO ได้ทันที
โดยในโครงงานจะเป็นการควบคุมแบบเปิด (Open Loop Control) ซึ่งช่วยให้เราทดลองควบคุมการทำงานแบบเบื้องต้น ในเรื่องของการเขียนโปรแกรมควบคุม, การสร้างสัญญาณพัลซ์วิดมอดูเลต เพื่อปรับเพิ่มและลดการจ่ายกำลังไฟฟ้าทางด้านเอาต์พุต นอกจากนี้ในการเรียนรู้วงจรสวิตชิ่งเพาเวอร์ซัพพลายฮาร์ฟบริดจ์ คอนเวอร์เตอร์ที่กล่าว จะเป็นรูปแบบหนึ่งของการสวิตชิ่งแบบ Zero Voltage Switching : ZVS ในลักษณะ Fixed frequency ZVS PWM Operation ครับ

รูปที่ 1 เป็นการเตรียมการทดลองด้วยเครื่องมือและอุปกรณ์ต่างๆ โดยจะสังเกตว่าบอร์ดควบคุมและบอร์ดขับกำลังจะเชื่อมต่อถึงกันด้วยสายไฟขาดเล็ก เช่น สายสำหรับสัญญาณขับขาเกต สัญญาณควบคุมการปรับค่าพัลซ์วิดธ์มอดูเลตด้วยตัวต้านทานปรับค่า (ใกล้กับบอร์ดควบคุมและมีลูกบิดสีแดง)

รูปที่ 2 แสดงบอร์ดควบคุมสำหรับสร้างสัญญาณพัลซ์วิดธ์มอดูเลต ด้วยการปรับค่าตัวต้านทาน ซึ่งจะกำหนดค่าสูงสุดไว้ที่ประมาณ 48% ของสัญญาณทั้งด้านบน (High side) และด้านล่าง (Low side)

รูปที่ 3 เป็นบอร์ดขับกำลังสวิตชิ่งเพาเวอร์ซัพพลายแบบฮาร์ฟบริดจ์ ซึ่งนำบอร์ดจากโครงงาน Simple Half-Bridge Topology Switching Mode Power Supply Using IR2153 มาปรับปรุงเล็กน้อยให้สามารถใช้งานร่วมกันได้

ในรูปที่ 4 แสดงตัวต้านทานโหลดที่ใช้ในการทดสอบการทำงาน โดยจะใช้ 2 ตัวต่ออนุกรมกัน และตัวต้านทานทั้ง 2 ตัวมีค่า 10 โอห์ม 20 วัตต์


รูปที่ 6 มัลติมิเตอร์วัดค่าแรงดันอินพุตในการทดลองที่ 250VDC ซึ่งเป็นการทดลองเบื้องต้น โดยจาการทดลองวงจรสามารถทำงานได้เป็นปกติและตัวเพาเวอร์มอสเฟตไม่เกิดความร้อนที่ผิดปกติใดๆ
/* *Pseudo Code for Half-Bridge Converter By Arduino UNO *Application for Half-Bridge Converter Switching Mode Power supply Vi : 310VDC Vo : 15VDC Io : 5A (Continuous) Fs : 31.372kHz Duty cycle Max : 45% Eff : > 80% Protection : Output Short circuit and Current Limt *Design by : www.electronicsDNA.com *Date : 6/9/2021 (V.0) */ int Output_PWM = 0; int DT = 10; // set Dead Time int Voutput = 0; int Iinductor = 0; int Setpoint = 500; // 500 = 15V @ Voltage output void setup() { pinMode (3, OUTPUT); // PWM Signal Lo Side pinMode (11, OUTPUT); // PWM Signal Hi Side pinMode (13, OUTPUT); // LED Signal OK RUN System Serial.begin(9600); TCCR2A = 0b11100001; // Set Register Phase Correct PWM TCCR2B = 0b00000001; // Set Fsw = 31.372 kHz delay(1000); digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); } void loop() { Output_PWM = analogRead(A0); Iinductor = analogRead(A1); // Read ADC A1 for Iinductor Output_PWM = 255-(Output_PWM/8); if (Output_PWM<5){Output_PWM=10;} if (Output_PWM>250){Output_PWM=255;} OCR2A = Output_PWM; // PIN D11 OCR2B = (Output_PWM-DT); // PIN D3 delay(50); }
ในส่วนข้างบนนี้จะเป็นโปรแกรมสำหรับใข้ในการทดลอง โดยเราสามารถปรับค่าสัญญาณพัลซ์วิดธ์มอดูเลตที่ขาอินพุต ซึ่งต่อเข้าที่ขา A0 โดยโปรแกรมจะกำหนดความกว้างของสัญญาณพัลซ์วิดธ์มอดูเลตไม่ให้เกิน 48% จากการตรวจสอบค่าที่คำสั่ง if (Output_PWM<5){Output_PWM=10;} และคำสั่ง if (Output_PWM>250){Output_PWM=255;} นั้นเอง


รูปที่ 8 เป็นสัญญาณขับขาเกตเมื่อปรับสัญญาณพัลซ์วิดมอดูเลตที่ 0% ซึ่งการปรับลักษณะนี้ จะไม่เกิดการทำงานใดๆ กับแรงดันทางด้านเอาต์พุต รวมทั้งเป็นการสังเกตรูปแบบคำสั่งในการเขียนโปรแกรมควบคุมการทำงานให้กับวงจรสวิตชิ่งอีกทางหนึ่ง

รูปที่ 9 เป็นการทดลองครั้งที่ 1 ด้วยการปรับค่าสัญญาณพัลซ์วิดมอดูเลตให้กับเพาเวอร์มอสเฟตตัวบนที่ 6uS โดยสัญญาณของเพาเวอร์มอสเฟตตัวล่างจะกลับเฟสกัน 180 องศา และกำหนดความถี่สวิตชิ่งที่ 31.372kHz

รูปที่ 10 แสดงค่าแรงดันเอาต์พุตที่ได้เมื่อปรับสัญญาณพัลซ์วิดมอดูเลตที่ 6uS โดยเป็นการทดลองครั้งที่ 1

รูปที่ 11 ค่ากระแสที่เกิดขึ้นทางด้านเอาต์พุตเมื่อปรับสัญญาณพัลซ์วิดมอดูเลตที่ 6uS ซึ่งจะมีค่าประมาณ 0.52A โดยจะได้จาก Vo/20R = Io (11.19V/20R = 0.559A)

รูปที่ 12 เป็นการทดลองครั้งที่ 2 ด้วยการปรับสัญญาณพัลซ์วิดมอดูเลตให้กับเพาเวอร์มอสเฟตตัวบนที่ 12.25uS และสังเกตค่าแรงดันที่เอาต์พุต

รูปที่ 13 แสดงค่าแรงดันเอาต์พุตที่ได้เมื่อปรับสัญญาณพัลซ์วิดมอดูเลตที่ 12.25uS จากการสังเกตผลที่เกิดขึ้น ค่าแรงดันเอาต์พุตจะเป็นสัดส่วนกับความกว้างของสัญญาณพัลซ์วิดมอดูเลต

รูปที่ 14 ค่ากระแสเอาต์พุตเมื่อปรับสัญญาณพัลซ์วิดมอดูเลตที่ 12.25uS เพิ่มขึ้นอันเนื่องมาจากแรงดันที่เพิ่มขึ้นเช่นกัน โดยกระแสที่วัดได้เท่ากับ 0.82A

รูปที่ 15 เป็นการทดลองครั้งที่ 3 ด้วยการปรับสัญญาณพัลซ์วิดมอดูเลตให้กับเพาเวอร์มอสเฟตตัวบนที่ 15.88uS และสังเกตค่าแรงดันที่เอาต์พุตอีกครั้ง

รูปที่ 16 แสดงค่าแรงดันเอาต์พุตที่ได้เมื่อปรับสัญญาณพัลซ์วิดมอดูเลตที่ 15.88uS จากการสังเกตผลที่เกิดขึ้น ค่าแรงดันเอาต์พุตเพิ่มขึ้นมาที่ 17.68V

รูปที่ 17 ค่ากระแสเอาต์พุตที่วัดได้เมื่อปรับสัญญาณพัลซ์วิดมอดูเลตที่ 15.88uS เพิ่มขึ้นเล็กน้อย ซึ่งค่าที่วัดได้เท่ากับ 0.86A



สำหรับโครงงานการใช้บอร์ดควบคุม Arduino UNO สำหรับสร้างสัญญาณพัลซ์วิดธ์มอดูเลต ให้กับสวิตชิ่งเพาเวอร์ซัพพลายแบบฮาร์ฟบริดจ์นี้ เป็นวงจรที่ออกแบบมาแบบเรียบง่ายสำหรับใช้ในการทดลอง หรือการเรียนรู้เกี่ยวกับสวิตชิ่งเพาเวอร์ซัพพลาย แบบฮาร์ฟบริดจ์คอนเวอร์เตอร์ ซึ่งผู้อ่านสามารถพัฒนาเพิ่มเติมได้ตามต้องการ และในส่วนท้ายจะเป็นลิ้งก์เว็บไซต์อ้างอิงสำหรับเป็นข้อมูลเพิ่มเติมเกี่ยวกับโครงงานนี้ครับ.
Reference
- http://ww1.microchip.com/downloads/en/AppNotes/01114A.pdf
- https://www.ti.com/seclit/ug/slyu036/slyu036.pdf
- https://www.onsemi.com/pub/Collateral/Smpsrm-D.PDF
- https://www.st.com/resource/en/application_note/cd00003910-topologies-for-switch-mode-power-supplies-stmicroelectronics.pdf
- https://www.st.com/resource/en/application_note/cd00157315-solution-for-150-w-half-bridge-resonant-dcdc-converter-stmicroelectronics.pdf
- https://www.iitk.ac.in/npsc/Papers/NPSC2014/1569978049.pdf
- https://www.nxp.com/files-static/dsp/doc/ref_manual/DRM074.pdf
- https://en.wikipedia.org/wiki/Switched-mode_power_supply
- https://th.rs-online.com/web/p/transformer-ferrite-cores/1678311
- https://docs.rs-online.com/4800/0900766b813c0db8.pdf
- https://www.psma.com/sites/default/files/uploads/files/10%20PSMA%20PTR%202014_10_02%20Power%20Converter%20Topology%20Trends%20Mappus%20Fairchild.pdf