ใบงานที่ 6 การควบคุม Servo Motor (SG90) ด้วย Arduino UNO R3
นางสาวกิตติญากร ขาวใบไม้ 6031280024
นางสาวกิตติมา อุดมปัญญาศิริกุล 6031280025
ปวส.1/2 คอมพิวเตอร์ซอฟต์แวร์
Servo คืออุปกรณ์มอเตอร์ ที่สามารถควบคุมการหมุนที่แม่นยำ เซอร์โวชุดนี้มีขนาดเล็กแรงบิด 1.2-1.4 KG/cm สีน้ำตาลเป็นสายกราวด์ สีแดงเป็นไฟเข้า 4.8-7.2V สีส้มเป็นสัญญาณอินพุต หมุนได้ 180 องศา ส่วนใหญ่ต่อเข้ากับ Pin ของ Arduino UNO R3 ที่สามารถใช้งาน PWM Signal ได้ เช่น D3 , D5 , D6 , D9 , D10 , D11
Servo เป็นคำศัพท์ที่ใช้กันทั่วไปในระบบควบคุมอัตโนมัติ มาจากภาษาละตินคำว่า Sevus หมายถึง “ทาส” (Slave) ในเชิงความหมายของ Servo Motor ก็คือ Motor ที่เราสามารถสั่งงานหรือตั้งค่า แล้วตัว Motor จะหมุนไปยังตำแหน่งองศาที่เราสั่งได้เองอย่างถูกต้อง โดยใช้การควบคุมแบบป้อนกลับ (Feedback Control)
อุปกรณ์
นางสาวกิตติมา อุดมปัญญาศิริกุล 6031280025
ปวส.1/2 คอมพิวเตอร์ซอฟต์แวร์
Servo คืออุปกรณ์มอเตอร์ ที่สามารถควบคุมการหมุนที่แม่นยำ เซอร์โวชุดนี้มีขนาดเล็กแรงบิด 1.2-1.4 KG/cm สีน้ำตาลเป็นสายกราวด์ สีแดงเป็นไฟเข้า 4.8-7.2V สีส้มเป็นสัญญาณอินพุต หมุนได้ 180 องศา ส่วนใหญ่ต่อเข้ากับ Pin ของ Arduino UNO R3 ที่สามารถใช้งาน PWM Signal ได้ เช่น D3 , D5 , D6 , D9 , D10 , D11
Servo เป็นคำศัพท์ที่ใช้กันทั่วไปในระบบควบคุมอัตโนมัติ มาจากภาษาละตินคำว่า Sevus หมายถึง “ทาส” (Slave) ในเชิงความหมายของ Servo Motor ก็คือ Motor ที่เราสามารถสั่งงานหรือตั้งค่า แล้วตัว Motor จะหมุนไปยังตำแหน่งองศาที่เราสั่งได้เองอย่างถูกต้อง โดยใช้การควบคุมแบบป้อนกลับ (Feedback Control)
อุปกรณ์
- โปรโตบอร์ด
- บอร์ดArduino Uno R3
- สายไฟผู้ผู้
- สายอัพโหลด
- ตัวต้านทาน
- Servo Motor (SG90)
รูปวงจร
Code ตัวอย่างที่ 1
//เขียนโปรแกรมความคุมมอเตอร์หมุนจากซ้ายไปขวาและขวามาซ้าย สแกนจาก 0 ถึง 180 องศา และสแกนกลับจาก 180 องศา ถึง 0 องศา กำหนด 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 = 10; angle < 180; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for(angle = 180; angle > 10; angle--)
{
servo.write(angle);
delay(15);
}
}
วิดีโอตัวอย่างที่ 1
Code ตัวอย่างที่ 2
//เขียนโปรแกรมความคุมมอเตอร์หมุนจากซ้ายไปขวาและขวามาซ้าย สแกนจาก 45 ถึง 135 องศา และสแกนกลับจาก 135 องศา ถึง 45 องศา กำหนด delay = 15
#include <Servo.h>
Servo servo;
int angle = 10;
void setup() {
servo.attach(8);
servo.write(angle);
}
void loop()
{
// scan from 45 to 135 degrees
for(angle = 45; angle < 135; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 135 to 45 degrees
for(angle = 135; angle > 45; angle--)
{
servo.write(angle);
delay(15);
}
}
วิดีโอตัวอย่างที่ 2
Code ตัวอย่างที่ 3
//เขียนโปรแกรมความคุมมอเตอร์หมุนจากซ้ายไปขวาและขวามาซ้าย สแกนจาก 90 ถึง 180 องศา และสแกนกลับจาก 180 องศา ถึง 90 องศา กำหนด delay = 15
#include <Servo.h>
Servo servo;
int angle = 10;
void setup() {
servo.attach(8);
servo.write(angle);
}
void loop()
{
// scan from 90 to 180 degrees
for(angle = 90; angle < 180; angle++)
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 90 degrees
for(angle = 180; angle > 90; angle--)
{
servo.write(angle);
delay(15);
}
}
วิดีโอตัวอย่างที่ 3
ความคิดเห็น
แสดงความคิดเห็น