Джойстик и сервопривод |
На этой странице представлена система управления сервоприводом SG90 посредством джойстика KY-023. С помощью нее вы сможете протестировать эти элементы прежде, чем использовать в своих проектах. Для начала разберемся, что из себя представляет сервопривод. По сути это обычный мотор-редуктор на базе шагового двигателя, подобный тому, который был рассмотрен на страничке про шаговый двигатель 28BYJ-48. Основная разница - это наличие у сервопривода обратной связи по углу поворота - в него встроен потенциометр, который сообщает контроллеру положение вала. Соответственно, если это положение не соответствует заданному, Arduino его корректирует. И это происходит непрерывно. Есть и различие в управлении шаговым двигателем - благодаря наличию специальной микросхемы вращение мотора контролируется по одному проводу вместо четырех, как у 28BYJ-48. ![]() Cервопривод SG90 и джойстик KY-023 Теперь про джойстик KY-023. Здесь мы имеем два самовозвратных потенциометра, сопротивление которых меняется при повороте джойстика в двух осях. Соответственно, меняется и выходное напряжение (от 0 до 5 вольт). Эти изменения считывает контроллер, превращая вольтаж в соответствующий цифровой код : 0...1023. Как говорилось выше, потенциометры самовозвратные - если отпустить джойстик, они возвращаются в нейтральную позицию. Здесь важно помнить, что это не нулевое положение, а среднее : 2,5 вольта или 512 единиц в цифре. Кроме двух аналоговых выходов джойстик KY-023 имеет один цифровой. Это тактовая кнопка, встроенная в ручку джойстика (она срабатывает при нажатии). Но у нее есть одна особенность - она замыкает выходной контакт на землю. Поэтому цифровой пин Arduino, к которому вы его будете подсоединять, нужно подтянуть к питанию. На всех цифровых пинах Arduino UNO есть встроенные подтягивающие к питанию резисторы. Чтобы их задействовать, в секции setup скетча нужно прописать : pinMode (JoystickPin, INPUT_PULLUP). При этом кнопка будет работать в инвертирующем режиме : при нажатии - сигнал LOW, при отпускании - HIGH. В данном проекте используется только одна ось джойстика (Х). При монтаже я расположил его так, чтобы при движении влево напряжение падало, а вправо - росло. СОСТАВ СИСТЕМЫPLC Arduino UNO с шилдом Sensor Shield v 5.0 (питание 7-12 В постоянного тока), LCD-дисплей с шиной I2C, DC-DC конвертер для питания дисплея и сервопривода, сервопривод SG90 и модуль джойстика KY-023, кнопочный пост с 5-ю кнопками. |
КАК РАБОТАЕТ |
Данная система управления позволяет проверить работу сервопривода и джойстика. Управлять мотор-редуктором можно как джойстиком, так и кнопками. Через настройки можно задавать ограничения по углу поворота, вводить поправки, менять направление движения вала. Вся информация выводится на LCD-дисплей. Система позволяет настраивать все необходимые параметры и записывать их в память Arduino. |
Cервопривод SG90 и джойстик KY-023
КНОПКИ УПРАВЛЕНИЯ |
Управлять системой можно с помощью пяти кнопок : НАСТРОЙКИ, ВВЕРХ, ВНИЗ, ВЫХОД (EXIT) и РЕЖИМ (MODE), а также кнопкой на самом джойстике. Рассмотрим их функции подробно : Кнопка НАСТРОЙКИНажав ее, вы попадете в меню настроек. Продолжая нажимать эту кнопку, вы будете циклично переходить по пунктам меню. Изменение параметров осуществляется кнопками ВВЕРХ и ВНИЗ. Выход из настроек - по кнопке EXIT. На время нахождения в настройках джойстик отключается. Пройдемся по пунктам меню Настройки.
Кнопки ВВЕРХ-ВНИЗВ основном экране в режиме управления кнопками ими можно задать положение вала. В режиме настроек этими кнопками меняются параметры. Кнопка EXITВ основном экране с помощью этой кнопки можно сменить направление вращения вала (по часовой или против). Нажав на кнопку EXIT в настройках, вы выйдете из них. Кнопка MODEЭтой кнопкой можно поменять режим управления сервоприводом : джойстик или кнопки. Кнопка на джойстикеВы видели, что в настройках можно задать несколько ограничений и поправок на движение вала мотор-редуктора. Если вам нужно быстро отключить или включить все настройки, нажмите на кнопку на джойстике. |
Cервопривод SG90 и джойстик KY-023
ИНДИКАЦИЯ LCD |
|
ПОДКЛЮЧЕНИЕ |
Здесь приведено соединение всех элементов системы управления, Arduino (через шилд), сервопривода и джойстика. В виде схемы подключение представлено ниже.
![]() Схема подключения сервопривода и джойстика |
ЧТО НУЖНО ДЛЯ ПРОЕКТА |
|
СКЕТЧ |
Ниже представлен скетч системы управления. В этом окне он неудобочитаем, поэтому скачать его в формате ino вы можете по этой ссылке. Для работы этого скетча вам понадобятся дополнительные библиотеки :
Если есть возможность, проверьте эти библиотеки на наличие обновлений. |
|