Arduino, funduino i/o expansion и 8 сервоприводов.

Alpenland
Offline
Зарегистрирован: 13.06.2016

Привет всем. Делаю четырехногого робота паука и возникла проблема - первая пара ног работает нормально, вторая пара ног чуть "дрыгается", после чего немного хаотично двигаются все сервоприводы, а после вновь нормально двигается первая пара ног. Из-за чего такое может происходить? Заранее благодарю за ответы.

Для подклюения сервоприводов использую плату funduino i/o expansion v5.0. 

#include <Servo.h>

Servo servo8;
Servo servo9;

Servo servo4;
Servo servo7;

Servo servo5;

Servo servo11;
Servo servo2;

Servo servo12;

int pos = 0;

void setup()
{
  servo8.attach(8);
  servo9.attach(9);

  servo5.attach(5);
  servo12.attach(12);

  ////

  servo4.attach(4);
  servo7.attach(7);

  servo11.attach(11);
  servo2.attach(2);

}


void loop()
{
  prepare();
  for (;;)
    go();

}
void prepare() {
  servo8.write(90);
  servo9.write(90);

  servo5.write(90);
  servo12.write(90);

  servo4.write(90);
  servo7.write(90);

  servo11.write(90);
  servo2.write(90);

}
void go() {


  for (pos = 0; pos < 90; pos += 1)
  {
    servo8.write(pos);
    servo9.write(pos);

    servo5.write(pos);
    servo12.write(pos);
    delay(15);
  }
  for (pos = 90; pos >= 0; pos -= 1)
  {
    servo8.write(pos);
    servo5.write(pos);
    delay(15);
  }

  for (pos = 0; pos < 90; pos += 1)
  {
    servo4.write(pos);
    servo7.write( floor(150 - pos / 2));

    servo11.write(pos);
    servo2.write( floor(150 - pos / 2));
    delay(15);
  }


  for (pos = 90; pos >= 0; pos -= 1)
  {
    servo11.write(pos);
    servo4.write(pos);
    delay(15);
  }
}
Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Если питание от USB, то скорее всего превышение общего потребляемого тока и кратковременное срабатывание защиты порта с последующим уходом МК в перезагрузку.

Если питание от батареек и оно единое на моторы и ардуину, то скорее всего, скачки от включения серв пробивают по питанию на плату и проходит общий "сброс по питанию".

Если питание раздельное у платы и моторов, то скорее всего наводки сбрасывают камень.

В любом случае по вашему описанию сильно похоже на уход в перезагрузку процессора.

P.S. Код - не смотрел, там тоже могут быть "косяки", но это менее вероятно.