Simple Arduino UNO Control Half-Bridge Inverter for Induction Heater

โครงงานนี้ทดลองใช้บอร์ดควบคุม Arduino UNO สำหรับสร้างสัญญาณให้กับอินเวอร์เตอร์แบบฮาร์ฟบริดจ์ เพื่อขับเพาเวอร์มอสเฟตในการสร้างความร้อนด้วยการเหนี่ยวนำที่ความถี่ 31.372kHz โดยโครงงานจะมีขนาดเล็กสำหรับเป็นวงจรต้นแบบในการพัฒนาครั้งต่อไป ซึ่งในการทดลองจะใช้แรงดันไฟฟ้าสำหรับวงจรเหนี่ยวนำความร้อน 50V, ปรับค่าดิวตี้ไซเกิลไว้ประมาณ 20% และได้พลังงานความร้อน 75 วัตต์

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

รูปที่ 2 เริ่มต้นประกอบอุปกรณ์ในของสวิตชิ่งชิ่งกำลังเพาเวอร์มอสเฟต Q1 และ Q2, ออปโต้คัปเปิ้ลสำหรับขับสัญญาณให้กับเพาเวอร์มอสเฟต และตัวเก็บประจุสำหรับวงจร Tank circuit เป็นหลักก่อน

รูปที่ 3 เป็นลักษณะของขดลวดเหนี่ยวนำความร้อนที่พันขึ้นครั้ง 1 สำหรับใช้ในการทดลองโดยใช้ลวดเบอร์ 16AWG พัน 10 รอบ และเส้นผ่าศูนย์กลางประมาณ 2 เซนติเมตร

รูปที่ 4 เป็นลักษณะของการนำขดลวดเหนี่ยวนำความร้อนบัดกรีลงในแผ่นวงจรพิมพ์ และให้สามารถถอดและประกอบครั้งต่อไปได้สะดวกสำหรับการปรับแต่งวงจรภายหลัง

รูปที่ 5 เป็นการต่อสายไฟต่างๆ ให้กับวงจร ซึ่งจะมีส่วนของไฟเลี้ยงให้กับวงจรหลักอินดักชั่นฮีต ซึ่งจะมีจุดต่อ 3 จุดคือ บวก (+VBUS) , กราวด์ (GND) และเซนเตอร์ (CT) และส่วนของการควบคุมจะมีสัญญาณขับเพาเวอร์มอสเฟต Q1 และ Q2 และกราวด์

รูปที่ 6 เป็นลักษณะของวงจรต้นแบบของการทดลอง ซึ่งจากการทดลองพบว่าค่าความเหนี่ยวนำของ L1 (Work coil) จะมีค่าน้อย ซึ่งทำให้ประสิทธิภาพการทำงานยังไม่ดีเท่าที่ควร ทั้งนี้ส่วนหนึ่งเกิดความถี่สวิตชิ่งจะถูกกำหนดไว้ที่ประมาณ 31.372kHz เป็นค่าคงที่

รูปที่ 7 เป็นวงจรต้นแบบครั้งที่ 2 ซึ่งปรับให้ค่าความเหนี่ยวนำของ L1 (Work coil) เพิ่มขึ้น โดยยังใช้บอร์ดเดิมเป็นหลัก ด้วยการปรับขนาดเส้นผ่าศูนย์กลางของเหนี่ยวนำของ L1 ลดลงมาที่ 15 มิลลิเมตร พันจำนวนรอบเพิ่มที่ 15 รอบ และใช้ขนาดลวดเบอร์เดิม 16AWG

รูปที่ 8 ลักษณะของการทดลองต่างๆ โดยใช้ดิจิตอลออสซิลโลสโคปวัดสัญญาณต่างๆ เช่นสัญญาณขับเพาเวอร์มอสเฟต สัญญาณแรงดันตกคร่อมที่วงจร Tank circuit, แคล้มมิเตอร์วัดค่ากระแสไฟเลั้ยงสำหรับวงจร, มัลติมิเตอร์สำหรับวัดค่าแรงดันที่จ่ายให้กับวงจรอินเวอร์เตอร์ ในกรณีที่มีโพรบกระแส (Current Probe) จะช่วยให้เราวิเคราะห์ประสิทธิภาพได้เพิ่มขึ้น เช่น พลังงานสูญเสียในตัวเพาเวอร์มอสเฟต เป็นต้น
/* Simple Code Control Half-Bridge Inverter for Induction Heater Adj Power : POT = 10K(B) at A0 Dev by : Nattapon Date : 18/6/2021, V.0 */ int setPWM = 0; void setup() { Serial.begin(9600); pinMode (9, OUTPUT); pinMode (10, OUTPUT); TCCR1A=0b10110001; // Generate inverted PWM signals in output TCCR1B=0b00000001; // Set Fsw = 31.372kHz delay(500); OCR1A = setPWM; OCR1B = 255-setPWM; } void loop() { int sensorValue = analogRead(A0); setPWM = (sensorValue/8); OCR1A = setPWM; OCR1B = 255-setPWM; delay(50); }
ในส่วนโปรแกรมโปรแกรมข้างบนนี้ เป็นตัวอย่างเบื้องต้นสำหรับการทดลองโครงงาน ซึ่งเป็นระบบควบคุมแบบเปิด (Open loop) โดยเราสามารถควบคุมการจ่ายกำลังไฟฟ้าจากตัวต้านทานปรับค่าเข้ามาที่ขา A0 และนอกจากนี้ผู้อ่านสามารถนำไปพัฒนาเพิ่มเติม ในการควบคุมแบบปิดต่างๆ รวมทั้งการควบคุมกระแสให้กับวงจรอินเวอร์เตอร์

รูปที่ 9 เป็นลักษณะการทดลองเพื่อสังเกตการเปลี่ยนแปลงของแรงดันที่ตกคร่อมวงจร Tank circuit เมื่อนำวัสดุ หรือชิ้นงานต่างๆ สำหรับให้ความร้อน เข้ามายังตัวขดลวดเหนี่ยวนำความร้อน (Work coil)

รูปที่ 10 เป็นการทดลองวัดสัญญาณที่เกิดขึ้นจากบอร์ดควบคุม Arduino UNO โดยเราสามารถปรับความกว้างของสัญญาณพัลซ์วิดธ์มอดูเลตชั่น (Duty cycle) ได้ในช่วง 0 ถึง 45% ซึ่งจะหมายถึง การปรับค่าการจ่ายพลังงานสำหรับเหนี่ยวนำความร้อนให้กับชิ้นงานที่ต้องการ

รูปที่ 11 เป็นการทดลองให้วงจรสร้างความร้อนกับตะปูขนาดประมาณ 2 นิ้ว ซึ่งจากการทดลองใช้เวลาประมาณ 25 วินาที ตะปูก็จะแดงขึ้น ตามรูปในกรอบสีแดงพลังงานที่ใช้ประมาณ 75 วัตต์

รูปที่ 12 วงจรที่ใช้ในการทดลองโครงงานซึ่งจะเห็นว่าเป็นโครงสร้างแบบง่ายครับ ผู้อ่านสามารถนำไปพัฒนาต่อได้ตามต้องการ โดยเฉพาะในส่วนของวงจรสนับเบอร์สำหรับเพาเวอร์มอสเฟต วงจรตรวจจับกระแสให้กับวงจรอินเวอร์เตอร์ ซึ่งจะช่วยให้วงจรโดยรวมทำงานได้ดียิ่งขึ้น
*สำหรับโครงงานอินดักชั่นฮีตก่อนหน้านี้ (Mini Induction Heater By Self Oscillating) สามารถติดตามได้ที่ลิงก์นี้ครับ https://www.electronicsdna.com/mini-induction-heater-by-self-oscillating/
สำหรับโครงงานนี้เป็นอีก 1 โครงงานกับการสร้างความร้อนด้วยการเหนี่ยวนำขนาดเล็ก ซึ่งยังเป็นวงจรต้นแบบในการเรียนรู้เบื้องต้น โดยใช้วงจรอินเวอร์เตอร์แบบฮาร์บริดจ์ และเป็นรูปแบบการทำงานอีกลักษณะหนึ่ง นอกจากนี้บอร์ดควบคุมจะใช้ Arduino UNO ในการสร้างสัญญาณขับเพาเวอร์มอสเฟตด้านบน (High side) และด้านล่าง (Low side) สำหรับ Q1 และ Q2 รวมทั้งปรับขนาดความกว้างของสัญญาณพัลซ์วิดธ์ได้ และคิดว่าโครงงานนี้จะแนวความคิดเบื้องต้นและเป็นประโยชน์สำหรับนำไปพัฒนาต่อตามความเหมาะสมนะครับ.
Reference
- http://www.mit.edu/~milesdai/projects/inductionheater/index.html
- http://danyk.cz/induk2_en.html
- https://vtechworks.lib.vt.edu/bitstream/handle/10919/77400/Amrhein_AA_T_2015.pdf?sequence=1&isAllowed=y
- https://www.st.com/resource/en/application_note/dm00189871-induction-cooking–igbts-in-resonant-converters-stmicroelectronics.pdf
- https://www.semanticscholar.org/paper/New-Built-In-Induction-Heating-Cooker-Using-ZVS-PWM-Sugimura-Saha/99bf7d487b0fec71a7a2dc95a58a6b944f69eed5
- https://www.iosrjournals.org/iosr-jeee/Papers/Vol11%20Issue%205/Version-4/C1105041823.pdf
- https://www.66pacific.com/calculators/coil-inductance-calculator.aspx