ใบงานที่ 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)


อุปกรณ์

  1. โปรโตบอร์ด
  2. บอร์ดArduino Uno R3
  3. สายไฟผู้ผู้
  4. สายอัพโหลด
  5. ตัวต้านทาน
  6. 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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เทคนิคการอินเตอร์เฟส (Interfacing Techich)

ใบงานที่ 1 ไฟวิ่ง 8 ดวง

ใบงานที่ 4 การใช้งานเซนเซอร์วัดระยะทาง HC-SR04