kz ru
Каталог

Проект 4: Управление сервоприводом

Сервопривод - это позиционный поворотный исполнительный механизм. Он состоит в основном из корпуса, печатной платы, бездатчикового двигателя, шестерни и датчика положения. Его принцип работы заключается в том, что серво принимает сигнал, отправленный микроконтроллерами или приемниками, и создает опорный сигнал с периодом 20 мс и шириной 1,5 мс, затем сравнивает полученное постоянное напряжение с напряжением потенциометра и выдает разницу в напряжении на выходе. В целом, у сервопривода три провода - коричневый, красный и оранжевый. Коричневый провод - земля, красный - положительная линия, а оранжевый - сигнальная линия. Угол поворота сервопривода контролируется путем регулировки скважности сигнала ШИМ (Широтно-импульсной модуляции). Стандартный цикл сигнала ШИМ составляет 20 мс (50 Гц). Теоретически ширина распределена в диапазоне от 1 мс до 2 мс, но на практике это от 0,5 мс до 2,5 мс. Ширина соответствует углу поворота от 0° до 180°. Однако следует помнить, что у разных моторов один и тот же сигнал может иметь разные углы поворота.

Технические характеристики:

Рабочее напряжение: DC 4,8 В ~ 6 В
Диапазон угла поворота: около 180° (при 500 → 2500 мкс)
Диапазон ширины импульсов: 500 → 2500 мкс
Скорость холостого хода: 0,12 ± 0,01 с/60 (DC 4,8 В), 0,1 ± 0,01 с/60 (DC 6 В)
Ток холостого хода: 200 ± 20 мА (DC 4,8 В), 220 ± 20 мА (DC 6 В)
Удерживающий момент: 1,3 ± 0,01 кг · см (DC 4,8 В), 1,5 ± 0,1 кг · см (DC 6 В)
Ток хода в простое: ≤ 850 мА (DC 4,8 В), ≤ 1000 мА (DC 6 В)
Ток в режиме ожидания: 3 ± 1 мА (DC 4,8 В), 4 ± 1 мА (DC 6 В)

Схема подключения:


Заметка о подключении: сервопривод подключен к G (GND), V (VCC) и A3, коричневый провод сервопривода подключен к Gnd (G), красный провод подключен к 5V (V), а оранжевый подключен к A3. Сервопривод обязательно подключается к внешнему источнику питания из-за высокого потребления тока для его управления. Обычно ток разработки на плате не достаточно большой. Если не подключить внешний источник питания, плата разработки может сгореть.

Тестовый код:

//****************************************************************************
/*
4wd BT Car
lesson 4.1
Сервопривод
https://alash-electronics.kz/blogs/wiki
*/
#define servoPin A3 // Пин для сервопривода

int pos; // Переменная угла сервопривода
int pulsewidth; // Переменная ширины импульса для сервопривода

void setup() {
  pinMode(servoPin, OUTPUT); // Настройка пинов для сервопривода на вывод
  процедура(0); // Устанавливаем угол сервопривода в 0 градусов
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // Перемещение от 0 градусов до 180 градусов
    // с шагом 1 градус
    процедура(pos); // Указываем сервоприводу перейти в позицию, заданную переменной 'pos'
    delay(15); // Управление скоростью вращения сервопривода
  }
  for (pos = 180; pos >= 0; pos -= 1) { // Перемещение от 180 градусов до 0 градусов
    процедура(pos); // Указываем сервоприводу перейти в позицию, заданную переменной 'pos'
    delay(15);
  }
}

// Функция для управления сервоприводом
void процедура(int myangle) {
  pulsewidth = myangle * 11 + 500; // Вычисляем значение ширины импульса
  digitalWrite(servoPin, HIGH);
  delayMicroseconds(pulsewidth); // Длительность высокого уровня - ширина импульса
  digitalWrite(servoPin, LOW);
  delay((20 - pulsewidth / 1000)); // Период составляет 20 мс, низкий уровень длится оставшееся время
}
//****************************************************************************

Результат теста:


После успешной загрузки кода на плату подключите компоненты согласно схеме подключения и включите внешний источник питания. После включения переключите дип-переключатель в положение "ON", затем сервопривод начнет качаться в диапазоне от 0° до 180°.

Практическое расширение:


Более того, мы можем управлять сервоприводом с использованием библиотечного файла. Пожалуйста, обратитесь к ссылке: ссылка на документацию.

//***************************************************************************
/*
4wd BT Car
lesson 4.2
Сервопривод
https://alash-electronics.kz/blogs/wiki
*/
#include <Servo.h>
Servo myservo; // Создаем объект сервопривода для управления сервоприводом
// На большинстве плат можно создать двенадцать объектов сервопривода
int pos = 0; // Переменная для хранения положения сервопривода
void setup() {
  myservo.attach(A3); // Подключаем сервопривод к пину A3 объекта сервопривода
}
void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // Перемещение от 0 градусов до 180 градусов
    // с шагом 1 градус
    myservo.write(pos); // Указываем сервоприводу перейти в позицию, заданную переменной 'pos'
    delay(15); // Ожидание 15 мс для достижения сервопривода заданной позиции
  }

  for (pos = 180; pos >= 0; pos -= 1) { // Перемещение от 180 градусов до 0 градусов
    myservo.write(pos); // Указываем сервоприводу перейти в позицию, заданную переменной 'pos'
    delay(15); // Ожидание 15 мс для достижения сервопривода заданной позиции
  }
}
//***************************************************************************
После успешной загрузки кода на плату подключите компоненты согласно схеме подключения и включите внешний источник питания. После включения переключите дип-переключатель в положение "ON", затем сервопривод начнет качаться в диапазоне от 0° до 180°. Обычно его управляют с использованием библиотечных файлов.

Объяснение кода:

Arduino поставляется с #include <Servo.h> (функция и оператор сервопривода). Ниже приведены некоторые общие операторы функции сервопривода:

attach  (интерфейс) - Устанавливает интерфейс сервопривода.
write (угол) - Используется для установки угла поворота сервопривода; диапазон углов от 0° до 180°.
read () - Используется для чтения угла сервопривода, то есть чтение команды "write ()".
attached () - Проверяет, отправлен ли параметр сервоприводу через его интерфейс.
Примечание: формат записи выглядит так: "имя переменной сервопривода, конкретный оператор ()", например: myservo.attach(9).

Комментарии
Отзывов еще никто не оставлял
Товары упомянутые в статье
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 тг
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заказ в один клик
С помощью уведомлений о заказе можно не только получать актуальную информацию по заказу, но и иметь быстрый канал связи с магазином