การใช้งาน Arduino Nano กับ Servo Motor

1. บทนำ

Servo Motor (เซอร์โวมอเตอร์) เป็นมอเตอร์ไฟฟ้าที่สามารถหมุนได้อย่างแม่นยำตามมุมที่กำหนด แตกต่างจากมอเตอร์ธรรมดาที่หมุนต่อเนื่อง เซอร์โวถูกใช้งานอย่างแพร่หลาย เช่น

  • แขนกลหุ่นยนต์
  • หุ่นยนต์เดิน
  • ระบบเปิด–ปิดประตูอัตโนมัติ
  • เครื่องบังคับวิทยุ (RC)

ในบทเรียนนี้ นักเรียนจะได้เรียนรู้การต่อวงจรและเขียนโปรแกรมให้ Servo Motor หมุนไปยังมุมที่ต้องการ


2. อุปกรณ์ที่ใช้

  • บอร์ด Arduino Nano
  • Servo Motor (เช่น SG90 หรือ MG90S)
  • สายไฟ Jumper

3. หลักการทำงานของ Servo

Servo Motor ประกอบด้วย 3 ขา ได้แก่:

  1. VCC (สายสีแดง) → ต่อกับไฟเลี้ยง +5V จาก Arduino
  2. GND (สายสีดำ/น้ำตาล) → ต่อกับ GND ของ Arduino
  3. Signal (สายสีเหลือง/ส้ม) → รับสัญญาณควบคุมจาก Arduino โดยใช้สัญญาณ PWM (Pulse Width Modulation)

ค่ามุมของ Servo จะถูกกำหนดโดยความกว้างของสัญญาณพัลส์ เช่น:

  • พัลส์กว้าง 1 ms → มุมประมาณ
  • พัลส์กว้าง 1.5 ms → มุมประมาณ 90°
  • พัลส์กว้าง 2 ms → มุมประมาณ 180°

4. การต่อวงจร

จากภาพ:

  • ขา 5V ของ Arduino → ต่อกับสายแดง (VCC) ของ Servo
  • ขา GND ของ Arduino → ต่อกับสายดำ/น้ำตาล (GND) ของ Servo
  • ขา D2 ของ Arduino → ต่อกับสายสัญญาณสีส้ม (Signal) ของ Servo

5. ตัวอย่างโค้ด

#include <Servo.h>   // เรียกใช้ไลบรารี Servo

Servo myservo;       // สร้างอ็อบเจกต์ควบคุม Servo

void setup() {
  myservo.attach(2); // กำหนดให้ Servo ควบคุมด้วยขา D2
}

void loop() {
  myservo.write(0);     // หมุนไปที่ 0 องศา
  delay(1000);          // หน่วงเวลา 1 วินาที

  myservo.write(90);    // หมุนไปที่ 90 องศา
  delay(1000);

  myservo.write(180);   // หมุนไปที่ 180 องศา
  delay(1000);

  myservo.write(90);    // หมุนกลับมาที่ 90 องศา
  delay(1000);
}

6. คำอธิบายโค้ด

  1. #include <Servo.h> → เรียกใช้ Servo Library ที่ช่วยให้เขียนโปรแกรมควบคุม Servo ได้ง่ายขึ้น
  2. Servo myservo; → ประกาศตัวแปรชนิด Servo
  3. myservo.attach(2); → กำหนดให้ Servo รับสัญญาณจาก ขา D2
  4. myservo.write(0); → ส่งสัญญาณให้ Servo หมุนไปที่
  5. delay(1000); → รอ 1 วินาที ก่อนทำคำสั่งถัดไป
  6. โปรแกรมวนซ้ำ (loop) ทำให้ Servo หมุนไปมาอย่างต่อเนื่อง

7. สรุป

  • Servo Motor สามารถควบคุมมุมได้แม่นยำ โดยใช้สัญญาณ PWM
  • Arduino Nano สามารถควบคุม Servo ได้อย่างง่ายดายด้วยไลบรารี Servo.h
  • การทดลองนี้ช่วยให้นักเรียนเข้าใจการควบคุมมอเตอร์แบบแม่นยำ ซึ่งเป็นพื้นฐานสำคัญในการสร้าง หุ่นยนต์ และ ระบบอัตโนมัติ