วิธีใช้งาน Arduino ควบคุม Servo ES08MA หมุน 0-180 องศา
วิธีใช้งาน Arduino ควบคุม Servo ES08MA หมุน 0-180 องศา
Servo ES08MA เป็นมอเตอร์ขนาดเล็กที่มีฟีดแบ็คตำแหน่ง หมุนได้ 0-180 องศา มีเฟืองโลหะแข็งแรง ให้แรงบิด 2.0 kg-cm ที่แรงดัน 6V เหมาะสำหรับโปรเจกต์หุ่นยนต์ หรือกลไกควบคุมมุมแบบต่าง ๆ
อุปกรณ์ที่ต้องเตรียม
- 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 รีเซ็ตหรือเสียหายได้
รายละเอียดการต่อ:
- ขา 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 วินาที วนซ้ำไปเรื่อย ๆ
วิธีอัปโหลดโค้ดลงบอร์ด
- เปิด Arduino IDE แล้ววางโค้ดด้านบน
- เสียบสาย USB ระหว่าง Arduino กับคอมพิวเตอร์
- ไปที่ Tools → Port เลือก COM ที่เชื่อมต่อกับบอร์ด
- ไปที่ Tools → Board เลือก Arduino UNO
- กดปุ่ม Upload (ลูกศรขวา)
ปรับแต่งเพิ่มเติม
หยุดที่มุมเฉพาะ: ถ้าต้องการให้ 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 แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก
จ้างทำโปรเจคเลย