วิธีการเชื่อมต่อเซอร์โวมอเตอร์กับ Arduino

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในโพสต์นี้เราจะมาเรียนรู้ว่าเซอร์โวมอเตอร์คืออะไรทำงานอย่างไรวิธีการเชื่อมต่อกับไมโครคอนโทรลเลอร์และสิ่งที่ทำให้มอเตอร์นี้พิเศษจากมอเตอร์อื่น ๆ

ในฐานะผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์เราจะได้พบกับมอเตอร์หลายประเภทที่นี่เราจะมาดูมอเตอร์ชนิดพิเศษที่เรียกว่าเซอร์โวมอเตอร์



เซอร์โวมอเตอร์คืออะไร?

เซอร์โวมอเตอร์หรือเซอร์โวเป็นมอเตอร์ชนิดพิเศษที่ออกแบบมาเพื่อการควบคุมตำแหน่งการเร่งความเร็วและความเร็วที่แม่นยำ ไม่เหมือนกับมอเตอร์ประเภทอื่น ๆ เซอร์โวสามารถหมุนได้ 180 องศาแบบสองทิศทางเท่านั้น มีเกียร์เชิงกลและตัวอุดซึ่ง จำกัด การหมุนเชิงมุมของเซอร์โว

เซอร์โวมอเตอร์ทั่วไป:

เซอร์โวมอเตอร์ใช้ในหุ่นยนต์, กล้องวงจรปิด, รถ RC, เรือ, เครื่องบินของเล่น ฯลฯ เซอร์โวถูกใช้ในที่ที่เราไม่จำเป็นต้องมีการเคลื่อนที่แบบหมุนต่อไป แต่จะล็อคในตำแหน่งเฉพาะหรือเคลื่อนย้ายโหลดบางส่วนด้วยความเร็วที่ควบคุมได้ภายในขีด จำกัด เชิงมุมที่เคลื่อนย้ายได้



เซอร์โวไม่ได้เป็นเพียงมอเตอร์เหมือนประเภทอื่น ๆ แต่เป็นโมดูลซึ่งรวมเอามอเตอร์ DC / AC ธรรมดากลุ่มเกียร์อุปกรณ์อิเล็กทรอนิกส์ควบคุมและระบบป้อนกลับ มาดูรายละเอียดแต่ละขั้นตอนที่กล่าวถึงกัน

มอเตอร์ DC / AC ที่ใช้กับโมดูลเซอร์โวอาจเป็นมอเตอร์แบบไม่ใช้แปรงถ่านหรือมอเตอร์แบบไม่มีแปรงโดยส่วนใหญ่จะใช้มอเตอร์ DC เซอร์โวสำหรับงานอดิเรกและมอเตอร์ AC ใช้ในงานอุตสาหกรรม มอเตอร์ให้อินพุตแบบหมุนไปยังเซอร์โว มอเตอร์หมุนที่หลายร้อยรอบต่อนาทีภายในเซอร์โวและการหมุนเอาต์พุตจะน้อยกว่า RPM ประมาณ 50 เท่าหรือมากกว่านั้น

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

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

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

เซอร์โวมอเตอร์ในตำแหน่งคงที่จะไม่เต็มใจที่จะเคลื่อนออกจากตำแหน่งปัจจุบันหากมีแรงภายนอกเข้ามารบกวน ระบบป้อนกลับจะตรวจสอบตำแหน่งปัจจุบันและขับเคลื่อนมอเตอร์จากสิ่งรบกวนภายนอก

สถานการณ์ข้างต้นจะเหมือนกันเมื่อเซอร์โวกำลังเคลื่อนตัวกระตุ้น ระบบควบคุมจะชดเชยแรงภายนอกและเคลื่อนที่ด้วยความเร็วที่กำหนด

ตอนนี้คุณรู้ค่อนข้างน้อยเกี่ยวกับเซอร์โวมอเตอร์และกลไกการทำงานของมัน มาดูวิธีควบคุมเซอร์โวมอเตอร์โดยใช้ไมโครคอนโทรลเลอร์

เซอร์โวมอเตอร์มีขั้ว 3 ขั้วซึ่งแตกต่างจากมอเตอร์อื่น ๆ ที่มี 2 ขั้วสองขั้วสำหรับการจ่ายไฟ (5V เล็กน้อย) และอีกหนึ่งขั้วสำหรับสัญญาณควบคุม สายไฟมีสีเพื่อให้ระบุขั้วได้ง่าย

สัญญาณควบคุมของเซอร์โวคือ PWM ที่ความถี่ 50Hz ความกว้างพัลส์ของสัญญาณกำหนดตำแหน่งของแขนแอคชูเอเตอร์ เซอร์โวมอเตอร์งานอดิเรกทั่วไปทำงานตั้งแต่ 1 ถึง 2 มิลลิวินาทีความกว้างพัลส์

การใช้สัญญาณควบคุมความกว้างพัลส์ 1 มิลลิวินาทีจะทำให้แอคชูเอเตอร์อยู่ที่ตำแหน่ง 0 องศา การใช้สัญญาณควบคุมความกว้างพัลส์ 2 ms จะทำให้แอคชูเอเตอร์อยู่ที่ตำแหน่ง 180 องศา การใช้สัญญาณระหว่าง 1-2 มิลลิวินาทีจะทำให้แอคชูเอเตอร์อยู่ในมุม 0-180 องศา สิ่งนี้สามารถเข้าใจได้ดีขึ้นจากภาพด้านล่าง

ตอนนี้คุณคงเข้าใจแล้วว่าเซอร์โวถูกควบคุมโดยการมอดูเลตความกว้างพัลส์ (PWM) อย่างไร

ตอนนี้เรามาเรียนรู้วิธีเชื่อมต่อเซอร์โวมอเตอร์กับ Arduino

แผนภูมิวงจรรวม:

วิธีเชื่อมต่อเซอร์โวมอเตอร์กับ Arduino

การเดินสายเป็นเรื่องง่ายและอธิบายได้ด้วยตนเอง คุณต้องใช้แหล่งจ่ายไฟภายนอกหากคุณใช้เซอร์โวมอเตอร์ขนาดใหญ่ หากคุณพยายามจ่ายไฟจากแหล่งจ่ายไฟของ arduino คุณจะต้องใช้พอร์ต USB บนคอมพิวเตอร์มากเกินไป

หากคุณมีเซอร์โวที่คล้ายกันซึ่งแสดงไว้ในตอนต้นของบทความคุณอาจจ่ายไฟจากแหล่งจ่ายไฟ arduino 5V ซึ่งแสดงในต้นแบบของผู้แต่ง

ต้นแบบของผู้แต่ง:

Arduino ต้องการไลบรารีเซอร์โวเพื่อจัดการมันทำให้งานของเราง่ายและมีอยู่แล้วใน Arduino IDE

โปรแกรม:

//--------Program developed by R.Girish--------//
#include
Servo motor
int pos = 0
int t=10
void setup()
{
motor.attach(7)
}
void loop()
{
A:
pos=pos+1
motor.write(pos)
delay(t)
if(pos==180) { goto B}
goto A
B:
pos=pos-1
motor.write(pos)
delay(t)
if(pos==0) { goto A}
goto B
}
//--------Program developed by R.Girish--------//

โปรแกรมข้างต้นจะกวาดตัวกระตุ้น 0 ถึง 180 องศาไปทางขวาและ 180 ถึง 0 องศาไปทางซ้ายและวนซ้ำ นี่เป็นโปรแกรมง่ายๆสำหรับการทดสอบเซอร์โวที่คุณอาจต้องเขียนโค้ดของคุณเองสำหรับแอปพลิเคชันที่คุณกำหนดเอง




คู่ของ: วงจรควบคุมวาล์วปั๊มน้ำสองท่อ ถัดไป: ทำความเข้าใจเกี่ยวกับการเดินสายไฟของตัวควบคุมแรงดันไฟฟ้าของรถจักรยานยนต์