Arduino, funduino i/o expansion и 8 сервоприводов.
- Войдите на сайт для отправки комментариев
Пт, 30/09/2016 - 20:41
Привет всем. Делаю четырехногого робота паука и возникла проблема - первая пара ног работает нормально, вторая пара ног чуть "дрыгается", после чего немного хаотично двигаются все сервоприводы, а после вновь нормально двигается первая пара ног. Из-за чего такое может происходить? Заранее благодарю за ответы.
Для подклюения сервоприводов использую плату 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);
}
}
Если питание от USB, то скорее всего превышение общего потребляемого тока и кратковременное срабатывание защиты порта с последующим уходом МК в перезагрузку.
Если питание от батареек и оно единое на моторы и ардуину, то скорее всего, скачки от включения серв пробивают по питанию на плату и проходит общий "сброс по питанию".
Если питание раздельное у платы и моторов, то скорее всего наводки сбрасывают камень.
В любом случае по вашему описанию сильно похоже на уход в перезагрузку процессора.
P.S. Код - не смотрел, там тоже могут быть "косяки", но это менее вероятно.