Скетч. Управление двумя серво с помощью джойстика




Управление сервоприводом джойстиком Ардуино

Для того, чтобы сделать управление сервомотора с помощью джойстика, необходимо первым делом подключить к аналоговым входам платы Arduino модуль ky-023. Это необходимо, чтобы АЦП микроконтроллера получало данные о положении джойстика по координатам X и Y в режиме реального времени. Затем, с помощью строчек кода, эти данные мы преобразуем в соответствующее положение микро сервопривода.

Джойстик представляет собой два потенциометра, которые меняют сопротивление в электрической цепи при изменении положения ручки. Поэтому на аналоговых входах Ардуино, куда мы подключим джойстик, будут цифровые значения от 0 до 1023, т.е. АЦП микроконтроллера преобразует значения напряжения от 0 до 5 Вольт в цифровые значения. Именно эти значения мы будем использовать для управления серво.

 

Как подключить к Ардуино серво с джойстиком

 

 

Для этого занятия нам потребуется:

 плата Arduino Uno / Arduino Nano / Arduino Mega;

 микро сервопривод;

 джойстик ky-023;

 провода «папа-папа», «папа-мама».

 

Схема подключения сервопривода к Ардуино с джойстиком

Подключите к плате Ардуино сервомотор и джойстик, согласно схеме, изображенной на картинке выше. И загрузите следующий скетч в микроконтроллер, позволяющий сделать плавное управление сервоприводом с помощью джойстика на Ардуино. В программе мы используем функцию map(), которая преобразует числовой диапазон значений 0-1023, в новый диапазон чисел 0-180 (угол поворота серво).

Скетч. Управление сервоприводом с помощью джойстика

 

#define pinX A1 // ось X джойстика

 

#include <Servo.h> // подключаем библиотеку для серво

Servo servo1; // объявляем объект servo1

 

void setup() {

pinMode(pinX, INPUT); // указываем пин для джойстика

 

servo1.attach(9); // указываем пин для микро серво

}

 

void loop() {

int X = analogRead(pinX); // считываем значение оси X

 

X = map(X, 0, 1023, 0, 180); // переводим значение X в новый диапазон

 

servo1.write(X); // поворачиваем серво от джойстика

}

 

Пояснения к коду:

1. с помощью map() можно задать любой диапазон чисел, в том числе обратный;

2. обратите внимание, что у разных производителей распиновка джойстика может отличаться, от представленной выше схемы подключения модуля к плате.

 

Схема подключения двух сервоприводов к Ардуино с джойстиком

 

Скетч. Управление двумя серво с помощью джойстика

 

#define pinX A1 // ось X джойстика

#define pinY A0 // ось Y джойстика

 

#include <Servo.h> // подключаем библиотеку для серво

Servo servo1; // объявляем объект servo1

Servo servo2; // объявляем объект servo2

 

void setup() {

pinMode(pinX, INPUT); // указываем пин для джойстика

pinMode(pinY, INPUT); // указываем пин для джойстика

 

servo1.attach(9); // указываем пин для первого серво

servo2.attach(11); // указываем пин для второго серво

}

 

void loop() {

int X = analogRead(pinX); // считываем значение оси X

int Y = analogRead(pinY); // считываем значение оси Y

 

X = map(X, 0, 1023, 0, 180); // переводим значение X в новый диапазон

Y = map(Y, 0, 1023, 0, 180); // переводим значение Y в новый диапазон

 

servo1.write(X); // поворачиваем первый серво

servo2.write(Y); // поворачиваем второй серво

}

 

Пояснения к коду:

1. в данной программе мы лишь добавили новую локальную переменную int Y; для значений оси Y джойстика, чтобы управлять вторым серво.

Заключение. Таким образом, мы подробно рассмотрели, как используется Ардуино джойстик в управлении одним и двумя сервоприводами. Полученную информацию вы можете использовать для создания простых мини роботов на Arduino или машинок с дистанционным управлением от джойстика. Если у вас остались еще вопросы по рассмотренной теме — вы можете оставить их в комментариях под этой записью.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-09-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: