Опубликовано 2026-05-11
Давайте сначала поговорим о факте: играя с автомобилем Arduino, или играя с роботизированной рукой Arduino, или играя с небольшим устройством контроля доступа Arduino, в девяти случаях из десяти вы встретите синий микросервопривод 9g или прозрачный микросервопривод 9g, то есть SG-90.. Несмотря на свой небольшой размер, он поворачивает угол, управляет переключателем, кивает и трясет головой, полагаясь на сигнал ширины импульса. Но многие люди сталкиваются с трудностями на первом этапе: как соединить линии? Почему код дрожит после написания? Сегодня я разберу это для вас подробно и выберу самое необходимое из огромного опыта.
Коричневый провод: GND (земля)
Красный провод: VCC (источник питания 5 В)
Оранжевая линия: сигнальный контакт ШИМ (D9/D10 опционально)
Ниже приводится типичная ситуация опрокидывания: нажмите красную линию на 3,3 В, но сервопривод не вращается; вставьте его в положительную клемму аккумулятора, что приведет к сгоранию внутреннего накопителя.
Его безопасная зона составляет 5 В, чего достаточно для работы от источника питания USB. Если вы едете более чем вдвоём, внешний аккумулятор будет более стабильным.
Используйте библиотеку Servo, не пишите рабочий цикл ШИМ самостоятельно.
#включатьСервопривод myServo; void setup() { myServo.attach(9); // Сигнальная линия подключена к контакту 9 } void Loop() { myServo.write(0); // задержка 0 градусов(1000); мойСерво.запись(90); // задержка на 90 градусов(1000); мойСерво.запись(180); // задержка на 180 градусов(1000); }
Этот раздел будет вращаться вперед и назад. Не спрашивайте, почему он принадлежит ситуации 0, 90 и 180, тогда его физический предел здесь.
Внутри него находится потенциометр и редуктор. Когда вы задаете ширину импульса 1 мс, он поворачивается на 0 градусов, когда вы задаете ширину импульса 1,5 мс, он поворачивается на 90 градусов, а когда вы задаете ширину импульса 2 мс, он поворачивается на 180 градусов.

Библиотека Servo автоматически преобразует угол записи в соответствующую ширину импульса.
Однако следует отметить, что СГ-90 разных производителей может отклоняться на несколько градусов, поэтому процесс калибровки игнорировать нельзя.
Сначала напишите (90), чтобы проверить, вертикальна ли часть руки.
Если нет, вручную согните его в вертикальное положение и установите рычаг на место.
Раздел вопросов и ответов
Вопрос: Сервопривод сильно вибрирует при подключении, как это решить?
О: Блок питания находится в нестабильном состоянии. Работа источника питания 5В осуществляется исключительно по красной линии. Вывод 5 В Arduino используется только в качестве опорного сигнала.。
Вопрос: Что делать, если write(180) может поворачиваться только на 120 градусов?
О: Сначала выполните операцию записи (180), затем отключите питание, затем вручную согните рычаг до максимального угла, а затем снова включите питание.。
Вопрос: Нормально ли, что сервопривод нагревается после непрерывного вращения в течение нескольких минут?
А: Ненормально. SG-90 является сервоприводом положения и не должен использоваться в качестве двигателя непрерывного вращения.
Вопрос: Сигнальный кабель подключен правильно и код правильный, но он просто не двигается?

A: Проверьте общее заземление. Земля Arduino и земля сервопривода должны быть подключены.
Вопрос: Могу ли я напрямую подавать сигнал ШИМ вместо библиотеки сервоприводов?
О: Да, но это не обязательно. Библиотека инкапсулирует цикл длительностью 20 мс, и сервопривод легко сжечь, если написать его самостоятельно.
Не думайте о том, чтобы сделать шестиногого робота за один шаг. Сначала сделайте небольшое устройство:
барьер из картона
Нажмите кнопку, нажмите один раз, чтобы поднять рычаг, а затем нажмите нижний рычаг.
Ключевым моментом кода является запись текущего состояния каждый раз, когда вызывается write(0) или write(90).
Вы можете обнаружить ситуацию. Когда он быстро изменится с 0 на 90, будет казаться, что сервопривод «стреляет вперед». Добавить задержку? Не так, но добавьте смягчения.
void SlowMove (int from, int to, int StepDelay) { if (from = to; i--) { myServo.write(i); задержка (шагDelay); } }
Таким образом, он движется медленно, как настоящая рука, и шестерни не склонны к разрушению.
В чем смысл? Батарейку АА можно поднять, но хотите толкнуть книгу? Должно быть, застрял.
В процессе изготовления роботизированной руки в большой части руки должен использоваться сервопривод с металлическими зубьями, например MG995. Однако СГ-90 подходит только для изготовления запястий или когтей.
Рассуждения по аналогии: СГ-90 похож на велосипедную цепь. Если с его помощью тянуть машину, она обязательно сломается.
Дерево решений отладки SG-90 ├─ Нет реакции при подключении │ ├─ Проверьте: GND находится на той же земле? │ └─ Проверьте: источника питания 5 В достаточно для тока 1 А? ├─ Джиттер после перемещения в заданное положение │ ├─ Добавьте конденсатор: электролиз 100 мкФ между красным проводом и GND │ └─ задержка (15) после записи кода ├─ Угол выключен │ ├─ Мягкая калибровка: myServo.write (фактический угол + смещение) │ └─ Жесткая калибровка: снимите кронштейн и установите его заново └─ Не следуйте коду вообще └─ Перейдите на цифровой и проверьте, не занимает ли какая-либо другая библиотека Таймер1.
1. Возьмите макет, SG-90 и три провода DuPont.
2. Запишите код для изменения первого абзаца выше.
3. Подтвердите положения 0 градусов, 90 градусов и 180 градусов.
4. Измените код так, чтобы он останавливался на 45 градусах и удерживался 10 секунд.
5. В случае успеха вы освоили 80% сценариев применения небольших сервоприводов.
Что такое оставшиеся 20%? Это значит соединить несколько сервоприводов последовательно, прочитать показания потенциометра для достижения замкнутого контура и установить группу действий. Но я не буду говорить об этом сегодня, потому что сначала вам нужно запустить это.
Помните: все сложные проекты роботов начинаются с SG-90, который может поворачиваться на 30 градусов. Попробуйте, а не просто ждите и смотрите.
Время обновления: 11 мая 2026 г.
Свяжитесь со специалистом по продукции Kpower, чтобы порекомендовать подходящий двигатель или редуктор для вашего продукта.