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. Код - не смотрел, там тоже могут быть "косяки", но это менее вероятно.