Плавное вращение сервопривода на Ардуино

Плавное вращение микросерво от Ардуино

Плавные повороты микро серво на Ардуино ► позволят вам использовать сервоприводы в различных проектах, где необходимо плавное вращение мотора.

Управление скоростью вращения сервомотора Ардуино сделать довольно просто, если вы знакомы с циклами for или while в языке программирования Arduino. Рассмотрим, как сделать плавные повороты серво от 0 до 90 градусов, используя циклы. Представленные на этой странице примеры программ позволят вам использовать сервоприводы в различных проектах, где требуется плавный поворот.

Видео. Плавное вращение микро серво на Ардуино

Как сделать плавные повороты серво

Для занятия нам понадобятся следующие детали:

Все необходимое для изучения Ардуино можно недорого купить здесь

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

Обратите внимание, что серво подключается к ШИМ (PWM) портам Ардуино и для работы с моторчиком необходима библиотека Servo.h. Для плавного вращения сервы, как и для плавного зажигания светодиодов используется цикл for или while. Схема подключения сервопривода к микроконтроллеру представлена на картинке выше. Соберите схему и загрузите следующую программу в плату Arduino.

Скетч для плавного поворота серво с циклом for

#include <Servo.h>
Servo servo;

int angle; // переменная для угла поворота микро серво

void setup() {
  servo.attach(11); // пин для подключения микро серво
}

void loop() {
  // цикл для поворота от 0 до 90 градусов
  for (angle = 0; angle <= 90; angle++) {
    servo.write(angle); // сообщаем микро серво угол поворота
    delay(20); // ждем 10 мс, пока микро серво не сделает поворот
  }

  // цикл для поворота от 90 до 0 градусов
  for (angle = 90; angle >= 0; angle--) {
    servo.write(angle); // сообщаем микро серво угол поворота
    delay(20); // ждем 10 мс, пока микро серво не сделает поворот
  }
}

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

  1. максимальный угол для плавного поворота микросерво — 180 градусов;
  2. увеличивая задержку delay(20);, можно замедлить скорость поворота.

Скетч для плавного поворота серво с циклом while

#include <Servo.h>
Servo servo;

int angle; // переменная для угла поворота микро серво

void setup() {
  servo.attach(11); // пин для подключения микро серво
}

void loop() {
  // цикл для поворота от 0 до 90 градусов
  while (angle < 90) {
    angle++;
    servo.write(angle); // сообщаем микро серво угол поворота
    delay(20); // ждем 10 мс, пока микро серво не сделает поворот
  }

  // цикл для поворота от 90 до 0 градусов
  while (angle > 0) {
    angle--;
    servo.write(angle); // сообщаем микро серво угол поворота
    delay(20); // ждем 10 мс, пока микро серво не сделает поворот
  }
}

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

  1. цикл while выполняется до тех пор, пока выражение в круглых скобках является истиной. Т.е. первый цикл while (angle < 90) {} будет выполнятся до тех пор, пока угол поворота микро серво мотора не станет больше 90 градусов.
1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5,00 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *