ในการกวดวิชานี้เราจะไปควบคุมเซอร์โวมอเตอร์โดย ARDUINO UNO ใช้เซอร์โวมอเตอร์ในกรณีที่จำเป็นต้องมีการเคลื่อนที่หรือตำแหน่งของเพลาที่ถูกต้อง สิ่งเหล่านี้ไม่ได้เสนอสำหรับการใช้งานความเร็วสูง สิ่งเหล่านี้เสนอสำหรับความเร็วต่ำแรงบิดปานกลางและการใช้งานตำแหน่งที่แม่นยำ มอเตอร์เหล่านี้ใช้ในเครื่องจักรแขนกลระบบควบคุมการบินและระบบควบคุม
เซอร์โวมอเตอร์มีให้เลือกหลายรูปแบบและขนาด เซอร์โวมอเตอร์ส่วนใหญ่จะมีสายไฟสายหนึ่งสำหรับแรงดันไฟฟ้าบวกอีกสายหนึ่งสำหรับกราวด์และสุดท้ายคือการกำหนดตำแหน่ง สายสีแดงเชื่อมต่อกับพลังงานสายสีดำเชื่อมต่อกับกราวด์และสายสีเหลืองเชื่อมต่อกับสัญญาณ
เซอร์โวมอเตอร์เป็นการรวมกันของมอเตอร์กระแสตรงระบบควบคุมตำแหน่งเกียร์ ตำแหน่งของเพลาของมอเตอร์กระแสตรงจะถูกปรับโดยอุปกรณ์อิเล็กทรอนิกส์ควบคุมในเซอร์โวโดยพิจารณาจากอัตราส่วนหน้าที่ของสัญญาณ PWM ที่ขาสัญญาณ
เพียงแค่พูดอุปกรณ์อิเล็กทรอนิกส์ควบคุมจะปรับตำแหน่งเพลาโดยการควบคุมมอเตอร์ DC ข้อมูลเกี่ยวกับตำแหน่งของเพลานี้จะถูกส่งผ่านขาสัญญาณ ข้อมูลตำแหน่งไปยังส่วนควบคุมควรส่งในรูปแบบของสัญญาณ PWM ผ่านขาสัญญาณของเซอร์โวมอเตอร์
ความถี่ของสัญญาณ PWM (Pulse Width Modulated) อาจแตกต่างกันไปตามประเภทของเซอร์โวมอเตอร์ สิ่งสำคัญที่นี่คือ DUTY RATIO ของสัญญาณ PWM ตาม DUTY RATION อุปกรณ์อิเล็กทรอนิกส์ควบคุมปรับเพลา
ดังแสดงในรูปด้านล่างสำหรับเพลาที่จะย้ายไปที่ 9o นาฬิกา TURN ON RATION จะต้องเป็น 1/18. เวลาเปิด 1ms และเวลาปิด 17ms ในสัญญาณ 18ms
สำหรับเพลาที่จะเลื่อนไปที่ 12o นาฬิกาเวลา ON ของสัญญาณต้องเป็น 1.5ms และเวลา OFF ควรเป็น 16.5ms อัตราส่วนนี้ถูกถอดรหัสโดยระบบควบคุมในเซอร์โวและจะปรับตำแหน่งตามนั้น PWM นี้สร้างขึ้นโดยใช้ ARDUINO UNO
ส่วนประกอบของวงจร
ฮาร์ดแวร์: ARDUINO UNO, แหล่งจ่ายไฟ (5v), ตัวเก็บประจุ 100uF, ปุ่ม (สองชิ้น), ตัวต้านทาน1KΩ (สองชิ้น), เซอร์โวมอเตอร์ (ซึ่งจำเป็นต้องทดสอบ)
ซอฟต์แวร์: arduino IDE (Arduino ทุกคืน)
แผนภาพวงจร Arduino Servo Motor และคำอธิบาย
ในกรณีปกติเราต้องไปที่รีจิสเตอร์คอนโทรลเลอร์เพื่อปรับความถี่และรับอัตราส่วนหน้าที่ที่ต้องการสำหรับการควบคุมตำแหน่งเซอร์โวที่แม่นยำใน ARDUINO เราไม่จำเป็นต้องทำสิ่งเหล่านั้น
ใน ARDUINO เรามีไลบรารีที่กำหนดไว้ล่วงหน้าซึ่งจะกำหนดความถี่และอัตราส่วนหน้าที่ตามเมื่อมีการเรียกหรือรวมไฟล์ส่วนหัว ใน ARDUINO เราต้องระบุตำแหน่งของเซอร์โวที่ต้องการและ UNO จะปรับ PWM โดยอัตโนมัติ
สิ่งที่เราต้องทำเพื่อให้ได้ตำแหน่งที่ถูกต้องของเซอร์โวคือ:
|
ก่อนอื่นเราต้องตั้งค่าความถี่ของสัญญาณ PWM และสำหรับสิ่งนั้นเราควรเรียกว่า“ #include
ตอนนี้เราต้องกำหนดชื่อสำหรับเซอร์โว“ Servo sg90sevo” ที่นี่ 'sg90servo' คือชื่อที่เลือกดังนั้นในขณะที่เขียนสำหรับ potion เราจะใช้ชื่อนี้คุณลักษณะนี้มีประโยชน์เมื่อเรามีเซอร์โวจำนวนมากให้ควบคุม เราสามารถควบคุมเซอร์โวได้มากถึงแปดตัวจากสิ่งนี้
ตอนนี้เราบอก UNO ว่าขาสัญญาณของเซอร์โวเชื่อมต่ออยู่ที่ไหนหรือที่ที่ต้องการสร้างสัญญาณ PWM ในการทำเช่นนี้เรามี“ Sg90.attach (3);” ที่นี่เรากำลังบอก UNO ว่าเราเชื่อมต่อพินสัญญาณของเซอร์โวที่ PIN3
ซ้ายทั้งหมดคือการกำหนดตำแหน่งเราจะกำหนดตำแหน่งของเซอร์โวโดยใช้“ Sg90.write (30);” โดยคำสั่งนี้เซอร์โวมือจะเคลื่อนที่ไป 30 องศานั่นแหล่ะ หลังจากนั้นเมื่อใดก็ตามที่เราต้องการเปลี่ยนตำแหน่งของเซอร์โวเราจำเป็นต้องเรียกคำสั่ง "Sg90.write (needed_position_ angle);" ในวงจรนี้เราจะมีปุ่มสองปุ่มปุ่มหนึ่งจะเพิ่มตำแหน่งของเซอร์โวและอีกปุ่มหนึ่งสำหรับลดตำแหน่งของเซอร์โว
Arduino Servo Motor ควบคุมการกวดวิชา จะมีการอธิบายในขั้นตอนโดยขั้นตอนของรหัส C ได้รับด้านล่าง