Ошибка в управлении сервомотором

Тема в разделе "Arduino & Shields", создана пользователем Ephirion, 22 окт 2016.

  1. Ephirion

    Ephirion Нуб

    Используется arduino nano v3.0, питание от аккумулятора на 7.4 В. Нужно чтобы сервомотор переодически отклонялся то влево то вправо от исходной точки. При использовании этого кода:
    #include <Servo.h>

    Servo myservo;

    int pos = 0;

    void setup() {
    myservo.attach(9);
    }

    void loop() {
    for (pos = 0; pos <= 180; pos += 1) {
    // in steps of 1 degree
    myservo.write(pos);
    delay(15);
    }
    for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    delay(15);
    }
    }
    Или аналогичных, результат следующий:
    Где-то 1.5 секунды мотор вращается в одну сторону, потом следует короткая пауза, после чего продолжает вращаться в том-же направлении. После 4-5 циклов мотор перестает вращаться вообще или продолжает вращаться безостановочно. При этом иногда привод вращается около 0.25 секунды, после чего продолжает вращаться как и раньше. При подобных зависаниях мигает красный светодиод обозначенный как L.
    Данная проблема возникла сразу на двух платах. Помогите новичку разобраться в чем проблема.
     
  2. rkit

    rkit Гуру

    Нет смысла во всем этом страдании с поворотами на 1 градус.
    Код (C++):
    myservo.write(180);
    delay(2000);
    myservo.write(0);
    delay(2000);
    Всё.