นางสาว กัญญารัตน์ สังขพันธ์ 1สทค.2 6031280023
นาย จารุเดช สังข์ประไพ 1สทค.2 6031280027
Servo Motor (SG90)
สีน้ำตาลเป็นสายกราวด์ สีแดงเป็นไฟเข้า 4.8-7.2V สีส้มเป็นสัญญาณอินพุต หมุน 0-180องศา ถ้าทำให้หมุ่น 360 ต่อเนื่่อง องศาให้ใช้ 2.2K ohm
สเปคของ Servo Motor (SG90)
ขนาด 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
#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);
}
}
#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);
}
}
#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);
}
}
การควบคุม Servo Motor (SG90) ด้วย Arduino UNO R3
อุปกรณ์
1. Servo Motor (SG90) 1 ตัว
2. ใบพัด 1 ใบ
3. สายไฟผู้-ผู้
4. บอร์ด Arduino 1 บอร์ด
รูปวงจร
Code Program Arduino
สั่งให้มอเตอร์หมุนตั้งแต่ 0-180 องศา
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);
}
}
สั่งให้มอเตอร์หมุนตั้งแต่ 45-135 องศา
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);
}
}
สั่งให้มอเตอร์หมุนตั้งแต่ 90-180 องศา
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);
}
}
อธิบายวงจร
เมื่อเรากำหนดมุมในโปรแกรม Arduino for(angle = มุมที่ต้องการเริ่ม ; angle < มุมที่ต้องการให้หยุด; angle++) หลังจากกำหนดจุดเริ่มหมุนเสร็จ ต่อมาก็กำหนดจุดหมุนกลับที่ for(angle = มุมที่ต้องการให้หมุนกลับ; angle > มุมที่ต้องการให้หยุดหมุนกลับ; angle--) จากนั้นเมื่อกด Upload ตัว Servo Motor (SG90) จะเริ่มหมุนใบพัดตามมุมที่เราตั้งไว้ ซึ่ง SG90 จะหมุนได้เพียง 180 องศา
วิดีโอประกอบ
วิดีโอมอเตอร์หมุนตั้งแต่ 0-180 องศา
วิดีโอมอเตอร์หมุนตั้งแต่ 45-135 องศา
วิดีโอมอเตอร์หมุนตั้งแต่ 90-180 องศา