Arduino UNO. Три сервпоривода

Здравствуйте, форумчане! Подскажите, как правильно составить код работы 3 сервоприводов, подключенных к Ardruino Uno? Привод head поворачивается на 180 градусов, два привода ear1 и ear2 поворачиваются на 45 градусов. Все происходит одновременно. В текущем варианте кода head работает корректно, а два остальных вращаются на 360 градусов.

#include "Servo.h"
Servo head;
Servo ear1;
Servo ear2;

int angle; // переменная для угла поворота микро серво

void setup() {
  head.attach(9); // пин для подключения микро серво
  ear1.attach(10);
  ear2.attach(8);
}

void loop() {
    ear1.write(0);
    ear2.write(0);

  // цикл для поворота от 0 до 180 градусов
    for (angle = 0; angle <= 180; angle++) {
      head.write(angle); // сообщаем микро серво угол поворота
      delay(20); // ждем 20 мс, пока серво не сделает поворот
    }
    ear1.write(45);
    ear2.write(45);

  // цикл для поворота от 180 до 0 градусов
    for (angle = 180; angle >= 0; angle--) {
      head.write(angle); // сообщаем микро серво угол поворота
      delay(20); // ждем 20 мс, пока серво не сделает поворот
    }
}

Делать через millis(); без delay();

Добрый вечер! К сожалению, я всего лишь 2 часа как погружен в тему arduino. Буду признателен, если дадите развернутый ответ. Пытаюсь помочь супруге оживить торт:)

Если вращаются на 360, то это приводы постоянного вращения, нужно брать с управляемым углом.

1 лайк

Добрый день! Вы правы. Один из комплекта и он работает, а два остальных заказывал дополнительно и не обратил внимание на отсутствие датчика поворота. Спасибо за помощь!

Медленно вращающиеся в разные стороны уши тоже могут привлечь.