Lab 8 KB-IDE-Servo Motor

จุดประสงค์การเรียนรู้

สามารถเขียนCodeภาษาCในArduino IDEควบคุมการองศาของServo motorได้


สาระการเรียนรู้

1. Servo Motor

เซอร์โวมอเตอร์เป็นมอเตอร์ที่ประกอบด้วยไฟฟ้าคอลโทรลและกลไกในตัวเอง โดยปกติสามารถควบคุมหรือล็อคองศาการทำงานได้ การใช้งานจะใช้ในการควบคุมตำแหน่ง, ความเร็ว, แรงบิด และความแม่นยำให้มีการทำงานสอดคล้องกันอย่างมีประสิทธิภาพ โดยอาศัยวงจรแบบป้อนกลับ(Feedback Controller)

- Feedback Controller คือ ระบบควบคุมี่มีการวัดค่าOutputของระบบ แล้วนำมาเปรียบเทียบค่าInputเพื่อควบคุมและปรับแต่งให้ค่าOutputของระบบมีค่าเท่ากับหรือใกล้เคียงกับค่าInput

- ชนิดของServo Motor หากแบ่งตามชนิดของแหล่งจ่ายไฟจะแบ่งเป็น Servo Motorกระแสตรง และServo Motorกระแสสลับ

- Servo Motor ที่มีขายในทั้งตลาดโดยทั่วไปจะมีแบบทำงานระหว่าง 0องศา - 90 องศา,0องศา - 180 องศา,0องศา - 270 องศา ส่วนสำหรับServo Motorชนิด 360 องศา จะเป็นรุ่นดัดแปลงโดยปกติจะไม่สามารถล็อคตำแหน่งมุมได้เหมือนรุ่นอื่นๆ

วัสดุอุปกรณ์

1. บอร์ดLotus Devkit V.1.0 จำนวน 1 ตัว

2. สายMicro USB จำนวน 1 เส้น

3. Servo Motor จำนวน 1 ตัว

4. Adapter 9 Vdc หรือ Battery Lipo 7.4Vdc จำนวน 1 ตัว/ก้อน

วิธีทดลอง

ตอนที่ 1 การใช้งาน Servo Motor 1 ตัว

เป้าหมายในการทำงานของLabนี้ เพื่อเขียนโปรแกรมสั่งให้Servo Motor ทำงานตามองศาที่กำหนดได้ 1 ตัว

  1. นำบอร์ดLotus Devkit V.1.0 มาต่อกับสายMicro USB และServo motor ดังรูปข้างล่าง

2. ทำการเขียนโค้ดดังรูปข้างล่าง เพื่อทำการสั่งให้เซอร์โวตัวที่ 1 ทำงานตามองศาที่ต้องการ ในที่นี้ให้ให้ทำงานที่ 50 องศา - 80 องศา แบบวนรอบ

3. ทำการ Upload Code ลงไปที่บอร์ด ตามขั้นตอนด้านล่าง

4. ขั้นตอนการทำงาน ดูตามคลิปวีดีโอแสดงการทำงานข้างล่าง และให้ทำการจ่ายไฟจากแบตเตอรี่ หรือ Adapter อย่างใดอย่างหนึ่ง พร้อมกับเปิดสวิตซ์บอร์ดให้งาน servo motor ถึงจะทำงานได้

ตอนที่ 2 การใช้งาน Servo Knob ร่วมกับจอแสดงผล OLED

เป้าหมายในการทำงานของLabนี้ เพื่อเขียนโปรแกรมสั่งให้Servo Motor ทำงานตามค่าการหมุนตัวต้านทานปรับค่าได้ Knob ร่วมกันจอ OLED เพื่อมองให้เห็นองศาการทำงานของServo Motor

วิธีทดลอง

  1. ทำการเขียนโค้ดข้างต้น เพื่อปรับสัญญาณญาณ Analog จาก Knob(GPIO 35) จาก 1023 ปรับเป็นองศาสูงสุดของServo Motor คือ 180 จะได้ค่าอัตราส่วนอยู่ที่ 5.68 (มาจาก 1023/180) นำเอามาเขียนในโค้ดข้างต้น

2. ทำการUplaod Code ตัวอย่างไปที่บอร์ด Lotus Devkit สังเกตการทำงานตาม vdo ข้างล่าง