อธิบายการทำงานของเซอร์โวมอเตอร์ (Servo Motor)

1. เซอร์โวมอเตอร์คืออะไร? (What is a Servo Motor?)

  • หน้าที่: แปลงพลังงานไฟฟ้าเป็นพลังงานกล โดยเน้นที่ “การควบคุมตำแหน่งที่แม่นยำ” (Precise Control) ต่างจาก DC Motor ทั่วไปที่หมุนไปเรื่อยๆ
  • การใช้งาน: แขนหุ่นยนต์, ระบบอัตโนมัติ, การบังคับเลี้ยวในรถบังคับวิทยุ (RC Car)
  • ประเภท:
    • Closed Loop (แบบปิด): หมุนได้จำกัด (ปกติ 180 องศา) มีตัวกั้นภายใน เหมาะสำหรับการควบคุมตำแหน่งที่แน่นอน
    • Open Loop (แบบเปิด): หมุนได้รอบตัว 360 องศา (พบได้น้อยกว่าในบริบทของเซอร์โวมาตรฐาน)

2. สเปคที่ควรรู้ (Key Specifications)

  • แรงบิด (Torque): มักบอกเป็นหน่วย kg.cm หรือ oz.in
    • ตัวอย่าง: สเปค 25 kg.cm หมายถึง ที่ระยะห่างจากแกนหมุน 1 ซม. มอเตอร์ยกของหนักได้ 25 กก. แต่ถ้าห่างออกไป 2 ซม. จะยกได้ลดลงเหลือ 12.5 กก.
  • แรงดันไฟ (Voltage): ยิ่งโวลต์สูง แรงบิดยิ่งเยอะและหมุนเร็วขึ้น แต่ต้องไม่เกินสเปคที่ระบุ (เช่น 4.8 – 7.2V)
  • กระแสไฟ (Current): กินกระแสน้อยเมื่อหยุดนิ่ง (Hold position) แต่จะกินกระแสสูงมากเมื่อเริ่มขยับหรือเมื่อมอเตอร์ถูกขัดขวางการหมุน (Stall)

3. ส่วนประกอบภายใน (Inside a Servo)

  1. มอเตอร์ DC (DC Motor): เป็นต้นกำเนิดพลังงาน หมุนด้วยความเร็วสูงแต่แรงบิดต่ำ
  2. ชุดเกียร์ (Gear Train): ทำหน้าที่ทดรอบ เพื่อเปลี่ยนความเร็วสูงให้เป็นความเร็วต่ำ แต่ได้ “แรงบิดมหาศาล”
  3. วงจรควบคุม (Control Circuit): แผงวงจรขนาดเล็กสำหรับรับคำสั่ง
  4. ตัวต้านทานปรับค่าได้ (Potentiometer): เชื่อมต่อกับแกนหมุนสุดท้าย ทำหน้าที่เป็นเซนเซอร์บอกตำแหน่ง (Feedback) ว่าตอนนี้แขนเซอร์โวหมุนไปอยู่ที่องศาไหนแล้ว

4. หลักการทำงาน (How it works)

  • สัญญาณควบคุม (PWM): เซอร์โวรับสัญญาณแบบ Pulse Width Modulation (PWM) ซึ่งส่งมาทุกๆ 20 มิลลิวินาที (50Hz)
    • ความกว้างของสัญญาณ (Pulse Width) คือตัวกำหนดองศา:
      • Pulse กว้าง -> หมุนซ้าย
      • Pulse แคบ -> หมุนขวา
      • (ค่าความกว้างที่แน่นอนขึ้นอยู่กับรุ่น แต่โดยรวมคือใช้ความกว้างของสัญญาณกำหนดตำแหน่ง)
  • ระบบป้อนกลับ (Feedback Loop):
    1. วงจรรับสัญญาณ PWM เข้ามา (ค่าเป้าหมาย)
    2. วงจรเปรียบเทียบกับค่าแรงดันไฟฟ้าจาก Potentiometer ภายใน (ค่าปัจจุบัน)
    3. ถ้าค่าไม่ตรงกัน วงจรจะสั่งมอเตอร์หมุนจนกว่า Potentiometer จะหมุนไปตรงกับค่าเป้าหมาย แล้วจึงหยุด

5. การเขียนโปรแกรม Arduino ควบคุมเซอร์โว

ในวิดีโอสาธิตการต่อวงจรใช้ Arduino รับค่าจาก Potentiometer ตัวนอก (Knob) เพื่อไปหมุนเซอร์โว

  • การต่อสาย:
    • สายสีแดง (ไฟบวก) -> 5V
    • สายสีน้ำตาล/ดำ (กราวด์) -> GND
    • สายสีส้ม/เหลือง (สัญญาณ) -> ขา Pin 9 ของ Arduino
  • โค้ด Arduino:
    • ใช้ไลบรารี <Servo.h> เพื่อความง่าย
    • ใช้คำสั่ง map() เพื่อแปลงค่าจาก Potentiometer (0-1023) ให้เป็นองศาของเซอร์โว (0-180)
    • ใช้คำสั่ง myservo.write(angle) เพื่อสั่งให้เซอร์โวหมุนไปตามองศาที่คำนวณได้

สรุปสั้นๆ: เซอร์โวคือมอเตอร์ที่มีเกียร์ทดแรงและมีสมองกลคอยเช็คตำแหน่งตัวเองตลอดเวลา ทำให้เราสั่งให้มันหันไปที่องศาไหนก็ได้ตามต้องการครับ

วิดีโอ: Servo Motors, how do they work?

Comments

No comments yet. Why don’t you start the discussion?

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *