რა არის სერვომოტორის კონტროლერი?
სერვომოტორის კონტროლერის განმარტება
სერვომოტორის კონტროლერი (ან სერვომოტორის დრაივერი) განიხილება როგორც შემთხვევა, რომელიც გამოიყენება სერვომოტორის პოზიციის კონტროლისთვის.
სერვომოტორის დრაივერის შემთხვევა
სერვომოტორის დრაივერის შემთხვევაში ჩართულია მიკროკონტროლერი, ელექტროსნაბჳები, პოტენციომეტრი და კონექტორები, რაც უზრუნველყოფს სერვომოტორის ზუსტ კონტროლს.
მიკროკონტროლერის როლი
მიკროკონტროლერი წარმოქმნის PWM იმპულსებს სპეციფიკური ინტერვალებით, რათა ზუსტად კონტროლირებდეს სერვომოტორის პოზიცია.
ელექტროსნაბჳები
სერვომოტორის კონტროლერის ელექტროსნაბჳების დიზაინი დამოკიდებულია დაკავშირებული მოტორების რაოდენობაზე. სერვომოტორები ჩვეულებრივ იყენებენ 4.8V-დან 6V-მდე ელექტროსნაბჳებს, სადაც 5V არის სტანდარტი. ელექტროსნაბჳების გადაჭარბება შეიძლება დაზიანოს მოტორს. დენის მიღება ცვლის თანაბარი და დაბრუნების დროს და არის დაბალი მდგომარეობის რეჟიმში და მაღალი მუშაობის დროს. მაქსიმალური დენის მიღება, რომელიც ცნობილია როგორც დაშვების დენი, შეიძლება მისცეს ზოგიერთ მოტორს 1A-მდე.
ერთი მოტორის კონტროლისთვის გამოიყენეთ ვოლტაჟის რეგულატორი, როგორიცაა LM317 თერმოსტატით. რამდენიმე მოტორისთვის საჭიროა მაღალი ხარისხის ელექტროსნაბჳები უფრო მაღალი დენის რეიტინგით. SMPS (Switched Mode Power Supply) არის კარგი არჩევანი.
ბლოკ დიაგრამა ქვემოთ ნაჩვენებია სერვომოტორის დრაივერის შემთხვევაში დაკავშირებული ელემენტების შესახებ

სერვომოტორის კონტროლი
სერვომოტორს აქვს სამი ტერმინალი.
პოზიციის სიგნალი (PWM იმპულსები)
Vcc (ელექტროსნაბჳებიდან)
დამაგრება

სერვომოტორის კუთხითი პოზიცია კონტროლირებულია სპეციფიკური სიგანეების PWM იმპულსების გამოყენებით. იმპულსების ხანგრძლივობა მეტად შეიძლება იყოს 0.5ms და 0 გრადუსის როტაციისთვის და 2.2ms 180 გრადუსის როტაციისთვის. იმპულსები უნდა მიეცეს 50Hz-დან 60Hz-მდე სიხშირეებით.
PWM (Pulse Width Modulation) ველის შესაქმნელად, როგორც ნაჩვენებია ქვემოთ მოცემულ ფიგურაში, შეიძლება გამოვიყენოთ მიკროკონტროლერის შიდა PWM მოდული ან ტაიმერები. PWM ბლოკის გამოყენება უფრო ფლექსიბულია და უკეთ ემსახურება სერვომოტორის მსგავს აპლიკაციებს. სხვადასხვა სიგანეების PWM იმპულსებისთვის უნდა დაპროგრამდეს შიდა რეგისტრები შესაბამისად.
ახლა, ჩვენ უნდა ვუთხაროთ მიკროკონტროლერს რამდენად უნდა როტირებული იყოს. ამისთვის შეგვიძლია გამოვიყენოთ სამართავი პოტენციომეტრი და ADC როტაციის კუთხის სამომხმარებლად ან უფრო რთული აპლიკაციებისთვის აქსელერომეტრი.

პროგრამის ალგორითმი
დავალეთ პროგრამის დიზაინი ერთი სერვომოტორის კონტროლისთვის და პოზიციის შეყვანა იქნება პოტენციომეტრის შემთხვევაში, რომელიც დაკავშირებულია კონტროლერის პინზე.
ინიციალიზირება პორტის პინები შეყვანის/გამოყვანისთვის.
წაკითხვა ADC სერვომოტორის სურვილის პოზიციისთვის.
პროგრამირება PWM რეგისტრები სურვილის მნიშვნელობისთვის.
როგორც მხოლოდ გააქტიურებთ PWM მოდულს, არჩეული PWM ცალკეული პინი ხდება მაღალი (ლოგიკური 1) და შემდეგ მისი საჭირო სიგანის მიღწევის შემდეგ იქნება დაბალი (ლოგიკური 0). ასე რომ, როგორც გააქტიურებთ PWM-ს, უნდა გაუშვით ტაიმერი დალოგიკებული დელაით დამახასიათებელი 19 ms და დაუშვით ტაიმერის დასრულებამდე და დაუბრუნდეთ ნაბიჯი 2-მდე.
არსებობს სხვადასხვა მოდიფიკაციები PWM-ისთვის, რომლებიც შეგიძლიათ გამოიყენოთ მიკროკონტროლერის მიხედვით. კოდში უნდა გაქვთ რამდენიმე გრადუსის ოპტიმიზაცია სერვომოტორის კონტროლისთვის.
თუ განხილულია ერთზე მეტი სერვომოტორის გამოყენება, თქვენ გჭირდებათ იმდენივე PWM ცალკეული კანალი. თითოეულ სერვომოტორს შეუძლია მიეცეს PWM სიგნალი თანმიმდევრულად. მაგრამ უნდა გაითვალისწინოთ, რომ თითოეული სერვომოტორის იმპულსების რეპეტიციის სიხშირე დარწმუნებული იყოს. სხვაგვარად, სერვომოტორები დაიკარგონ სინქრონიზაცია.