มารู้จักกับสัญญาณ PWM กันเถอะ

PWM คืออะไร ?

Tanabodin Kamol
iCreativeSystems
Published in
2 min readJun 22, 2018

--

Pulse Width Modulation(PWM) เป็นเทคนิคที่ทำให้เราสามารถอ่าน/เขียนข้อมูลแบบ analog ด้วยสัญญาณ digital ได้ โดยตัวควบคุมการสร้างสัญญาณดิจิตอล (Digital control) จะสร้างสัญญาณคลื่นสี่เหลี่ยมออกมาดังรูปที่ 1 โดยสัญญาณที่สร้างออกมาจะสลับกันระหว่าง เปิด(HIGH) กับ ปิด(LOW) รูปแบบสัญญาณเปิด-ปิดนี้สามารถจำลองเป็นแรงดันไฟฟ้าระหว่าง เปิด (5 Volts) กับ ปิด (0 Volts)

ภาพที่ 1 แสดงสัญญาณเปิด(HIGH) และปิด(LOW)

เราเรียกช่วงที่เป็นปิดหรือเปิดตามการทำงาน เพราะช่วงที่เป็นปิดแรงดันไฟฟ้าจะเป็น 0 ทำให้ไม่มีการทำงาน ส่วนช่วงที่เป็นเปิดคือช่วงที่มีแรงดันไฟฟ้า ทำให้อุปกรณ์ทำงานได้

ซึ่งช่วงของเวลาที่สัญญาณเป็นเปิด เมื่อเทียบกับช่วงเวลาที่สัญญาณออกมาทั้งหมด เราจะเรียกช่วงเวลาตรงนี้ว่า ความกว้างของสัญญาณ (Pulse width) ดังภาพที่ 2

ดังนั้นเพื่อให้ได้ข้อมูลแบบ analog ที่ต่างกัน เราจะใช้ความกว้างของสัญญาณที่แตกต่างกันในการบ่งบอกค่าของข้อมูล analog

ภาพที่ 2 ตัวอย่างสัญญาณ PWM

ในภาพที่ 2 ความกว้างของเส้นสีเขียวจะแสดงถึงช่วงเวลาปกติ ระยะเวลาหรือช่วงเวลานี้เรียกว่า period เป็นค่าผกผันของความถี่อุปกรณ์ หากความถี่ของอุปกรณ์มีค่าประมาณ 50 Hz (ความถี่ขึ้นอยู่กับอุปกรณ์) ตวามกว้างของเส้นสีเขียวจะเป็นช่วงเวลา 20 ms (หาได้จาก T = 1/f)

ถ้าอุปกรณ์ที่จะใช้มีการทำงานที่ความกว้างพัลซ์ 1000–2000 us การทำงาน 100% มีความหมายว่าเจอสัญญาณเปิด 2000 us ถ้ามีการทำงานเพียง 50% จะเจอสัญญาณเปิดเป็นเวลา 1500 us

เราอาจจะสงสัยว่า แล้วถ้าเรามีมอเตอร์ตัวนึงที่หมุนได้ 180 องศา ที่อยากสั่งการให้หมุนโดยการใส่องศาที่ต้องการหมุนเข้าไป เราจะสั่งให้หมุนด้วยสัญญาณ PWM อย่างไร เราต้องเอาค่าของมุมที่ได้มาทำการ mapping ข้อมูลก่อน จึงจะนำข้อมูลนั้นมาสร้างเป็นสัญญาณพัลซ์ได้

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

ในบทความถัดไปผมจะแนะนำเกี่ยวกับสัญญาณ PPM ซึ่งจะเกี่ยวข้องกับสัญญาณ PWM และจะแก้ปัญหาพอร์ตไม่พอได้ยังไงนั่น มารอดูกัน …

อ่านต่อ : สัญญาณ PPM

อ่านต่อ : สัญญาณ analog และสัญญาณ digital

Reference

  1. https://www.arduino.cc/en/Tutorial/PWM
  2. https://learn.sparkfun.com/tutorials/pulse-width-modulation

--

--

Tanabodin Kamol
iCreativeSystems

I always self-study about electronic devices and computer programming, So, I will share what I have learned for all of you! Sometime It’s code for Python