วงจรอินเวอร์เตอร์ Arduino Pure Sine Wave พร้อมรหัสโปรแกรมเต็ม

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





บทความนี้อธิบายวงจรอินเวอร์เตอร์คลื่นไซน์บริสุทธิ์อย่างง่ายโดยใช้ Arduino ซึ่งสามารถอัพเกรดเพื่อให้ได้กำลังขับที่ต้องการตามความต้องการของผู้ใช้

การทำงานของวงจร

ในบทความที่แล้วเราได้เรียนรู้ วิธีสร้างการมอดูเลตความกว้างพัลส์คลื่นไซน์หรือ SPWM ผ่าน Arduino เราจะใช้บอร์ด Arduino ตัวเดียวกันเพื่อสร้างวงจรอินเวอร์เตอร์คลื่นไซน์บริสุทธิ์แบบธรรมดาที่เสนอการออกแบบนั้นตรงไปตรงมาอย่างมากดังแสดงในรูปต่อไปนี้



คุณเพียงแค่ต้อง โปรแกรมบอร์ด arduino ด้วยรหัส SPWM ตามที่อธิบายไว้ในบทความก่อนหน้านี้และเชื่อมต่อกับอุปกรณ์ภายนอกบางอย่าง

วงจรอินเวอร์เตอร์ Arduino Pure Sine Wave

พิน # 8 และพิน # 9 สร้าง SPWM สลับกันและเปลี่ยน mosfets ที่เกี่ยวข้องด้วยรูปแบบ SPWM เดียวกัน



ในทางกลับกัน mosfst จะเหนี่ยวนำหม้อแปลงที่มีรูปคลื่น SPWM กระแสสูงโดยใช้พลังงานแบตเตอรี่ทำให้รองของ trafo สร้างรูปคลื่นที่เหมือนกัน แต่ ที่ระดับไฟ AC .

วงจรอินเวอร์เตอร์ Arduino ที่นำเสนอสามารถอัปเกรดเป็นระดับวัตต์ที่สูงขึ้นที่ต้องการได้เพียงแค่อัปเกรด mosfets และการจัดอันดับ trafo ตามนั้นหรือคุณสามารถแปลงสิ่งนี้เป็นสะพานแบบเต็มหรือ อินเวอร์เตอร์คลื่นไซน์ H-bridge

เปิดบอร์ด Arduino

ในแผนภาพบอร์ด Arduino สามารถเห็นได้จากวงจร 7812 IC ซึ่งสามารถสร้างได้โดยการเดินสายไฟ a มาตรฐาน 7812 IC ในลักษณะต่อไปนี้ IC จะตรวจสอบให้แน่ใจว่าอินพุตไปยัง Arduino ไม่เกินเครื่องหมาย 12V แม้ว่าสิ่งนี้อาจไม่สำคัญอย่างยิ่งเว้นแต่แบตเตอรี่จะได้รับการจัดอันดับมากกว่า 18V

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

รูปภาพรูปคลื่นสำหรับ Arduino SPWM

Arduino Pure Sine Wave Inverter วงจรรูปคลื่น SPWM

ภาพรูปคลื่น SPWM ที่ได้จากการออกแบบอินเวอร์เตอร์ Arduino ข้างต้น (ทดสอบและส่งโดย Mr. Ainsworth Lynch)


สำหรับรหัสโปรแกรมโปรดไปที่ลิงค์ต่อไปนี้:

วงจรกำเนิด Arduino SPWM


อัพเดท:

ใช้ BJT Buffer Stage เป็น Level Shifter

เนื่องจากบอร์ด Arduino จะให้เอาต์พุต 5V จึงอาจไม่ใช่ค่าที่เหมาะสำหรับการขับมอสเฟตโดยตรง

ดังนั้นอาจจำเป็นต้องใช้ขั้นตอนการเปลี่ยนระดับ BJT ระดับกลางเพื่อเพิ่มระดับเกตเป็น 12V เพื่อให้มอสเฟ็ททำงานได้อย่างถูกต้องโดยไม่ทำให้อุปกรณ์ร้อนขึ้นโดยไม่จำเป็น แผนภาพที่อัปเดต (แนะนำ) สามารถดูได้ด้านล่าง:

วงจรอินเวอร์เตอร์ Arduino sinewave อย่างง่ายโดยใช้ SPWM

การออกแบบข้างต้นเป็นแบบที่แนะนำ! (อย่าลืมเพิ่มตัวตั้งเวลาหน่วงตามคำอธิบายด้านล่าง !!)

คลิปวิดีโอ

ส่วนรายการ

ตัวต้านทานทั้งหมดคือ 1/4 วัตต์ CFR 5%

  • 10K = 4
  • 1K = 2
  • BC547 = 4nos
  • Mosfets IRF540 = 2nos
  • Arduino UNO = 1
  • Transformer = 9-0-9V / 220V / 120V กระแสตามความต้องการ
  • แบตเตอรี่ = 12V ค่า Ah ตามความต้องการ

ผลล่าช้า

เพื่อให้แน่ใจว่าสเตจ mosfet ไม่เริ่มต้นในระหว่างการบูต Arduino หรือเริ่มต้นระบบคุณสามารถเพิ่มตัวสร้างความล่าช้าต่อไปนี้และเชื่อมต่อที่ฐานของทรานซิสเตอร์ BC547 ด้านซ้าย วิธีนี้จะป้องกัน mosfets และป้องกันไม่ให้เกิดการลุกไหม้ระหว่างเปิดสวิตช์เปิดเครื่อง Arduino

โปรดทดสอบและยืนยันเอาต์พุตความล่าช้าด้วยไฟ LED ที่คอลเลคเตอร์ก่อนที่จะปิดอินเวอร์เตอร์

การเพิ่มตัวควบคุมแรงดันไฟฟ้าอัตโนมัติ

เช่นเดียวกับอินเวอร์เตอร์อื่น ๆ เอาต์พุตจากการออกแบบนี้อาจเพิ่มขึ้นถึงขีด จำกัด ที่ไม่ปลอดภัยเมื่อชาร์จแบตเตอรี่จนเต็ม

เพื่อควบคุมสิ่งนี้ เครื่องควบคุมแรงดันไฟฟ้าอัตโนมัติ สามารถจ้างได้ตามที่แสดงด้านล่าง

ตัวสะสม BC547 ควรเชื่อมต่อกับฐานของคู่ BC547 ด้านซ้ายซึ่งเชื่อมต่อกับ Arduino ผ่านตัวต้านทาน 10K

การแก้ไขเอาต์พุต Arduino sinewave อัตโนมัติ

สำหรับวงจรแก้ไขแรงดันไฟฟ้ารุ่นแยกเราสามารถแก้ไขวงจรด้านบนด้วยหม้อแปลงดังที่แสดงด้านล่าง

ตรวจสอบให้แน่ใจว่าได้ต่อสายลบเข้ากับขั้วลบของแบตเตอรี่

วิธีการตั้งค่า

ในการตั้งค่าวงจรแก้ไขแรงดันไฟฟ้าอัตโนมัติให้ป้อน 230V หรือ 110V ที่เสถียรตามข้อกำหนดอินเวอร์เตอร์ของคุณไปยังด้านอินพุตของวงจร

จากนั้นปรับค่าที่ตั้งไว้ล่วงหน้า 10k อย่างระมัดระวังเพื่อให้ไฟ LED สีแดงสว่างขึ้น นั่นคือทั้งหมดที่ปิดผนึกที่ตั้งไว้ล่วงหน้าและเชื่อมต่อวงจรกับบอร์ด Arduino ด้านบนเพื่อใช้การควบคุมแรงดันไฟฟ้าขาออกอัตโนมัติที่ตั้งใจไว้

ใช้ CMOS Buffer

การออกแบบอื่นสำหรับวงจรอินเวอร์เตอร์ Arduino sinewave ด้านบนสามารถดูได้ด้านล่าง CMOS IC ใช้เป็นไฟล์ ช่วยบัฟเฟอร์ สำหรับเวที BJT

SPWM Arduino อินเวอร์เตอร์

สำคัญ:

เพื่อหลีกเลี่ยงการเปิดสวิตช์โดยไม่ได้ตั้งใจก่อนที่จะบูต Arduino วิธีง่ายๆ ล่าช้าในวงจรจับเวลา อาจรวมอยู่ในการออกแบบข้างต้นดังที่แสดงด้านล่าง:

Arduino พร้อมสวิตช์เปิดล่าช้า


ก่อนหน้านี้: Arduino SPWM Generator Circuit - รายละเอียดโค้ดและไดอะแกรม ถัดไป: เครื่องวัดความถี่ Arduino ใช้จอแสดงผล 16 × 2