วันพุธที่ 28 มีนาคม พ.ศ. 2561

ใบงานที่ 6 การควบคุม Servo Motor (SG90) ด้วย Arduino UNO R3



          


นางสาวพรรณพิลาศ ศรีสมศักดิ์ 6031280015 1สทค1

 นางสาวรัตนาพร    กลิ่นผล 6031280040     1สทค2


Servo Motor (SG90)  

ผลการค้นหารูปภาพสำหรับ SG90 Servo Motor
 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);       
  } 

ดาวน์โหลดโค้ด Arduino ที่นี่

วิดีโอประกอบ




โปรแกรมให้ 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);       
  } 
}

ดาวน์โหลดโค้ด Arduino ที่นี่

วิดีโอประกอบ




โปรแกรมให้ 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);       
  } 

วิดีโอประกอบ





ไม่มีความคิดเห็น:

แสดงความคิดเห็น