ผู้เขียน หัวข้อ: งานครั้งที่ 21 เขียนโปรแกรมควบคุม RC Servo Motor ด้วยโพเทนทิโอมิเตอร์  (อ่าน 4559 ครั้ง)

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 706
    • ดูรายละเอียด
    • อีเมล์
เขียนโปรแกรมควบคุม RC Servo Motor ด้วยโพเทนทิโอมิเตอร์
ฟังก์ชั่นที่ใช้ในกลุ่ม Servo http://arduino.cc/en/Reference/Servo
-attached() http://arduino.cc/en/Reference/ServoAttached
-write() http://arduino.cc/en/Reference/ServoWrite
**ไลบารี่ Servo.h ไม่ต้องดาวน์โหลดใหม่เนื่องจากมีมาพร้อมใน Arduino IDE อยู่แล้ว

ฟังก์ชั่นทั่วไป
-pinMode() http://arduino.cc/en/Reference/PinMode
-digitalWrite() http://arduino.cc/en/Reference/DigitalWrite
-delay() http://arduino.cc/en/Reference/Delay
-delayMicroseconds() http://arduino.cc/en/Reference/DelayMicroseconds
-analogRead() http://arduino.cc/en/Reference/AnalogRead
-map() http://arduino.cc/en/Reference/Map


ขั้วต่อของเซอร์โวมอเตอร์ในแต่ละยี่ห้อ


โจทย์โปรแกรม
-เขียนโปรแกรมควบคุมการหมุนของ RC Servo motor โดยใช้โพเทนธิโอมิเตอร์
-โปรแกรมรายละเอียดพิเศษรายกลุ่ม (แจ้งให้ทราบเมื่อถึงชั่วโมงเรียน)


วงจรที่ใช้ทดลอง
กรณีใช้บอร์ดรุ่น NodeMCU

กรณีใช้บอร์ดรุ่น WeMos D1 mini


ตัวอย่างโปรแกรม
โค๊ด: [Select]
#include <Servo.h>
Servo myservo;          // create servo object to control a servo
void setup()
{
  myservo.attach(D3);   // attaches the servo on pin D3 to the servo object
}
void loop()
{
  int val = analogRead(A0);            // reads the value of the potentiometer (value 0-1023)
  val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}
<a href="http://www.youtube.com/v/4tUwaNiVM2Q" target="_blank" class="new_win">http://www.youtube.com/v/4tUwaNiVM2Q</a>
« แก้ไขครั้งสุดท้าย: พฤศจิกายน 30, 2017, 01:56:13 PM โดย admin »