How To Control a Track Linear Actuator with Arduino

Как да управлявате линеен задвижващ механизъм на релса с Arduino

Adam Morissette
Adam Morissette
PA Engineer

The PA-18 Track Linear Actuator е най-голямата ни с фиксирана дължина задвижващ механизъм и се използва често в изработката на мебели по поръчка, домашната автоматизация и роботиката. Можете лесно да управлявате задвижващ механизъм с Платка Ардуинои тази статия ще покаже как да се изгради и програмира устройство, управлявано от Arduino линеен задвижващ механизъм които могат лесно да се адаптират към вашето приложение!

 

Необходим хардуер

Следните хардуерни елементи са необходими за линеен задвижващ механизъм, управляван от Arduino, като всички те могат да бъдат закупени от Progressive Automations:

 

Системно окабеляване

Използваният в тази схема задвижващ механизъм изисква входно напрежение 12 VDC и ток до 8A при пълно натоварване. Тези стойности са много по-високи от това, което микроконтролерът Arduino може да осигури, и ще доведат до излизане на „магически“ дим от Arduino. За да се избегне повреда на Arduino, се използва H-мостът MegaMoto Plus. H-мостът може да се справи с изискванията за захранване и може лесно да се използва за управление на задвижващ механизъм с Arduino.

За тази система има връзки от Arduino към H-моста на MegaMoto Plus и към двата бутона. Всеки бутон изисква един вход, който се избира от наличните GPIO пинове на Arduino. H-мостът има четири връзки към Arduino, три изхода и един вход. Пиновете, използвани от H-моста, са предварително зададени и не могат да бъдат променяни.

 

Блокова схема

Блоковата схема по-долу обяснява накратко изискванията за захранване и връзките. Arduino работи на 5V захранване, а H-мостът работи на 12V. Ако използвате два отделни захранвания, е важно техните заземявания да са споделени, за да се избегне сценарий с плаващо заземяване.

 

Block diagram

 

Команди за Ардуино

Ще трябва да инсталирате Arduino IDE на настолен компютър или лаптоп. Имайте предвид, че окабеляването на вашата система ще повлияе на кода на Arduino. Ето защо е важно да проверите отново връзките си и да ги сравните с кода, който сте въвели.

Командата pinMode на Arduino се използва за дефиниране на пиновете като входове или изходи. За да промените какъв сигнал изпраща Arduino към конкретен пин, се използват командите digitalWrite и analogWrite. Освен това, командите digitalRead и analogRead се използват, когато Arduino трябва да провери сигнала на конкретен пин.

В програмата по-долу, командата digitalWrite се използва за активиране или деактивиране на H-моста и за конфигуриране на пиновете, използвани за бутоните. Командата analogWrite се използва за задаване на стойността на PWM сигнала в диапазона от 0 до 255 към H-моста. Командата digitalRead се използва за проверка дали бутоните са били натиснати или освободени. Командата analogRead се използва за измерване на консумирания ток от двигателя на задвижващия механизъм, което ще провери кога задвижващият механизъм е в края на своя ход.

 

Код на Ардуино

Следващият раздел разглежда дефинициите на програмата, настройката, главния цикъл и функциите на бутоните за линеен задвижващ механизъм, управляван от Arduino. Важно е да разглеждате кода ред по ред, за да разберете как функционира. Това разбиране ще ви позволи да правите корекции въз основа на вашето приложение.

Дефиниции на програмата

Тази част от кода е настройката за свързване на пиновете. Проверете отново дали връзките ви към платката Arduino съответстват на въведените числа. Тези стойности могат да бъдат променени в зависимост от това дали свързвате допълнителни компоненти към Arduino, които може да изискват разместване на връзките на пиновете.

Arduino code

Настройка на програмата

Тази част от кода конфигурира свързаните пинове като вход или изход. Двата бутона могат да бъдат настроени на HIGH (високо) или LOW (ниско) в зависимост от това как сте ги свързали (pull-up (повдигане) или pull-down (надолу)). Въпреки че Arduino има вътрешни pull-up резистори, може да се наложи да добавите външен резистор, за да премахнете дребезга на превключвателите и да предотвратите фалшиво задействане.

Arduino code #2

Главен контур

Главният цикъл постоянно проверява дали бутоните са натиснати и изпълнява определена секция от код в зависимост от резултата от функцията на бутона. Включена е секция за машина на състоянията, която определя какво прави управляваният от Arduino линеен задвижващ механизъм и как трябва да реагира въз основа на входните данни (т.е. бутоните).

Arduino code #3
Arduino code #4

 

Функции на бутоните

Тези функции отчитат цифрово състоянието на бутоните, за да управляват задвижващ механизъм, използвайки Arduino. Всяка функция на бутон има цикъл за премахване на отскока в основния if оператор, за да се предотврати неправилно запалване и изпращане на грешен сигнал към Arduino. Булева стойност е изходът на тези функции. Например, ако бутонът за стартиране бъде натиснат, стойността на startButton ще се промени на true. Булевата стойност след това се използва в основния цикъл за вземане на по-нататъшни решения.

Arduino code #5

 

Заключителни думи

Функционалността на тази система надхвърля представеното в тази статия. Микроконтролер Arduino и H-мостът MegaMoto Plus може да се използва за реализиране на много по-сложни управляващи процедури. Тази конфигурация е способна на управление с променлива скорост, използвайки командата analogWrite за задаване на PWM сигнала. Токът на двигателя на задвижващия механизъм може да се следи, за да се използва за измерване на натоварването, за да се задействат допълнителни команди.

Освен това, могат да се прикачат допълнителни сензори за усъвършенстван линеен задвижващ механизъм, управляван от Arduino. Например, може да се прикачи ултразвуков сензор, който да стартира/спира двигателя, когато сте на определено разстояние, или може да се използва за задействане на множество други вълнуващи функционалности. Възможностите са безкрайни. Ако обаче пиновете на Arduino са изтощени, можете да изберете различен модел Arduino. Като алтернатива, няколко Arduino могат да бъдат свързани последователно, за да комуникират помежду си и с различни компоненти. Този начин обаче ще изисква достатъчен опит в програмирането.

За допълнителна информация, моля, изпратете ни имейл на sales@progressiveautomations.comили ни се обадете на 1-800-676-6123.