10 มิ.ย. 2023 เวลา 06:37 • วิทยาศาสตร์ & เทคโนโลยี

การควบคุม PWM ด้วยระดับแรงดัน โดยใช้ PIC10F322

การใช้งาน PWM พบเห็นได้ทั่วไปโดยเฉพาะวงจรควบคุมมอเตอร์
บทความนี้จะกล่าวถึงการสื่อสารด้วย PWM ซึ่งต้องการแก้ปัญหาการส่งข้อมูลระดับแรงดันแบตเตอรรี่หลายเซลล์ ซึ่งเมื่อต้องการวัดระดับแรงดันแบตเตอรรี่เซลล์บนสุดซึ่งมีค่ามากที่สุด เช่น แบตเตอรี่ตะกั่ว-กรดต่ออนุกรมกัน 35 ก้อน (Monoblock) แรงดันสูงสุดก้อนละ 13.6 — 14.0 โวลต์ แรงดันที่ก้อนสุดท้ายจะมีค่า 476.0-490.0 โวลต์ ทำให้เมื่อวัดแรงดันเทียบกราวด์ได้ยาก เพราะจะต้องผ่านวงจร Voltage Divider ก่อนนำไปเข้า Differential Amplifier
เพื่อแก้ปัญหาเรื่องระดับแรงดันจึงใช้ไมโครคอนโทรลเลอร์วัดแบตเตอรี่แยกแต่ละ Monoblock ซึ่งการวัดแบบนี้จะมีปัญหาเรื่องราคาอุปกรณ์
ดังนั้นจะต้องออกแบบให้ถูกที่สุด แต่ทำงานได้ จึงเลือกใชไมโครคอนโทรลเลอร์ถูกที่สุดคือ PIC10F322 สื่อสารผ่าน Opto-Isolator ไปยังส่วนควบคุมหลัก
ปัญหาที่ตามมาเมื่อใช้ PIC10F322
ไม่มี UART แก้ปัญหาโดยสื่อสารเพียงทางเดียวผ่าน Opto-Isolator ซึ่งไม่สามารถใช้ความเร็วสูงได้ จึงเลือกใช้ PWM สำหรับแก้ปัญหาการสื่อสาร
ADC ความละเอียด 8 Bits ซึ่งน้อยเกินไป แก้ไขปัญหาโดยใช้วิธี Oversampling
การใช้ PWM ในการสื่อสาร
PWM ใน PIC10F322 มีความละเอียดสูงสุด 10 Bits เมื่อทำความถี่ Sampling ต่ำสุดได้ที่ 3.82 Hz (ใช้ Internal Osc ที่ 250kHz) จะได้บิตละ 256 uS ซึ่งส่วนควบคุมหลักน่าจะสามารถตรวจจับได้ความแตกต่างได้
วงจร
ในวงจรประกอบด้วยส่วนของ PIC10F322 ฟิลเตอร์ความถี่ต่ำ วงจรแบ่งแรงดัน และออสซิลโลสโคป ส่วนของฟิลเตอร์ความถี่ต่ำ ใช้สำหรับเทียบเอาต์พุตว่ามีลักษณะใกล้เคียงกับอินพุตหรือไม่ โดยจะใช้อินพุตเป็น Sawtooth Wave
การทดสอบโดยใช้ Sawtooth
ใช้ Sawtooth wave ค่อยๆ เพิ่มแรงดันป้อนไปยัง ADC ของ PIC10F322 แล้วสร้าง PWM จากเพื่อสังเกตุลักษณะเอาต์พุต โดย
— เส้นสีฟ้าคือ แรงดันที่ป้อนไปยัง ADC
— สีเหลือคือ แรงดันที่สร้างจาก PWM ของ PIC10F322 ได้จากการผ่าน กราฟสีชมพูไปยัง Lowpass Filter
— สีชมพูคือ PWM ที่สร้างขึ้น
โฆษณา