Menu
CoddyTech

Сервопривод и ручка

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

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

Ручка выдаёт значения от 0 до 1023, а arm.write() принимает значения от 0 до 180 градусов, поэтому map() преобразует их:

int reading = analogRead(A0);
int angle = map(reading, 0, 1023, 0, 180);
arm.write(angle);

Значение 0 превращается в 0 градусов, 1023 — в 180, а все значения между ними дают промежуточные результаты, поэтому рычаг поворачивается вместе с ручкой.

Вывод угла с помощью Serial.println() показывает в мониторе последовательного порта, какое число получает рычаг. Это помогает, когда он не указывает туда, куда вы ожидаете.

challenge icon

Задание

Легко

Заставь сервопривод следовать за ручкой:

  • считай показание ручки с помощью analogRead(A0)
  • преобразуй показание в угол от 0 до 180 с помощью map()
  • перемести туда рычаг с помощью arm.write() и выведи угол

Нажми Run и поверни ручку, затем нажми Check.

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

#include <Servo.h>

Servo arm;

void setup() {
  arm.attach(9);
  Serial.begin(9600);
}

void loop() {

}
quiz iconПроверьте себя

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

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

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