Каталог
Управление двумя сервоприводами с помощью джойстика на Arduino

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

В этом проекте мы создадим систему управления двумя сервоприводами с помощью джойстика на базе Arduino. Это отличный проект для тех, кто хочет изучить основы работы с сервоприводами и джойстиками, а также для создания простого манипулятора или крана.

Необходимые компоненты

  1. Arduino Uno / Nano / Mega
  2. Джойстик модуль (например, KY-023)
  3. Два сервопривода (например, SG90)
  4. Соединительные провода
  5. Два конденсатора на 100 мкФ (рекомендуется)

Подключение компонентов

Обратите внимание

  • Конденсатор в данной схеме нам нужен для того, чтобы при включении сервопривода избежать просадки питания платы.
  • Не забывайте про то, что нужно соблюдать полярность элетролитического конденсатора. Короткая ножка (со стороны белой полосы на корпусе) — «минус».
  • Вы можете соединить провод сервопривода с макетной платой проводами «папа-папа»: коричневый это земля, красный — питание, оранжевый — сигнал.

Программирование Arduino

Ниже приведен полный код для управления двумя сервоприводами с помощью джойстика:

#include <Servo.h> // Подключаем библиотеку для работы с сервоприводами
Servo servoX; // Создаем объект для сервопривода оси X
Servo servoY; // Создаем объект для сервопривода оси Y
const int joyX = A0; // Пин для оси X джойстика
const int joyY = A1; // Пин для оси Y джойстика
int gr1 = 90; // Переменная для хранения угла поворота сервопривода оси X, начальное значение 90 градусов
int gr2 = 90; // Переменная для хранения угла поворота сервопривода оси Y, начальное значение 90 градусов
void setup() {
  servoX.attach(2); // Подключаем сервопривод оси X к пину D2
  servoY.attach(3); // Подключаем сервопривод оси Y к пину D3
  servoX.write(90); // Устанавливаем начальное положение сервопривода оси X на 90 градусов
  servoY.write(90); // Устанавливаем начальное положение сервопривода оси Y на 90 градусов
}
void loop() {
  int xValue = analogRead(joyX); // Считываем значение оси X джойстика
  int yValue = analogRead(joyY); // Считываем значение оси Y джойстика
  if (xValue < 200 && gr1 < 180) { // Если значение оси X меньше 200 и угол сервопривода оси X меньше 180 градусов
    gr1++; // Увеличиваем угол сервопривода оси X
    servoX.write(gr1); // Устанавливаем новый угол сервопривода оси X
  }
  if (xValue > 700 && gr1 > 0) { // Если значение оси X больше 700 и угол сервопривода оси X больше 0 градусов
    gr1--; // Уменьшаем угол сервопривода оси X
    servoX.write(gr1); // Устанавливаем новый угол сервопривода оси X
  }
  if (yValue < 200 && gr2 < 180) { // Если значение оси Y меньше 200 и угол сервопривода оси Y меньше 180 градусов
    gr2++; // Увеличиваем угол сервопривода оси Y
    servoY.write(gr2); // Устанавливаем новый угол сервопривода оси Y
  }
  if (yValue > 700 && gr2 > 0) { // Если значение оси Y больше 700 и угол сервопривода оси Y больше 0 градусов
    gr2--; // Уменьшаем угол сервопривода оси Y
    servoY.write(gr2); // Устанавливаем новый угол сервопривода оси Y
  }
  delay(5); // Небольшая задержка для плавного управления
}

Этот проект показал, как легко можно создать простую и функциональную систему управления с использованием базовых компонентов Arduino. Он может служить основой для более сложных проектов, таких как роботизированные манипуляторы или системы автоматизации. Надеемся, что этот проект вдохновит вас на дальнейшие эксперименты и разработки с использованием Arduino.

Комментарии
Отзывов еще никто не оставлял
Товары упомянутые в статье
В наличии
Предзаказ
арт. 250
Серводвигатель MG90S отлично подходит для небольших и средних электрических моделей....
2 200 тг 1 450 тг
В наличии
Предзаказ
арт. 252
Сервопривод 9g SG90 – легкий и качественный микро сервопривод за...
1 250 тг 800 тг
В наличии
Предзаказ
арт. 306
440 тг
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 тг
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заказ в один клик
С помощью уведомлений о заказе можно не только получать актуальную информацию по заказу, но и иметь быстрый канал связи с магазином