Что понадобится
- Arduino Uno или Nano.
- Сервопривод SG90 (или похожий).
- Для двух и больше сервоприводов — отдельный блок питания 5 В.
Как подключить
Коричневый провод серво — к GND, красный — к 5V, оранжевый (сигнал) — к выводу 9. Один SG90 можно питать от платы; несколько уже просаживают USB, и плата начинает перезагружаться — тогда их питают отдельно, соединив землю блока питания с GND платы.
Программа из блоков
Соберите в BloX такую программу — или нажмите «Открыть в BloX», и она появится в редакторе готовой.
Код C++, который BloX собирает из этих блоков, — его можно скопировать в Arduino IDE:
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9);
}
void loop() {
myServo.write(0);
delay(1000);
myServo.write(90);
delay(1000);
myServo.write(180);
delay(1000);
}
Как это работает
Блок «Серво подключить пин 9» сам добавляет в код библиотеку Servo.h и объект myServo — в Arduino IDE ничего доставлять не нужно, эта библиотека встроенная.
«Серво угол» отправляет на вывод управляющие импульсы, и привод поворачивается на заданный угол от 0 до 180 градусов. Пауза в секунду даёт ему время доехать: без неё он не успел бы повернуться до следующей команды.
Как загрузить в плату
BloX собирает код, а в плату его заливает Arduino IDE. Нажмите в BloX «Код C++», скопируйте его, вставьте в новый скетч Arduino IDE, выберите плату и порт в меню «Инструменты» и нажмите «Загрузить».
Платы под рукой нет? Нажмите «Проверить в симуляторе» — код откроется на виртуальной плате урокробототехники.рф. Добавьте на схему сервопривод и подключите его к выводу 9, 5V и GND.
Попробуйте сами
- Добавьте углы 45 и 135 — получится шаг поменьше.
- Уменьшите паузы до 300 мс и посмотрите, успевает ли серво.
- Возьмите потенциометр из урока 3 и поворачивайте серво ручкой: угол = map(потенциометр, 0, 1023, 0, 180).