Добрый день. Пытаюсь подключить две сервы FS90 к Iskra Neo. По одному они работают, а вместе никак. Они начинают вести себя неадекватно. Подключил напрямую к контактам платы. Правильно ли я подозреваю, что микроконтроллер их не тянет по току и нужно их запускать через транзисторные ключи? Что-то не нашел данных по потреблению тока этими устройствами. Подключать внешний БП пробовал. Результат тот же.
Судя по всему, их не вытягивает стабилизатор на плате микроконтроллера. Поэтому питание к сервам нужно подключать не через контакты микроконтроллера, а внешнее а управляющий провод можно напрямую от микроконтроллера, он много не потребляет.
Да, питание от платы, но с отдельного контакта +5В. В описании Iskra Neo написано, что этот пин должен держать до 1А (понятно, что от внешнего питания через плату). Не уже ли эти две микросервы жрут больше? Ладно USB, но я же подключал отдельный БП к плате. БП на 2А. вряд ли они его так просадили. Вот что еще удивило. Я подключил к управляющим линиям по светодиоду. С одной сервой они светятся, без серв тоже. С двумя гаснут. Эта же картина наблюдается и с внешним БП. Одна серва у меня какая-то странная. Первая позиционируется четко, и после позиционирования не издает никаких звуков, а вторая после установки угла не перестает жужжать, как будто в ней что-то крутится. Хотя угол, вроде, держит. Может в ней что-то не так?
Видать эта серва и есть корень проблем, она видимо и садит стабилизатор. Можно подключить поочередно сервы со светодиодами, сначала одну потом вторую если будет заметная разница в свечении, то точто проблема в одной серве. Если есть тестер, то проверить это пару секунд.
Я это уже пробовал. Любопытно, что одна она, вроде, работает. Хотя появились подозрения, что на моей макетке что-то с контактами. Попробую все переделать. Вчера попробовал работающую серву запитать от отдельной батареи 9В через 5В стабилизатор (КРЕН). Серва металась как ужаленная, при том, что управляющие импульсы шли без изменений (Проверял на осциллографе). Т.е. почему-то у нее значительно изменилась скорость перемещения, хотя питание было 5В. Возвращаю питание от платы - скорость уменьшается. Питание проверял и мультиметром и осциллографом. Это как такое может быть? Первый раз в жизни схватился за эти вещи, сюрпризы на каждом шагу.
Может она (серва) так радовалась отдельному питанию, поэтому и металась? От чего сама плата запитана, т.е. какое напряжение на входе? Это к тому, что может сервы переключить на контакт Vin а не на +5.
Плата запитана от USB. На Искре есть подписанный пин +5В. Вот от него и питаю серву. Я пытался питать их от кроны через КРЕНку (вчера писал). Вчера она действительно металась и, видимо, по ходу подсадила крону. Сегодня она просаживает крону аж до 1В. Т.е. стабильно работает только от USB.
Запустил таки. 1. Сделал отдельное питание через внешний БП и кренку. 2. Видимо, у макеток есть проблемы с контактами. После нескольких пересборок оно заработало, но очень аккуратно нужно провода трогать. Чуть-что сразу где-то контакт пропадает. А ведь все новенькое купил. 3. Две микросервы жрут как бегемоты. Кренка за пару минут нагревается так, что вонять начинает. Правда, радиатор я не ставил. Как же будут жрать сервы посерьезнее? Эти я покупал для тестов побаловаться. 4. Обнаружил, что серва дает сильную помеху по питанию. +- 0.2В. Причем это четкий импульс с определенной частотой. У меня осциллограф паршивенький, четко засинхронизировать не получается, поэтому не уверен, но похоже, что частота этих импульсов совпадает с частотой управляющей, но по форме они не совпадают. При этом верхняя часть - пик и его ширина не изменяется. Хорошо, что помеха на ардуину не переходит, а сидит только на сервах. Кто-нибудь в курсе, как с этим бороться? На выходе с кренки стоит контер 100мкф. 5. Кроме питания, возможно, есть проблема в коде. Похоже, я там что-то перемудрил.
Вот программа для серв. Не понимаю, почему при подключении сразу двух, они ведут себя крайне нестабильно. Дергаются обе, то замирают, то мечутся. Если по одной включать, то все вроде хорошо. Импульсы выходят нормальные. Может я чего-то не понимаю в методах программирования ардуин? Я здесь несколько поменял код. В предыдущем варианте в обе сервы записывалось одно и то же значение внутри одного цикла. Здесь циклы разные. #include <Servo.h> Servo myServo1; Servo myServo2; const int SERVO1 = 8; const int SERVO2 = 9; int pos1 = 0; int pos2 = 0; void setup() { digitalWrite(SERVO1, LOW); digitalWrite(SERVO2, LOW); myServo1.attach(SERVO1); myServo2.attach(SERVO2); Serial.begin(9600); } void loop() { SetServoPos(myServo1, 180); SetServoPos(myServo2, 180); SetServoPos(myServo2, 0); SetServoPos(myServo1, 0); } void SetServoPos(Servo dServo, int pos) { int curpos = dServo.read(); if (curpos > pos ) { for(pos1 = curpos; pos1>=pos; pos1-=5) // goes from 180 degrees to 0 degrees { dServo.write(pos1); // tell servo to go to position in variable 'pos' delay(20); // waits 15ms for the servo to reach the position } } if (curpos < pos ) { for(pos1 = curpos; pos1<=pos; pos1+=5) // goes from 180 degrees to 0 degrees { dServo.write(pos1); // tell servo to go to position in variable 'pos' delay(20); // waits 15ms for the servo to reach the position } } }
ВСЕ! Я ее победил. 1. Запитал каждую серву от отдельной кренки. Не греются. 2. На выходе каждой кренки поставил конденсатор 1000 мкФ. Работают стабильно и без рывков. Отрабатывает код из поста выше. Помехи по питанию нет. Получается одна кренка держит нормально только одну серву.
Почему именно от Кроны хочется запитать? У нее ток маленький, а кренкой вы почти половину емкости тратите в тепло
Просто использовал то, что было под рукой. Ну и от незнания. Я сильно начинающий, а в описаниях серв на сайтах магазинов почему-то не пишут сколько они потребляют. Программа выше, исключительно для тестов. В дальнейшем сервы так работать не будут. Они должны будут позиционировать в двух плоскостях датчик расстояния, и держать указанную позицию. Более того, я для тестов использую аналоговые сервоприводы (из-за цены), а потом предполагаю использовать цифровые. Как пишут, они более четко позиционируются и лучше удерживают позицию. Работать это все должно от сетевого БП, поэтому я пока не заморачиваюсь на потери мощности и пр. Но если дадите толковый совет, буду признателен. Тем более, что вопросы еще появятся.
Как кушает серва я давно где-то тут выкладывал. Если на словах - то внутри сервы двигатель. Он крутится когда надо спозиционировать или держать усилие на серве. Управляется он ШИМом. Коэффициент заполнения пропорционален нагрузке на серву. Соответственно потребление - меандр с высотой полки около 0,5А для микро-сервы. Отсюда и считайте какой БП нужен Насчет КРЕНок - лично мое мнение что это некрасиво, когда токи большие. Лучше через импульсный понижать