Неадекватный я или серво

AlR
Offline
Зарегистрирован: 05.09.2013
Сервы ведут себя как то не адекватно. Когда их подключено 8 штучек, то вроде как все ОК, а подключаешь больше оих начинает колбасить.
Подаскажите пожалуйста.
Девайс Arduino DUE



#include <Servo.h> 




Servo r_f_1;
Servo r_f_2;
Servo r_f_3;
Servo r_m_1;
Servo r_m_2;
Servo r_m_3;
Servo r_r_1;
Servo r_r_2;
Servo r_r_3;
Servo l_f_1;
Servo l_f_2;
Servo l_f_3;
Servo l_m_1;
Servo l_m_2;
Servo l_m_3;
Servo l_r_1;
Servo l_r_2;
Servo l_r_3;


int servoPosSafeStart = 90;
int minpos = 700;
int maxpos = 2200;

 
void initServos()
{
 int i;

for (i=53; i != 36; i -= 1)
{
  pinMode(i, OUTPUT);
}


r_f_1.attach(53, minpos, maxpos);
r_f_2.attach(52, minpos, maxpos);
r_f_3.attach(51, minpos, maxpos);
r_m_1.attach(50, minpos, maxpos);
r_m_2.attach(49, minpos, maxpos);
r_m_3.attach(48, minpos, maxpos);
r_r_1.attach(47, minpos, maxpos);
r_r_2.attach(46, minpos, maxpos);
r_r_3.attach(45, minpos, maxpos);
l_f_1.attach(44, minpos, maxpos);
l_f_2.attach(43, minpos, maxpos);
l_f_3.attach(42, minpos, maxpos);
l_m_1.attach(41, minpos, maxpos);
l_m_2.attach(40, minpos, maxpos);
l_m_3.attach(39, minpos, maxpos);
l_r_1.attach(38, minpos, maxpos);
l_r_2.attach(37, minpos, maxpos);
l_r_3.attach(36, minpos, maxpos);

r_f_1.write(servoPosSafeStart );
r_f_2.write(servoPosSafeStart );
r_f_3.write(servoPosSafeStart );
r_m_1.write(servoPosSafeStart );
r_m_2.write(servoPosSafeStart );
r_m_3.write(servoPosSafeStart );
r_r_1.write(servoPosSafeStart );
r_r_2.write(servoPosSafeStart );
r_r_3.write(servoPosSafeStart );
l_f_1.write(servoPosSafeStart );
l_f_2.write(servoPosSafeStart );
l_f_3.write(servoPosSafeStart );
l_m_1.write(servoPosSafeStart );
l_m_2.write(servoPosSafeStart );
l_m_3.write(servoPosSafeStart );
l_r_1.write(servoPosSafeStart );
l_r_2.write(servoPosSafeStart );
l_r_3.write(servoPosSafeStart );

  
} 


void setup() 
{ 
  Serial.begin(9600);
  initServos();  
} 
 
 
void loop() 
{
 


int i;
for (i=45; i != 120; i += 1)
{
 
r_f_1.write(i);
r_f_2.write(i );
r_f_3.write(i );
r_m_1.write(i );
r_m_2.write(i );
r_m_3.write(i );
r_r_1.write(i );
r_r_2.write(i );
r_r_3.write(i );
l_f_1.write(i );
l_f_2.write(i );
l_f_3.write(i );
l_m_1.write(i );
l_m_2.write(i );
l_m_3.write(i );
l_r_1.write(i );
l_r_2.write(i );
l_r_3.write(i );
delay(250);
}

for (i=120; i != 45; i -= 1)
{
 
r_f_1.write(i );
r_f_2.write(i );
r_f_3.write(i );
r_m_1.write(i );
r_m_2.write(i );
r_m_3.write(i );
r_r_1.write(i );
r_r_2.write(i );
r_r_3.write(i );
l_f_1.write(i );
l_f_2.write(i );
l_f_3.write(i );
l_m_1.write(i );
l_m_2.write(i );
l_m_3.write(i );
l_r_1.write(i );
l_r_2.write(i );
l_r_3.write(i );
delay(250);
} 

     Serial.println(s, DEC);
     delay(250);


  
}

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

а питаете вы откуда? а то может их с голоду колбасит?

AlR
Offline
Зарегистрирован: 05.09.2013

От двух аккумов литийонных вот таких

http://dx.com/p/ultrafire-3-7v-2500mah-lithium-18650-batteries-blue-blac...

Землю пуская через дуинку, а дуинка питается от юзб.

 

Думаете надо больше аккумов добавить?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

думаю нужно померять напряжение... а то вы такими темпами скоро квартиру будете пытатся запитать от 2 акамуляторов из телефона

AlR
Offline
Зарегистрирован: 05.09.2013

Аккумы вадают по 3.7 вольта, я их последовательно подключил, счас должно быть 7.4, а потом стабилизатор стоит на 5 вольтов.

 

Или там силы тока может не хватать :(. Во дурилка. Вечером проверять буду :)

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

AlR пишет:

Или там силы тока может не хватать :(. Во дурилка. Вечером проверять буду :)

Это хорошо что вы сами смогли ответить на свой вопрос в топике кто из вас двоих неадекватный :) продолжайте испытания :)

AlR
Offline
Зарегистрирован: 05.09.2013

Да я просто далек от электрики, подумал аккумам пофигу, отдадут сколько возьмут.

maksim
Offline
Зарегистрирован: 12.02.2012

Данные аккумы в пике дают около 1,5 ампер что крайне мало для такого количества серв. Вам нужны силовые литий-полимерные аккумы.

AlR
Offline
Зарегистрирован: 05.09.2013

Так это мало очень, я насчитал надо 12 ампер для 18 машинок. А сама плата ардуино не испортится, земля то в неё подключается?

 

А не подскажите конкретные цена/качество можели или фирмы таких аккумов на 18 микросерво MG90s.

 

З.Ы. Пока пойду БП покупать. А то долго ждать их.

leshak
Offline
Зарегистрирован: 29.09.2011

Если вы сервы питаете с 5v пина, то есть весь ток еще проходит через хилый регулятор питания самой дуины, то 12 ампер могут превратить его в неплохой обогреватель на зиму. правда - очень не на долго. Если при этом у вас еще USB кабель подключен, то после того как сядет аккум или сдохнет регулятор - эти 12-ти ампер попытаются взятся с USB компа. Если повезет - сработает защита. Если не повезет - выгорит USB на мамке. Если "совсем не повезет" - мамка.

Вообщем для такого количества серв нужен - отдельный блок питания. И питать сервы - напрямую от него (если его вольтаж подходит). Если не подходит - между ними нужен еще, опять-таки отдельный регулятор напряжения. С хорошим радиатором. Или учитывая акум не резиновый - искать импульсный регулятор. КПД выше, меньше греется. Меньше энергии в пустую. Но дороже (существенно) и больше.

AlR
Offline
Зарегистрирован: 05.09.2013

Было так.

 

2 аккума 18650 li-ion

Подключено след образом.

Плата питается от ЮЗБ. Земля от платы идет на сервы и вот на эту хрень не помню как оно называется, помоему это и есть импульсный регулятор http://www.hobbyking.com/hobbyking/store/__6233__turnigy_8_15a_ubec_for_...

От него и идет питание на все сервы.

 

Счас попробывал добавить еще 2 аккума. Ничего не поменялось даже после параллельного подключения еще двух. Как плющило после подключения 8 сервы, так и плющит.

leshak
Offline
Зарегистрирован: 29.09.2011

Ну с регулятором вроде все грамотно выглядит. Только неизвестно сколько у вас жрет каждая серва. Не вышло найти их потребление в гугле. Можете попробовать замерить сколько одна серва кушает, а потом умножить. Регулятор тоже "не резиновый". Он на 8A, если сервы жрут 12A, то....

А еще можете попробоват такой "финт ушами". Физически подключите 3-4 сервы, а в коде 16-ть. Если эти 3-4 начнут дурить - значит проблема в коде, а не железе.

А еще - почитайте про массив (array) и for - больно смотреть на эти простыни однотипного кода.

AlR
Offline
Зарегистрирован: 05.09.2013

Да у меня так и был код с массивами сделан, я просто его раза 4 переписывал, думал в коде где то проблема, последний раз вообще к примитиву пошел :)

Я так то не сразу все сервы подключаю, по три штучки за раз. т.е. по одной ноге. Две ноги нормально, подключаешь третью, все капец. Все дергается как попало.

Сами сервы мелкие

вот нагуглил

"Мой потребляет до 6А в пике, но он тяжелее и приводы MG90" Это должно быть 18 штук столько жрут, у меня проблемы начинают с 8.

leshak
Offline
Зарегистрирован: 29.09.2011

>, по три штучки за раз. т.е. по одной ноге. Две ноги нормально, подключаешь третью, все капец

нифига не понял. Вот у вас есть код в стартовом посте. Там видно пыпытку рулить 18-тью сервами. Вот если взять этот код, залить в дуину, но подключить только 4-ре сервы. Все остальные - сложить в коробку и спрятать за шкаф. Эти четыре нормально работают или "дергаются"?

Если нормально, то нормально на любых выходах от 36 до 53 или "на одних работает, а на других дергается"? Можете даже одну серву взять и поочереди потыкать ее в выходы.

>Мой потребляет до 6А в пике

Тоже не фига не понял. Возмите тестер и померте сколько У ВАС жрет одна серва.

AlR
Offline
Зарегистрирован: 05.09.2013

> нифига не понял. Вот у вас есть код в стартовом посте. Там видно пыпытку рулить 18-тью сервами. Вот если взять этот код, залить в дуину, но подключить только 4-ре сервы. Все остальные - сложить в коробку и спрятать за шкаф. Эти четыре нормально работают или "дергаются"?

 

4 работают нормально, даже 7 работают нормально, а вот больше 7 фих. Все выходы проверял, на всех нормально. Это первое что я сделал. Думал сами сервы глучат, проверял разными, эффект не изменился.

> Тоже не фига не понял. Возмите тестер и померте сколько У ВАС жрет одна серва.

Тестера нету. Седня к знакомым пойду, будем мерять.

 

 

 

Седня еще попробую от компутерского БП запитать, через 12 вольтовую ветку, там 30 ампер нагрузки можно дать, 100% хватит :)

 

leshak
Offline
Зарегистрирован: 29.09.2011

Можете еще попробовать такой вариант:

8-мь запитать через ваш регулятор, а 9-тую с 5v пина дуины. По идее у USB должно хватить сил одну серву пропитать (но "наверняка" это можно сказать, конечно только после промера тестером апетитов. На 95% - безопасно, но 5% - остается).

Если в таком режиме все 9-ть будут нормально работать, то...  искать более мощный регулятор (или два). И лучше тогда вешать по 6-ть серв на регулятор. Что-бы был запас. Потому как потребление "без нагрузки" (когда сервы в воздухе крутятся) и "под нагрузкой" (когда им какую то работу выполнять нужно) - может отличатся. Да в любом случае - лучше не работать в "предельных режимах".

>через 12 вольтовую ветку

Так сервы же у вас - 5-ти вольтовые. В спецификациях говорится что и 6-ть покатит, но народ говорит что "лучше не нужно 6-ть вольт". Не долго живут на них.

>Тестера нету. Седня к знакомым пойду, будем мерять.

Не понимай как можно что-то электронное делать не имея своего тестера. Тем более что он копейки стоит на любом углу. А подойдет любой самый простой. Прозвонить дорожку, померять напряжение - проф. тестера за $1500 - не нужен. За $5-$10 вполне справится с этим. Так что лучше не "к знакомым", а "в магазин".

 

AlR
Offline
Зарегистрирован: 05.09.2013

Спасибо. Вроде как действительно не хватало силы тока. Взял вместо батарей компьютерный БП и его 12 вольт, все сразу завелось.