Arduino พร้อมเซอร์โวมอเตอร์
การใช้ Arduino กับเซอร์โวมอเตอร์ทำให้เราสามารถควบคุมตำแหน่งเพลาได้อย่างแม่นยำ เนื่องจากเซอร์โวมอเตอร์ทำงานบนกลไกป้อนกลับเพื่อกำหนดตำแหน่งเพลา ตำแหน่งเพลาจะถูกวัดอย่างต่อเนื่องด้วยโพเทนชิออมิเตอร์ในตัวภายในเซอร์โวมอเตอร์ ซึ่งเปรียบเทียบกับตำแหน่งเป้าหมายที่กำหนดโดยไมโครคอนโทรลเลอร์ (เช่น Arduino) ด้วยการคำนวณข้อผิดพลาดระหว่างตำแหน่งเป้าหมายและตำแหน่งจริง ไมโครคอนโทรลเลอร์จะปรับเพลาเอาต์พุตให้ตรงกับตำแหน่งเป้าหมาย ทั้งระบบนี้สามารถอธิบายได้ว่า a ระบบวงปิด .
Arduino ควบคุมเซอร์โวมอเตอร์โดยใช้สัญญาณ PWM สัญญาณควบคุมนี้มอบให้กับพินควบคุมของเซอร์โวมอเตอร์ ความกว้างของสัญญาณ PWM กำหนดตำแหน่งเพลา ตารางด้านล่างแสดงภาพประกอบของการควบคุมตำแหน่งเซอร์โวมอเตอร์โดยใช้สัญญาณ PWM
ความกว้างของ PWM (มิลลิวินาที) | ตำแหน่งเพลา (มุม) |
---|---|
1 มิลลิวินาที | 0˚ องศา Min |
1.5ms | 90˚ องศาเป็นกลาง |
2ms | 180˚องศา Max |
เซอร์โวมอเตอร์โดยทั่วไปต้องการพัลส์ PWM ทุกๆ 20ms หรือ 50Hz เซอร์โวมอเตอร์ RC ส่วนใหญ่สามารถทำงานได้ดีในช่วง 40 ถึง 200Hz
หมุดเซอร์โวมอเตอร์
เซอร์โวมอเตอร์ส่วนใหญ่ที่ใช้กับ Arduino มีสามพิน
- พื้น เซอร์โวมอเตอร์มีขา GND ซึ่งปกติจะมีสีดำ
- ปลั๊กไฟ จำเป็นต้องใช้พิน 5v เพื่อให้พลังงานแก่เซอร์โวมอเตอร์ ปลั๊กไฟมักจะเป็นสีแดง
- พินควบคุม ควบคุมการเคลื่อนที่ของเพลาของเซอร์โวมอเตอร์โดยใช้พินควบคุม พินนี้เชื่อมต่อกับพินดิจิทัล Arduino
เซอร์โวมอเตอร์มีสีที่แตกต่างกันออกไป แต่ข่าวดีก็คือ เซอร์โวมอเตอร์ทั้งหมดมีพินซึ่งปกติแล้วจะอยู่ในลำดับเดียวกัน เพียงแต่รหัสสีจะต่างกัน
เซอร์โวสายพร้อม Arduino
เซอร์โวมอเตอร์ส่วนใหญ่ทำงานบน 5V ในการขับเคลื่อนเซอร์โวด้วย Arduino เราจำเป็นต้องเชื่อมต่อพิน 5V ของ Arduino เข้ากับพินเซอร์โว Arduino มีช่วงที่ จำกัด สำหรับการวาดกระแส โดยปกติมอเตอร์หนึ่งหรือสองตัวสามารถเชื่อมต่อกับ Arduino ได้ ในการควบคุมเซอร์โวมอเตอร์หลายตัวโดยใช้ Arduino เราต้องจ่ายไฟให้กับพวกมันโดยใช้แหล่งจ่ายภายนอก
ควรคำนึงถึงการกำหนดค่าพินต่อไปนี้ขณะเปิดเครื่องเซอร์โว:
เซอร์โวมอเตอร์พิน | Arduino Pin |
---|---|
พาวเวอร์ (สีแดง) | 5V พินหรือแหล่งจ่ายไฟภายนอก |
พื้นดิน (สีดำหรือสีน้ำตาล) | แหล่งจ่ายไฟและ Arduino GND |
พินควบคุม (สีเหลือง สีส้มหรือสีขาว) | พินดิจิตอลของ Arduino |
ในการเชื่อมต่อเซอร์โวมอเตอร์กับ Arduino สามารถทำได้สองแบบ:
- ต่อสายโดยใช้ Arduino 5V Pin
- ต่อสายไฟโดยใช้แหล่งจ่ายไฟภายนอกกับ Arduino
ต่อสายโดยใช้ Arduino 5V Pin
เซอร์โวมอเตอร์สามารถขับเคลื่อนโดยใช้พิน Arduino 5V แต่สิ่งหนึ่งที่ควรจับตามองคือ Arduino สามารถจ่ายกระแสไฟสูงสุด 500mA ให้กับเซอร์โว หากมอเตอร์ดึงกระแสเกินขีดจำกัดนี้จะรีเซ็ต Arduino โดยอัตโนมัติและอาจสูญเสียพลังงานด้วย
ต่อไปนี้เป็นการแสดงภาพของการเชื่อมต่อ Arduino กับเซอร์โวมอเตอร์:
ที่นี่ Arduino พินดิจิตอล 9 เชื่อมต่อกับพินควบคุมเซอร์โวมอเตอร์ในขณะที่พลังงานและพิน GND ของเซอร์โวเชื่อมต่อกับ 5V และพิน GND ของ Arduino ตามลำดับ
ใช้สายไฟภายนอกกับ Arduino
Arduino สามารถจ่ายกระแสไฟที่จำกัดให้กับเซอร์โวมอเตอร์ได้ นั่นคือเหตุผลที่เราจำเป็นต้องเชื่อมต่อแหล่งจ่ายไฟภายนอก การใช้แหล่งพลังงานแยกต่างหากสำหรับเซอร์โวมอเตอร์ เราสามารถเชื่อมต่อมอเตอร์ได้มากเท่าที่เราต้องการกับ Arduino แต่อย่าลืมพินดิจิทัลที่มีอยู่ในบอร์ด Arduino หากคุณต้องการเชื่อมต่อเซอร์โวมอเตอร์หลายตัว ขอแนะนำให้ใช้ Arduino Mega หรือ Arduino shields ที่สามารถจัดหาพินเพิ่มเติมเพื่อรองรับมอเตอร์ทั้งหมด
ที่นี่กำลังมอเตอร์เซอร์โวและพินกราวด์เชื่อมต่อระหว่างพินของแหล่งจ่ายไฟภายนอกในขณะที่พินควบคุมเชื่อมต่อกับพินดิจิตอลของ Arduino เช่นเดียวกับการกำหนดค่าด้านบน
บทสรุป
เซอร์โวมอเตอร์เป็นวิธีที่ยอดเยี่ยมในการออกแบบโครงการหุ่นยนต์ เนื่องจากความยืดหยุ่นในกลไกการควบคุม ผู้ใช้ Arduino จึงมีโอกาสออกแบบโครงการที่ต้องการ เซอร์โวมอเตอร์สามารถเชื่อมต่อกับ Arduino โดยใช้กำลังและพินดิจิตอล ในขณะที่มองหาความต้องการพลังงานของมอเตอร์เสมอก่อนที่จะเชื่อมต่อกับ Arduino ในการเชื่อมต่อมอเตอร์หลายตัวกับ Arduino คุณต้องใช้แหล่งจ่ายไฟภายนอก