อินเวอร์เตอร์ตัวแปลงวงจร SMPS และตัวควบคุมความเร็ว…. สิ่งหนึ่งที่พบได้ทั่วไปในวงจรเหล่านี้คือประกอบด้วยสวิตช์อิเล็กทรอนิกส์จำนวนมากอยู่ภายใน สวิตช์เหล่านี้ไม่มีอะไรนอกจากอุปกรณ์อิเล็กทรอนิกส์กำลังเช่น MOSFET, IGBT, TRIAC เป็นต้นในการควบคุมสวิตช์อิเล็กทรอนิกส์กำลังดังกล่าวเรามักใช้สิ่งที่เรียกว่าสัญญาณ PWM (Pulse Width Modulation) นอกเหนือจากนี้สัญญาณ PWM ยังใช้สำหรับการขับเคลื่อนเซอร์โวมอเตอร์และสำหรับงานง่ายๆอื่น ๆ เช่นการควบคุมความสว่างของ LED
ในบทความก่อนหน้านี้เราได้เรียนรู้เกี่ยวกับ ADC ในขณะที่ ADC ใช้ในการอ่านสัญญาณอนาล็อกโดยอุปกรณ์ดิจิทัลเช่นไมโครคอนโทรลเลอร์ PWM สามารถถือได้ว่าเป็นตรงข้ามแน่นอนของมันPWM ใช้ในการผลิตสัญญาณอนาล็อกจากอุปกรณ์ดิจิตอลเช่นไมโครคอนโทรลเลอร์ ในบทความนี้เราจะเรียนรู้เกี่ยวกับสิ่งที่เป็นสัญญาณ PWM, PWM และพารามิเตอร์บางอย่างที่เกี่ยวข้องเพื่อที่เราจะได้มั่นใจในการนำไปใช้ในการออกแบบของเรา
PWM (Pulse Width Modulation) คืออะไร?
PWM ย่อมาจาก Pulse Width Modulation; เราจะพูดถึงเหตุผลของชื่อดังกล่าวในภายหลัง แต่ตอนนี้เข้าใจว่า PWM เป็นสัญญาณประเภทหนึ่งที่สามารถผลิตได้จาก IC ดิจิทัลเช่นไมโครคอนโทรลเลอร์หรือตัวจับเวลา 555 สัญญาณที่เกิดขึ้นจะมีรถไฟของพัลส์และพัลส์เหล่านี้จะอยู่ในรูปของคลื่นสี่เหลี่ยม นั่นคือในช่วงเวลาใดก็ตามคลื่นจะสูงหรือจะต่ำ เพื่อความง่ายในการทำความเข้าใจให้เราพิจารณาสัญญาณ 5V PWM ในกรณีนี้สัญญาณ PWM จะเป็น 5V (สูง) หรือที่ระดับพื้นดิน 0V (ต่ำ) ระยะเวลาที่สัญญาณยังคงสูงเรียกว่า " ตรงเวลา " และระยะเวลาที่สัญญาณอยู่ต่ำเรียกว่า " เวลาปิด "
สำหรับสัญญาณ PWM เราต้องดูพารามิเตอร์สำคัญสองตัวที่เกี่ยวข้องตัวหนึ่งคือรอบการทำงาน PWM และอีกตัวคือความถี่ PWM
รอบการทำงานของ PWM
ตามที่บอกไว้ก่อนหน้านี้สัญญาณ PWM จะเปิดอยู่ในช่วงเวลาหนึ่งจากนั้นจะหยุดทำงานในช่วงเวลาที่เหลือ สิ่งที่ทำให้สัญญาณ PWM นี้พิเศษและมีประโยชน์มากขึ้นคือเราสามารถกำหนดระยะเวลาที่ควรจะอยู่ได้โดยการควบคุมรอบการทำงานของสัญญาณ PWM
เปอร์เซ็นต์ของเวลาที่สัญญาณ PWM ยังคงสูง (ตรงเวลา) เรียกว่าเป็นรอบการทำงาน หากสัญญาณเปิดอยู่เสมอสัญญาณจะอยู่ในรอบการทำงาน 100% และหากปิดอยู่เสมอจะเป็นรอบการทำงาน 0% สูตรคำนวณรอบการทำงานแสดงอยู่ด้านล่าง
Duty Cycle = เปิดเวลา / (เปิดเวลา + ปิดเวลา)
ภาพต่อไปนี้เป็นสัญญาณ PWM ที่มีรอบการทำงาน 50% อย่างที่คุณเห็นเมื่อพิจารณาถึงช่วงเวลาทั้งหมด(เวลาตรง + เวลาปิด) สัญญาณ PWM จะยังคงเปิดอยู่เพียง 50% ของช่วงเวลาเท่านั้น
ความถี่ = 1 / เวลาช่วง เวลาช่วงเวลา = เวลาเปิด + เวลาปิด
โดยปกติสัญญาณ PWM ที่สร้างโดยไมโครคอนโทรลเลอร์จะอยู่ที่ประมาณ 500 เฮิร์ตซ์ความถี่สูงดังกล่าวจะใช้ในอุปกรณ์สวิตชิ่งความเร็วสูงเช่นอินเวอร์เตอร์หรือตัวแปลง แต่ไม่ใช่ทุกแอปพลิเคชันที่ต้องการความถี่สูง ตัวอย่างเช่นในการควบคุมเซอร์โวมอเตอร์เราจำเป็นต้องผลิตสัญญาณ PWM ด้วยความถี่ 50Hz ดังนั้นความถี่ของสัญญาณ PWM จึงสามารถควบคุมได้ด้วยโปรแกรมสำหรับไมโครคอนโทรลเลอร์ทั้งหมด
คำถามที่เกิดขึ้นโดยทั่วไปเกี่ยวกับ PWM
อะไรคือความแตกต่างระหว่าง Duty Cycle และความถี่ของสัญญาณ PWM?
วงจรการทำงานและความถี่ของสัญญาณ PWM มักจะสับสน อย่างที่เราทราบกันดีว่าสัญญาณ PWM เป็นคลื่นสี่เหลี่ยมที่มีเวลาและเวลาปิดโดยเฉพาะ ผลรวมของ เวลาตรง และ เวลานอก เรียกว่าช่วงเวลาเดียว การผกผันของช่วงเวลาหนึ่งเรียกว่าความถี่ ในขณะที่ระยะเวลาที่สัญญาณ PWM ควรจะยังคงอยู่ในช่วงเวลาหนึ่งจะถูกกำหนดโดยรอบการทำงานของ PWM
ที่จะนำมันง่ายวิธีการที่รวดเร็วสัญญาณ PWM ควรเปิดและปิดจะตัดสินใจโดยความถี่ของสัญญาณ PWM ที่และความเร็วในการว่านานแค่ไหนสัญญาณ PWM จะยังคงเปิดอยู่จะตัดสินใจโดยรอบการทำงานของสัญญาณ PWM
วิธีการแปลงสัญญาณ PWM เป็นแรงดันอนาล็อก?
สำหรับการใช้งานง่ายๆเช่นการควบคุมความเร็วของมอเตอร์กระแสตรงหรือการปรับความสว่างของ LED เราจำเป็นต้องแปลงสัญญาณ PWM ให้เป็นแรงดันไฟฟ้าแบบอะนาล็อก ซึ่งสามารถทำได้อย่างง่ายดายโดยใช้ตัวกรอง RC และมักใช้ในกรณีที่ต้องใช้คุณสมบัติ DAC วงจรสำหรับสิ่งเดียวกันดังแสดงด้านล่าง
ในกราฟที่แสดงด้านบนสีเหลืองคือสัญญาณ PWM และสีฟ้าคือแรงดันไฟฟ้าอะนาล็อกเอาต์พุต ค่าของตัวต้านทาน R1 และตัวเก็บประจุ C1 สามารถคำนวณได้ตามความถี่ของสัญญาณ PWM แต่โดยปกติจะใช้ตัวต้านทาน 5.7K หรือ 10K และใช้ตัวเก็บประจุ 0.1u หรือ 1u
วิธีการคำนวณแรงดันขาออกของสัญญาณ PWM?
แรงดันเอาต์พุตของสัญญาณ PWM หลังจากแปลงเป็นแอนะล็อกจะเป็นเปอร์เซ็นต์ของรอบการทำงาน ตัวอย่างเช่นถ้าแรงดันไฟฟ้าที่ใช้งานคือ 5V สัญญาณ PWM ก็จะมี 5V เมื่อสูง ในกรณีเช่นนี้สำหรับรอบการทำงาน 100% แรงดันเอาต์พุตจะเป็น 5V สำหรับรอบการทำงาน 50% จะเป็น 2.5V
แรงดันขาออก = รอบการทำงาน (%) * 5
ตัวอย่าง:
ก่อนหน้านี้เราเคยใช้ PWM กับไมโครคอนโทรลเลอร์ต่างๆในหลายโครงการของเรา:
- การปรับความกว้างพัลส์ด้วย ATmega32
- PWM พร้อม Arduino Uno
- การสร้าง PWM โดยใช้ไมโครคอนโทรลเลอร์ PIC
- การสอน Raspberry Pi PWM
- การควบคุมเซอร์โวมอเตอร์ด้วย Raspberry Pi
- การมอดูเลตความกว้างพัลส์ (PWM) โดยใช้ MSP430G2
- การมอดูเลตความกว้างพัลส์ (PWM) ใน STM32F103C8
- การควบคุมเซอร์โวมอเตอร์ด้วย Raspberry Pi
- DC Motor Control พร้อม Raspberry Pi
- ไฟหรี่ LED 1 วัตต์
- Arduino LED Dimmer โดยใช้ PWM
ตรวจสอบโครงการที่เกี่ยวข้องกับ PWM เพิ่มเติมได้ที่นี่