Как подключить сервопривод SG90 к Arduino
Сигнал на D9, питание 5 В отдельно, общий минус.
Схема подключения
Открыть в конструктореСборка по шагам
4 шага- 4 провода по порядку: земля, питание, сигналы.Нажмите на провод на схеме или строку таблицы, чтобы открыть его шаг.Стрелки ← → листают шаги.
- Шаг 1: GND сервопривода на GND разъёма USB-C
- Шаг 2: GND разъёма USB-C на GND платы
- Шаг 3: VCC сервопривода на VBUS разъёма USB-C5 В, сервопривод берёт до 650 мА, вывод даёт около 1500 мА.
- Шаг 4: PWM сервопривода на D9 платы
- Готово: 4 провода на месте.Сверьте с таблицей соединений ниже.
Соединения
| Шаг | Откуда | Куда | Цвет |
|---|---|---|---|
| 1 | USB-C 6P GND | SG90 GND | чёрный |
| 2 | Arduino Uno GND | USB-C 6P GND | чёрный |
| 3 | USB-C 6P VBUS | SG90 VCC | красный |
| 4 | Arduino Uno ~9 | SG90 PWM | ШИМ, салатовый |
Проверка питания и проводов
- Проверка схемы, та же, что в конструкторе, не нашла ошибок: напряжения выводов совпадают, земля общая, шины подключены целиком.
- SG90 берёт до 650 мА (обычно около 200) с вывода VBUS USB-C 6P, вывод даёт около 1500 мА: USB-C с резисторами 5,1 кОм: блок до 1,5–3 А, порт компьютера 500–900 мА.
Ток всей схемы и сколько она проработает от аккумулятора: расчёт питания. Где что втыкать: схема на макетке.
Пример кода
Arduino IDE, Servo 1.2 (входит в Arduino IDE).
#include <Servo.h>
Servo servo;
void setup() {
servo.attach(9);
}
void loop() {
servo.write(0);
delay(1000);
servo.write(90);
delay(1000);
servo.write(180);
delay(1000);
}
Распиновки деталей
Как подключено
Сигнал SG90 (оранжевый провод) идёт на D9: библиотека Servo выдаёт импульс 1-2 мс каждые 20 мс. Питание (красный) и минус (коричневый) на схеме идут от отдельной платы USB-C с блоком 5 В, её минус соединён с GND Arduino. Без общего минуса серва дёргается или стоит.
SG90 на ходу берёт 100-250 мА, в упоре до 650 мА. Вывод 5V Uno от USB даёт около 400 мА, поэтому при питании сервы от него проверка схемы ставит замечание: при упоре плата перезагружается, а USB-порт может отключиться.
Частые вопросы
- Почему серва дёргается и Arduino перезагружается?
- Серва в момент старта и в упоре берёт больше, чем даёт вывод 5V, напряжение проседает. Питайте серву отдельно от источника 5 В на 1-2 А и соедините минусы.
- Можно ли подключить SG90 к ESP32?
- Да. Сигнал 3,3 В SG90 обычно понимает, питание 5 В отдельно, минусы общие. Библиотека для ESP32: ESP32Servo.
- Сколько серв потянет Arduino?
- Сигналов хватит на 12 серв у Uno с библиотекой Servo, но питать их нужно от отдельного блока. Для 16 серв удобнее плата PCA9685 по I2C.