นางสาวพรรณพิลาศ ศรีสมศักดิ์ 6031280015 1สทค1
นางสาวรัตนาพร กลิ่นผล 6031280040 1สทค2
Servo Motor (SG90)
Servo เป็นคำศัพท์ที่ใช้กันทั่วไปในระบบควบคุมอัตโนมัติ มาจากภาษาละตินคำว่า Sevus หมายถึง “ทาส” (Slave) ในเชิงความหมายของ Servo Motor ก็คือ Motor ที่เราสามารถสั่งงานหรือตั้งค่า แล้วตัว Motor จะหมุนไปยังตำแหน่งองศาที่เราสั่งได้เองอย่างถูกต้อง โดยใช้การควบคุมแบบป้อนกลับ (Feedback Control) ในบทความนี้จะกล่าวถึง RC Servo Motor ซึ่งนิยมนำมาใช้ในเครื่องเล่นที่บังคับด้วยคลื่นวิทยุ (RC = Radio - Controlled) เช่น เรือบังคับวิทยุ รถบังคับวิทยุ เฮลิคอปเตอร์บังคับวิทยุ เป็นต้น
Servo คืออุปกรณ์มอเตอร์ ที่สามารถควบคุมการหมุนที่แม่นยำ เซอร์โว SG90 มีขนาดเล็กแรงบิด 1.2-1.4 kg/cm
KG/cm สีน้ำตาลเป็นสายกราวด์ สีแดงเป็นไฟเข้า 4.8-7.2V สีส้มเป็นสัญญาณอินพุต หมุน 0-180องศา
ถ้าทำให้หมุ่น 360 ต่อเนื่่อง องศาให้ใช้ 2.2K ohm
- ขนาด 21.5mmx11.8mmx22.7mm
- น้ำหนัก 9 กรัม
- ความเร็วเมื่อไม่มีโหลด 0.12 วินาที/ุ60องศา (4.8V)
- แรงบิด 1.2-1.4 kg/cm (4.8V)
- ทำงานที่อุณหภูมิ -30-60 องศาเซลเซียส
- เวลาหยุดก่อนรับคำสั่งใหม่ 7 มิลลิวินาที
- ทำงานที่ไฟ 4.8V - 6V
นิยมใช้ร่วมกับ
- Mounting Bracket for Servo SG90
- Switching Power supply แหล่งจ่ายไฟ 5V 5.5A
- Switching Power supply แหล่งจ่ายไฟ 5V 10A
- Switching Power supply แหล่งจ่ายไฟ 5V 20A
อุปกรณ์ที่ใช้
1. โฟโต้บอร์ด 1 บอร์ด
2. Servo Motor (SG90) 1 ตัว
3. บอร์ด Arduino 1 บอร์ด
4. สายไฟ ผู้ - ผู้ 3 เส้น
5. สายอัปโหลด
รูปวงจร
วงจรนี้เป็นวงจรการควบคุม servo motor โดยในวงจรนี้เราใช้ servo monitor (SG90) โดยที่ กำหนดให้ servo หมุนจาก 0 องศา - 180 องศา และ หมุนจาก 45 องศา - 135 องศา และ จาก90องศา - 180 องศา ตามการทำงานจะทำงานแบบวนลูป
Code
โปรแกรมให้ servo motor ทำงานแบบวนลูป หมุน จาก 0 องศา - 180 องศา
#include <Servo.h>
Servo servo;
int angle = 10;
void setup() {
servo.attach(8);
servo.write(angle);
}
void loop()
{
// scan from 0 to 180 degrees
for(angle = 0; angle < 180; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for(angle = 180; angle > 0; angle--)
{
servo.write(angle);
delay(15);
}
}
โปรแกรมให้ servo motor ทำงานแบบวนลูป หมุน จาก 45 องศา - 135 องศา
#include <Servo.h>
Servo servo;
int angle = 10;
void setup() {
servo.attach(8);
servo.write(angle);
}
void loop()
{
// scan from 0 to 180 degrees
for(angle = 45; angle < 135; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for(angle = 135; angle > 45; angle--)
{
servo.write(angle);
delay(15);
}
โปรแกรมให้ servo motor ทำงานแบบวนลูป หมุน จาก 90 องศา - 180 องศา
#include <Servo.h>
Servo servo;
int angle = 10;
void setup() {
servo.attach(8);
servo.write(angle);
}
void loop()
{
// scan from 0 to 180 degrees
for(angle = 90; angle < 180; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for(angle = 180; angle > 90; angle--)
{
servo.write(angle);
delay(15);
}
}
ดาวน์โหลดโค้ด ที่นี่
ไม่มีความคิดเห็น:
แสดงความคิดเห็น