Как разделить один источник питания между arduino и сервоприводами?

Я пытаюсь запитать arduino и несколько модулей (радиочастотный приемник, два сервопривода и лазерный диод) через один источник питания.

Я получаю нервные/невосприимчивые сервоприводы, когда подключаюсь в следующей конфигурации:

  • источник питания идет к usb-пробою, соединяется с рельсами top + и -, питает все (пробовал
  • все основания идут к верхнему рельсу
  • черные/серые/белые провода, идущие с правой стороны, являются питанием/заземлением для сервоприводов
  • красные, зеленые, желтые провода, идущие с левой/верхней стороны, являются сигналами для сервоприводов/лазера
  • фиолетовый провод, идущий слева/сверху, является заземлением для лазера

circuit photo

Если я удалю оранжевый провод (usb breakout to + rail) и подключу другой источник питания к Arduino, плохая производительность исчезнет, и все будет работать хорошо.

Поскольку мой источник питания составляет 2,5 А, я сомневаюсь, что у меня недостаточно мощности для этой установки. Это наводит меня на мысль, что сторона Arduino/receiver схемы делает напряжение нестабильным, поэтому сервоприводы плохо себя ведут. Есть ли способ изолировать эти две части цепи (диод, конденсатор?), Чтобы я мог питать всю установку одним кабелем?

Компоненты:

  • Arduino pro micro (5v)
  • Приемник RF Link (WRL-10532, 434 МГц)
  • Сервопривод (ROB-09065, sub-micro)
  • Лазерный диод (5 В, 20 мА)
  • Прорыв Micro USB (1A)
  • USB Микро источник питания (5,1 В, 2,5 А)

, 👍3

Обсуждение

К сожалению, это изображение не отображается. И когда я перехожу по его ссылке, мне необходимо войти в Google. Если вы сохраните изображение на своем компьютере, а затем перетащите его в поле изображения, изображение будет загружено правильно., @chrisl

Какая именно у вас есть плата для выхода USB? Возможно, он не сможет обеспечить необходимый ток., @chrisl

Интересно-я протестировал в режиме инкогнито, и картинка все еще загружена.. думаю, происходит какое-то интересное кэширование доступа. Должно быть видно сейчас?, @mirrorcoloured

Хорошая идея-похоже, что в прорыве написано 1A (отредактировано в сообщении). Это все еще кажется достаточно высоким для этих компонентов, но, возможно, они пытаются вытянуть больше, чем это?, @mirrorcoloured

Да, теперь я могу видеть изображение. Как вы запитываете Arduino? Я не вижу провода от USB-разъема Vcc к красной направляющей (где подключен Vcc Arduino), @chrisl

Моя ошибка, закончилась неправильной фотографией. Теперь исправлено., @mirrorcoloured

Вы же не вводите +5 В USB-порт Arduino, не так ли, а затем пытаетесь подключить все через линии Arduino +5 В?, @Duncan C


2 ответа


2

Вам нужно выяснить ваши общие текущие требования. Не гадай, разберись. Что такое пиковая текущая ничья сервоприводов? из других компонентов? Сложи все. Если общая сумма находится в пределах 20% от тока питания, это может быть проблемой.

Кроме того, сервоприводы, как правило, рисуют всплески тока. Возможно, вам потребуется добавить конденсатор фильтра к рельсу +5 В на Arduino, чтобы выровнять провалы, поскольку сервоприводы вызывают провалы тока, прежде чем регулятор напряжения в вашем источнике питания сможет компенсировать это. (Поместите колпачок между +5 В и землей прямо на Arduino.)

,

Справедливый. Я прикинул 0.2 + 0.25 * 2 ≈ 0,7 пика, но я измерю, чтобы подтвердить. Я тоже не рассматривал такую большую разницу. Я также попробую конденсатор фильтра. Спасибо!, @mirrorcoloured

Чем ближе вы подходите к пределам мощности источника питания, тем больше вероятность того, что его напряжение будет "качаться" при изменении нагрузки, а нагрузки на двигатели обычно довольно "колючие"., @Duncan C


1

Я тоже нашел сервопривод управления Arduino ie UNO. Проблема в том, что Arduino использует таймер, прерывания и программное обеспечение для завершения импульса, поэтому, если процессор занят обслуживанием другого прерывания, то импульс продлевается до 10us. Современные сервоприводы, даже самые дешевые, реагируют на эту задержку как на шум.

Библиотека сервоприводов зависела от тактовой частоты и ограничивалась выводами 9 и 10 в один момент времени, хотя это могло быть исправлено в обновленных версиях. из любопытства, к каким контактам вы прикрепляете свои сервоприводы? (9 или 10?)

вы можете попробовать обновить свою версию ardunio IDE/Libraries.

другая мысль, что многие сервоприводы рассчитаны на 6В (не 5В), и хотя они будут работать, они также могут быть нервными. возможно, вам лучше использовать отдельный источник питания. Обязательно соедините основания Arduino и внешний источник питания вместе.

От Servo.h:

...
    //attach(pin )  - Присоединяет серводвигатель к штифту ввода-вывода.
    //attach(pin, min, max  ) - Прикрепление к контакту установки минимальных и максимальных значений в микросекундах
    //по умолчанию min-544, max-2400
...

#define MIN_PULSE_WIDTH       544     // самый короткий импульс, отправленный на сервопривод  
#define MAX_PULSE_WIDTH      2400     // самый длинный импульс, отправленный на сервопривод 
#define DEFAULT_PULSE_WIDTH  1500     // ширина импульса по умолчанию при подключении сервопривода
#define REFRESH_INTERVAL    20000     // minumim время обновления сервоприводов в микросекундах
...

вы можете попробовать настроить параметры min, max и default или проверить свой код на соответствие настройкам, предоставленным Servo.h.

,