การใช้งาน Arduino Uno ร่วมกับ เซอร์โวมอเตอร์


 ในการใช้งาน arduino uno ร่วมกับ เซอร์โวมอเตอร์ ตัวอย่างนี้จะใช้เอาท์พุตดิจิตอลธรรมดา แต่สัญญาณ PWM จะสร้างขึ้นจากฟังก์ชั่นที่อ้างอิงจากไฟล์ Servo.h และรูปแบบใช้งานคำสั่งก็คือ

Servo myservo;   คือ การประกาศฟังก์ชั่น
myservo.attach(9); คือ การกำหนดขาเอาท์พุต
myservo.write(pos); คือ เขียนข้อมูลออก ในที่นี้ใช้ตัวแปร pos ในการเก็บค่า

ต่อวงจรตามภาพ

การต่อวงจร


เขียนโปรแกรมดังนี้

#include <Servo.h>

Servo myservo;  // ประกาศใช้งานฟังก์ชั่นเซอร์โว จากไฟล์ servo.h

int pos = 0;    // กำหนดตัวแปรเก็บค่าตำแหน่งเซอร์โว

void setup() {

  myservo.attach(9);  // กำหนดขาใช้งานในบอร์ด คือ ขา9

void loop() {

  for (pos = 0; pos <= 180; pos += 1) { // ใส่ค่าตำแหน่งเริ่มจาก 0 ถึง 180 องศา โดยเพิ่มค่าทีละ 1 องศา

      myservo.write(pos);              // เขียนคำสั่งจากค่าตัวแปรเก็บตำแหน่ง เพื่อส่งค่าออกเอาท์พุต

    delay(15);                       // หน่วงเวลาเพื่อรอเซอร์โวทำงาน

  }

  for (pos = 180; pos >= 0; pos -= 1) { // ใส่ค่าตำแหน่งเริ่มจาก 180 ถึง 0 องศา โดยลดค่าทีละ 1 องศา

    myservo.write(pos);               // เขียนคำสั่งจากค่าตัวแปรเก็บตำแหน่ง เพื่อส่งค่าออกเอาท์พุต

    delay(15);                        // หน่วงเวลาเพื่อรอเซอร์โวทำงาน

  }

}


หน้าตาเมื่อเขียนโปรแกรมใน edit

เมื่อต่อวงจรบอร์ดและ รันโปรแกรม แล้วจะได้ตามคลิป


สรุป

หากต้องการให้เซอร์โวหมุนไปที่ตำแหน่งใด ให้ใส่ค่าเลข องศาไปในฟังก์ชั่นได้เลย เพราะฟังก์ชั่นได้เทียบค่าออกมาแล้ว และต้องใช้เซอร์โวที่มีมุมองศาใช้งาน ตรงกับที่เราใส่ค่าเข้าไปด้วย