Senses Ale & Senses IoT Platform [ตอนที่ 20: Motor]

Sittikron Muekdang
3 min readApr 26, 2021

Motor Drive เป็นอุปกรณ์เอาต์พุต เนื่องจากตัวประมวลผลไม่สามารถสั่งให้มอเตอร์ทำงานได้โดยตรง จึงต้องอาศัย Motor Drive มาทำหน้าที่เป็นตัวกลาง ในสายงานอุตสาหกรรม ถ้าหากใช้พลังงานไฟฟ้าแล้วนั้น ต้นกำลังหลักในการขับเคลื่อนเครื่องจักร สายพานต่างๆจะเป็นอะไรไปไม่ได้ นอกเสียจากเป็นมอเตอร์นั่นเอง ชนิดหรือประเภทของมอเตอร์จะแบ่งแยกย่อยออกไปหลากหลายรูปแบบ หลากหลายงาน เช่น มอเตอร์กระแสตรง (DC Motor) มอเตอร์กระแสสลับ (AC Motor) สเต็ปปิ้งมอเตอร์ (Stepping Motor) และ เซอร์โวมอเตอร์ (Server Motor) ซึ่ง

แต่ละชนิดก็มีข้อดี ข้อด้อยแตกต่างกันไป เพียงแต่ต้องเลือกให้เหมาะสมกับงาน ในที่นี้ขอกล่าวถึง การขับหรือ Drive มอเตอร์กระแสตรง (DC Motor) จำนวน 1 ลูก เพียงอย่างเดียว ในทางเขียนโปรแกรมเราสามารถป้อนแรงดันสูงสุดจากตัวประมวลผลคือ 5V หรือ 3.3V (ขึ้นอยู่กับสเปคของตัวประมวลผล) เพื่อสั่งให้ทำงานเต็มอัตราหรือ ป้อนแรงดันต่ำสุด 0V เพื่อสั่งหยุดทำงานได้ แต่ถ้าหากต้องการสั่งให้ค่อยๆเพิ่มความเร็วมากขึ้นทีละนิดไปจนถึงจุดสูงสุด หรือ สั่งให้ลดความเร็วน้อยลงทีละนิดจนถึงจุดต่ำสุด ก็สามารถทำได้ เพียงแค่สั่งงานในรูปแบบ Pulse Width Modulation(PWM)

แสดงการสายระหว่างบอร์ด Senses Ale และ Motor Drive และ Motor

ตัวอย่างนี้แสดงการต่อใช้งานมอเตอร์ A จำนวน 1 ตัว โดยเลือกใช้มอเตอร์เกียร์ขนาด 5V ทำให้การต่อ Power Supply จากภายนอกเพื่อเลี้ยงมอเตอร์นั้น ไม่ค่อยมีความจำเป็นมากนัก ในตัวอย่างนี้จึงยกนำไฟเลี้ยงจากบอร์ด Senses Ale มาใช้งานแทน Power Supply ภายนอก ดังรูปการต่อสายสำหรับใช้งาน

ถ้าหากในอนาคตผู้ใช้งานต้องการเปลี่ยนมอเตอร์ที่มีขนาดใหญ่ขึ้น มีความจำเป็นอย่างยิ่งที่ต้องนำ Power Supply ภายนอกมาเลี้ยงมอเตอร์ ซึ่งต้องเลือก Power Supply ให้มีแรงดัน และ กระแสที่พอเหมาะต่อการใช้งานของมอเตอร์ เพื่อการทำงานที่เต็มประสิทธิภาพและ ป้องกันการเกิดความเสียหาย

1.เปิดโปรแกรมตัวอย่าง DC Motor

1.1 สามารถดาวน์โหลดโค้ดได้จาก Example Download

1.2 สามารถดาวน์โหลดไลบราลี่ได้จาก Libraries Download

เขียนโปรแกรมติดต่อกับ DC Motor

จุดประสงค์ของการทดลอง

1. ต่อสายวงจรตามรูปได้

2. สั่งงานให้มอเตอร์ทำงานได้

3. สั่งงานให้มอเตอร์หยุดทำงานได้

4. สั่งงานให้มอเตอร์หมุนซ้ายได้

5. สั่งงานให้มอเตอร์หมุนขวาได้

อธิบายโค้ด

บรรทัดที่ 1 กำหนดพินสั่งงานมอเตอร์ พินที่ 1

บรรทัดที่ 2 กำหนดพินสั่งงานมอเตอร์ พินที่ 2

บรรทัดที่ 3 ฟังก์ชั่นตั้งค่าการทำงาน

บรรทัดที่ 4 กำหนดพิน motor_AL หรือ GPIO 4 ทำหน้าที่เป็นเอาต์พุต

บรรทัดที่ 5 กำหนดพิน motor_AR หรือ GPIO 5 ทำหน้าที่เป็นเอาต์พุต

บรรทัดที่ 9 ฟังก์ชั่นการทำงานวนซ้ำ

บรรทัดที่ 11–12 สั่งให้มอเตอร์หมุนซ้าย

บรรทัดที่ 13 หน่วงเวลา 3 วินาที

บรรทัดที่ 16–17 สั่งให้มอเตอร์หมุนขวา

บรรทัดที่ 18 หน่วงเวลา 3 วินาที

บรรทัดที่ 21–22 สั่งให้มอเตอร์หยุดทำงาน

บรรทัดที่ 23 หน่วงเวลา 3 วินาที

บรรทัดที่ 24 สิ้นสุดฟังก์ชั่นการทำงานวนซ้ำ

2.เปิดโปรแกรมตัวอย่าง DC Motor สั่งงานแบบ PWM

2.1 สามารถดาวน์โหลดโค้ดได้จาก Example Download

2.2 สามารถดาวน์โหลดไลบราลี่ได้จาก Libraries Download

เขียนโปรแกรมติดต่อกับ DC Motor สั่งงานแบบ PWM

จุดประสงค์ของการทดลอง

1. ต่อสายวงจรตามรูปได้

2. สั่งงานให้มอเตอร์ทำงานได้

3. สั่งงานให้มอเตอร์หมุนซ้ายค่อยๆเพิ่มความเร็วได้

4. สั่งงานให้มอเตอร์หมุนซ้ายค่อยๆลดความเร็วได้

อธิบายโค้ด

บรรทัดที่ 1–2 กำหนดพินสั่งงาน Motor

บรรทัดที่ 5 กำหนดความถี่

บรรทัดที่ 6 กำหนดแชลแนล

บรรทัดที่ 7 กำหนดความละเอียดของ PWM (8 คือ 8 บิต หรือ ²⁸ มีค่าเท่ากับ 255)

คำสั่งที่สั่งให้ Vibration มีความแรงเริ่มตั้งแต่ 0–255

บรรทัดที่ 9 ฟังก์ชั่นตั้งค่าการทำงาน

บรรทัดที่ 11 ตั้งค่าแชลแนล, ความถี่, ความละเอียด

บรรทัดที่ 14 ตั้งค่าพินสั่งงาน, แชลแนล

บรรทัดที่ 16–17 กำหนดพิน GPIO4,5เป็นเอาต์พุต

บรรทัดที่ 19 สั่งงาน motor_AR ให้หยุดทำงานเพื่อต้องการสั่งให้มอเตอร์หมุนเพียงทิศทางเดียว

บรรทัดที่ 22 ฟังก์ชั่นทำงานวนซ้ำ

บรรทัดที่ 26–27 สั่งให้ Motor ค่อยๆเพิ่มความเร็วครั้งละ 1

บรรทัดที่ 30–33 สั่งให้ Motor ค่อยๆลดความเร็วครั้งละ 1

Senses Ale & Senses IoT Platform [ตอนที่ 21: Web Server Relay]

<< กลับสู่หน้าหลัก : Back to Home

--

--