Arduino Projects [EP3.] : การควบคุม RC SERVO ด้วย Arduino

ในวันนี้เราจะมาใช้ Arduino มาควบคุมการทำงานของ Servo กันนะครับ
โดย Servo ที่ใช้จะเป็น RC Servo หรือคือ Servo ที่นิยมใช้กับพวกของเล่นต่างๆแต่เราสามารถนำมันมาประยุคใช้งานได้หลายอย่างครับ หน้าตามันจะเป็นตามรูปด้านล่างครับ

servo

โดยเรื่องอย่างวิธีการควบคุม Servoด้วยการกำหนด % Duty Cycle ไรพวกนี้เราจะไม่กล่าวถึงนะครับถ้าอยากทราบสามารถถามไว้ในช่อง Comment ได้นะครับ เราเน้นไวไว้ก่อนครับ 555+

อุปกรณ์ที่ต้องเตรียม
1. Arduino Uno
2. Servo ยี่ห้ออะไรก็ได้นะครับ

การต่อวงจร
ไม่ยากเลยครับสำหรับโปรเจคนี้ ต่อขา Signal ของ Servo เข้าขา 9 ของArduino ครับหรืออาจเปลี่ยนขาได้จากในCode โดย ขาที่เลือกเปลี่ยนได้ต้องเป็นขาPWM OUTPUT โดย Arduino UNO มีดังนี้ครับ 3, 5, 6, 9, 10 และ 11 โดยจะเป็น  8-bit PWM output

ที่ต้องระวังมีอีก1เรื่องครับคือใน Servoแต่ละยี่ห้อขาSignalอาจสีหรือตำแหน่งไม่เหมือนกันสามารถดูได้จากหัวข้อด้านล่างครับ

ขาSignal ของ Servo แต่ละยี่ห้อ

ขา Servo

ขา Servo

รูปการต่อวงจร

Arduino ควบคุม Servo

Soruce Code Arduino ควบคุมการทำงานของ Servo โดยสั่งServo ทำงาน 0-180 องศา 180-0 องศา

/* Sweep
by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.

modified 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Sweep
*/

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
myservo.attach(9);  // หากต้องการเปลี่ยนขาสามารถแก้ได้ที่นี่
}

void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos);              // tell servo to go to position in variable ‘pos’
delay(15);                       // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos);              // tell servo to go to position in variable ‘pos’
delay(15);                       // waits 15ms for the servo to reach the position
}
}

Source Code Arduino สั่งงานตามองศาที่กำหนด

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

void setup() {
myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {

myservo.write(90);              // สั่งServoไปที่ 90องศา หาต้องการเปลี่ยนองศาก็เปลี่ยนเลข 90นะครับ

}

Facebook Comments