Menu
CoddyTech

Поворот сервопривода

Часть раздела Выходные сигналы путешествия по Arduino на Coddy. Урок 21 из 24.

arm.write() сразу перемещает сервопривод на заданный угол. Чтобы двигать сервопривод медленно, перебирай все промежуточные углы с помощью цикла for, делая небольшую паузу на каждом из них:

for (int angle = 0; angle <= 180; angle++) {
  arm.write(angle);
  delay(15);
}

Здесь счётчик называется angle, а <= 180 включает и сам угол 180. 181 шаг по 15 мс занимает около 2,7 секунды.

Чтобы вернуться обратно, веди отсчёт в обратном направлении. angle-- уменьшает значение на 1 за каждый проход, а цикл выполняется, пока угол не меньше 0:

for (int angle = 180; angle >= 0; angle--) {
  arm.write(angle);
  delay(15);
}

Помести оба цикла в loop(), и сервопривод будет двигаться туда-сюда, как стеклоочиститель.

challenge icon

Задание

Легко

Заставь сервопривод на пине 9 поворачиваться туда и обратно снова и снова:

  • от 0 до 180 градусов, по одному градусу за раз, с паузой 15 мс на каждом шаге
  • затем таким же образом обратно до 0

Нажми Run, затем Check.

Попробуйте сами

#include <Servo.h>

Servo arm;

void setup() {
  arm.attach(9);
}

void loop() {
  // поворачивать от 0 до 180, на один градус каждые 15 мс
  // затем обратно до 0
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Выходные сигналы

Потренируйтесь самостоятельно: Песочница Arduino