กลับหน้าหลัก
views
วิธีใช้งาน Arduino ควบคุม Servo ES08MA หมุน 0-180 องศา
Last updated on

วิธีใช้งาน Arduino ควบคุม Servo ES08MA หมุน 0-180 องศา


วิธีใช้งาน Arduino ควบคุม Servo ES08MA หมุน 0-180 องศา

Servo ES08MA เป็นมอเตอร์ขนาดเล็กที่มีฟีดแบ็คตำแหน่ง หมุนได้ 0-180 องศา มีเฟืองโลหะแข็งแรง ให้แรงบิด 2.0 kg-cm ที่แรงดัน 6V เหมาะสำหรับโปรเจกต์หุ่นยนต์ หรือกลไกควบคุมมุมแบบต่าง ๆ

ภาพ Servo ES08MA พร้อมระบุสีสาย 3 เส้น - เหลือง(สัญญาณ), น้ำตาล(GND), แดง(+5V)

อุปกรณ์ที่ต้องเตรียม

  • Arduino UNO R3
  • ES08MA Servo Motor
  • Power Adapter 5V 4A พร้อมหัวแจ็ค 5.5x2.5mm
  • DC Jack ตัวเมีย ขนาด 2.1x5.5mm
  • สาย Jumper ผู้-ผู้ สำหรับต่อวงจร

การต่อสาย Servo ES08MA กับ Arduino

ข้อสำคัญคือต้องจ่ายไฟให้ Servo จาก Adapter ภายนอก ไม่ใช่จากขา 5V ของ Arduino เพราะ Servo กินกระแสสูงตอนหมุน ถ้าจ่ายจากบอร์ดอาจทำให้ Arduino รีเซ็ตหรือเสียหายได้

ไดอะแกรมการต่อสาย - Arduino UNO ขา 9 (สายเหลือง) → สัญญาณ Servo, GND Arduino → สายน้ำตาล Servo และขั้วลบ Adapter, Adapter 5V 4A → ขั้วบวก Servo (สายแดง) และขั้วบวกของ DC Jack

รายละเอียดการต่อ:

  • ขา 9 ของ Arduino UNO → สายสีเหลือง (สัญญาณ)
  • GND ของ Arduino UNO → สายสีน้ำตาล (GND) และขั้วลบ (-) ของ Adapter
  • สายสีแดง → ขั้วบวก (+) ของ Adapter ผ่าน DC Jack

โค้ด Arduino ควบคุม Servo หมุนวน 0-180 องศา

#include <Servo.h>

Servo myServo;

void setup() {
  myServo.attach(9);  // กำหนดขา 9 เป็นขาควบคุม Servo
}

void loop() {
  // หมุนจาก 0 ไป 180 องศา
  for (int angle = 0; angle <= 180; angle += 1) {
    myServo.write(angle);
    delay(15);  // รอให้ Servo หมุนไปถึงมุม
  }

  delay(1000);  // หยุดค้าง 1 วินาที

  // หมุนกลับจาก 180 ไป 0 องศา
  for (int angle = 180; angle >= 0; angle -= 1) {
    myServo.write(angle);
    delay(15);
  }

  delay(1000);
}

โค้ดนี้ทำให้ Servo หมุนจาก 0° ไป 180° แล้วหยุด 1 วินาที จากนั้นหมุนกลับมาที่ 0° แล้วหยุดอีก 1 วินาที วนซ้ำไปเรื่อย ๆ

วิธีอัปโหลดโค้ดลงบอร์ด

  1. เปิด Arduino IDE แล้ววางโค้ดด้านบน
  2. เสียบสาย USB ระหว่าง Arduino กับคอมพิวเตอร์
  3. ไปที่ Tools → Port เลือก COM ที่เชื่อมต่อกับบอร์ด
  4. ไปที่ Tools → Board เลือก Arduino UNO
  5. กดปุ่ม Upload (ลูกศรขวา)
หน้าต่าง Arduino IDE แสดงข้อความ Done uploading เมื่ออัปโหลดสำเร็จ

ปรับแต่งเพิ่มเติม

หยุดที่มุมเฉพาะ: ถ้าต้องการให้ Servo หยุดที่มุมใดมุมหนึ่ง ใช้คำสั่ง myServo.write(90) แทน loop ตัวอย่าง:

#include <Servo.h>

Servo myServo;

void setup() {
  myServo.attach(9);
  myServo.write(90);  // ตั้งค่าเริ่มต้นที่มุม 90 องศา
}

void loop() {
  // เพิ่มโค้ดควบคุมอื่น ๆ ตรงนี้
}

ปรับความเร็ว: แก้ค่า delay(15) เป็นตัวเลขที่ต้องการ ค่าน้อยลง = หมุนเร็วขึ้น, ค่ามากขึ้น = หมุนช้าลง

ข้อควรระวัง

  • ตรวจสอบว่าจ่ายไฟ 5V ให้ Servo จาก Adapter เท่านั้น ห้ามต่อไฟจากขา 5V ของ Arduino โดยตรง
  • ต่อ GND ร่วมกันระหว่าง Arduino, Servo และ Adapter ด้วย ไม่งั้น Servo อาจทำงานผิดปกติ
  • ถ้า Servo สั่นหรือไม่หมุน ให้ตรวจสายสีให้ถูกต้องก่อน

วิดีโออ้างอิง

อยากทำโปรเจคแบบนี้?

รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน

หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก

จ้างทำโปรเจคเลย

ความคิดเห็น