วันพฤหัสบดีที่ 29 มีนาคม พ.ศ. 2561

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

นางสาว กัญญารัตน์  สังขพันธ์ 1สทค.2 6031280023

นาย  จารุเดช  สังข์ประไพ 1สทค.2 6031280027


Servo Motor (SG90)

Servo คืออุปกรณ์มอเตอร์ ที่สามารถควบคุมการหมุนที่แม่นยำ เซอร์โว SG90 มีขนาดเล็กแรงบิด 1.2-1.4 kg/cm

   สีน้ำตาลเป็นสายกราวด์ สีแดงเป็นไฟเข้า 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



การควบคุม Servo Motor (SG90) ด้วย Arduino UNO R3

อุปกรณ์

1. Servo Motor (SG90) 1 ตัว




2. ใบพัด 1 ใบ




3. สายไฟผู้-ผู้




4. บอร์ด Arduino 1 บอร์ด







รูปวงจร


Download Frizing file  ที่นี่

Code Program Arduino

สั่งให้มอเตอร์หมุนตั้งแต่ 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);       
  } 
  } 

Download Arduino Code ที่นี่

สั่งให้มอเตอร์หมุนตั้งแต่ 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);       
  } 
  } 

Download Arduino Code ที่นี่

สั่งให้มอเตอร์หมุนตั้งแต่ 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);       
  } 
  } 

Download Arduino Code ที่นี่

อธิบายวงจร 

เมื่อเรากำหนดมุมในโปรแกรม Arduino for(angle = มุมที่ต้องการเริ่ม ; angle < มุมที่ต้องการให้หยุด; angle++) หลังจากกำหนดจุดเริ่มหมุนเสร็จ ต่อมาก็กำหนดจุดหมุนกลับที่  for(angle = มุมที่ต้องการให้หมุนกลับ; angle > มุมที่ต้องการให้หยุดหมุนกลับ; angle--) จากนั้นเมื่อกด Upload ตัว Servo Motor (SG90) จะเริ่มหมุนใบพัดตามมุมที่เราตั้งไว้ ซึ่ง SG90 จะหมุนได้เพียง 180 องศา 

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

วิดีโอมอเตอร์หมุนตั้งแต่ 0-180 องศา




วิดีโอมอเตอร์หมุนตั้งแต่ 45-135 องศา




วิดีโอมอเตอร์หมุนตั้งแต่ 90-180 องศา


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

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