Использование одной и той же батареи с двумя двигателями постоянного тока и двумя сервоприводами

У меня есть батарея 12 В, питающая два двигателя постоянного тока через Arduino и контроллер двигателя. Батарея 12 В также питает Arduino с помощью контакта VIN.

Теперь я пытаюсь подключить два серводвигателя от одного и того же Arduino. Источники питания сервоприводов соединены вместе и идут к контакту 5 В Arduino. Земли также вместе и идут к выводу заземления Arduino. Оба сервопривода имеют конденсатор 100 мкФ между плюсом и землей.

От микроконтроллера идут три заземления, одно из них — источник питания, а два других — контроллеры моторов.

Когда у меня есть все основания, идущие к контактам заземления Arduino, двигатели постоянного тока включаются примерно на 5 секунд, а затем выключаются снова и снова. Похоже, Arduino может включаться и выключаться. Но я подумал, может быть, это как-то связано с конденсаторами, мешающими двигателям постоянного тока, поскольку все они имеют общую землю? Я просто даже не знаю.

Поэтому, когда я удаляю землю, идущую от сервоприводов, от Arduino, двигатели постоянного тока работают нормально.

Можно ли использовать один и тот же источник батареи для сервоприводов и обоих двигателей постоянного тока? Кто-нибудь знает, что здесь происходит?

Ответы (2)

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

Хотя вы, возможно, захотите превратить их в 3x 10 мкФ или 2x 22 мкФ, так как конденсаторы меньшего размера, соединенные параллельно, так же хороши при пиковых токах, рисуйте меньший пусковой пик. Вы не пытаетесь ничего сгладить, поэтому очень большая емкость является избыточной, они просто помогают сервоприводу запускаться, когда он потребляет много энергии.

Вы можете добавить резистор с низким значением, например:

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

В зависимости от установившегося тока, потребляемого сервоприводами, вы можете немного изменить сопротивление, при нормальной работе на него должно приходиться не более 0,5 В, и при расчете мощности резистора учитывайте более тяжелую нагрузку. Например, если вы смоделируете его на 100 мА, вы можете сделать его 5 Ом, тогда 0,5 В будет падать на него нормально. Но если он затем остановится или ему нужно будет выполнить дополнительную работу, он может потреблять 250 мА или более. При 250 мА напряжение на резисторе станет 1,25 В. Таким образом, мощность будет 1,25 В * 0,25 А = 0,3125 Вт, поэтому вы должны выбрать резистор 0,5 Вт, чтобы оставаться в безопасности.

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

Тот же эффект предотвращает сильные импульсы питания, которые могут беспокоить Arduino, когда сервопривод запускается, он потребляет большой ток, но резистор затрудняет получение этого тока от Arduino напрямую, поэтому сначала он начнет потреблять некоторую мощность от конденсаторы, пока они не упадут до напряжения, достаточно низкого для того, чтобы резистор взял на себя источник тока.

Катушка индуктивности также была бы решением, но для ее правильного моделирования требуется больше знаний о пиках и их продолжительности, тогда как математика вокруг резистора довольно проста, поэтому я бы начал с резистора. Если это помогает, но недостаточно, вы можете добавить индуктивность всего 2,2 мкГн, но до 100 мкГн, рассчитанную на ваш ток остановки, чтобы посмотреть, поможет ли это, просто последовательно с тем же резистором или немного меньшим значением. (3,3 Ом вместо 5 Ом было бы уже более чем достаточно для уменьшения).


Вероятно, проблема в том, что вы передаете всю мощность через Arduino. Это заставляет шум как сервоприводов, так и двигателей постоянного тока проникать через плату и вызывать там всякую хрень в системе.

Лучше всего подключить сервоприводы полностью к Ардуино, так как там генерируется 5В, обратный путь лучше тоже провести через Ардуино, чтобы не делать большие петли, которые могут создать свои проблемы. Но подключите заземление двигателей постоянного тока к аккумулятору напрямую.

Грегори называет это «звездной землей», это торговый термин для соединения всех путей возврата питания в одном месте вместе, обычно как можно ближе к источнику питания. В этом случае, поскольку вы хотите, чтобы Arduino подавал 5 В, лучше не допускать сервоприводов в схему «звездного заземления».

Чтобы объяснить, почему вы хотите, чтобы двигатели были подключены к аккумулятору напрямую, вот немного болтовни и картинок:

схематический

смоделируйте эту схему

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

Поэтому, если вы пропускаете ток через систему заземления, это создаст падение напряжения на дорожках на плате, представленных четырьмя резисторами. Эта разница напряжений также будет видна внутренней схемой. На самом деле проблема может быть еще хуже, потому что есть не только сопротивление, но и индуктивность, которая сделает падение напряжения средне-высокочастотного шума намного хуже, чем просто сопротивление.

Таким образом, если вы сейчас подключите дополнительный 1 А для двигателей постоянного тока через эту дорожку, это поднимет напряжение земли в разной степени по всем направлениям. Это означает, что внутренние устройства будут иметь разные напряжения питания относительно их контакта с землей. Как я нарисовал, повышение напряжения не будет слишком большим при постоянном токе 1 А, но возможно, что эти символические резисторы больше.

Что действительно происходит, так это то, что двигатели постоянного тока создают всплески и шум, потому что их щетки постоянно соединяют и разъединяют катушки, эти пульсации напряжения с одной стороны подключены непосредственно к батарее, которая, по-видимому, имеет достаточную мощность, чтобы поддерживать эту сторону на постоянном уровне. достаточно стабильное 12В. Итак, куда идут эти волны? Ах! Привет! Там есть заземляющая дорожка, которая имеет гораздо большее сопротивление (и индуктивность, как упоминалось ранее), чем провода между аккумулятором и двигателем: Тада, вот куда они идут. Большая часть пульсаций 50 Гц ~ 500 Гц (или выше, в зависимости от количества катушек и скорости вращения) от ваших двигателей постоянного тока попадает в систему заземления Arduino: Плохо!

Теперь вы можете добавить фильтрацию, всевозможные изящные схемы, но лучше всего применять следующее правило: все, что питается от Arduino, также возвращается на землю Arduino, и если это вызывает проблемы, вы добавляете сопротивления, емкости и/или индуктивности для фильтрации. из худшего из этого. Все, что работает с напряжением, не созданным на Arduino, особенно с более высоким напряжением, не имеет пути заземления внутри Arduino.

И не перегружайте 5V Arduino. Если ваши сервоприводы потребляют от 100 мА до 200 мА, я готов поспорить, что регулятору вашего Arduino это не нравится, лучше всего просто купить LM7805 и небольшой радиатор и питать их отдельно. Но там вы все равно захотите, чтобы земля сервопривода соединилась обратно с Arduino, или ваш ШИМ-сигнал, управляющий ими, должен будет пройти через обручи (буквально), чтобы получить обратный путь. Это немного раздражает, если вы не хотите углубляться в электронику с самого начала, но меньшие рабочие токи и тот факт, что они внутренне фильтруются, должны помочь, так что это не должно быть большой проблемой.

Примечание:

Я знаю, что упростил и срезал некоторые углы, но он должен оставаться как можно более простым, видя вопрос и пытливые комментарии в другом месте.

Если вы видите ошибку или ошибку, пожалуйста, сообщите.

Спасибо! Вы, безусловно, открыли двери для новых вещей, которые мне нужно изучить. Я попробую это через мгновение и дам вам знать, если сработает, но первый вопрос, почему резистор 1 Ом для сервоприводов и не помешает ли просто оставить конденсаторы 100 мкФ, которые я использую сейчас? Я бы предпочел не отпаивать и попробовать еще раз, вроде все в порядке. Стартовый комплект Arduino научил меня этому.
@MichaelRader В большинстве случаев достаточно одной 100 мкФ. Резистор объясняется в посте: если вы поместите его, он ограничит количество провалов с высоким стоком, которые вы получаете на основном VCC Arduino, и он также автоматически защитит от серьезных проблем, когда один глохнет. Это все еще может быть небольшой проблемой, но не огромной :-D.
Я вернул землю обратно на землю батареи вместо Arduino, но проблема осталась. Двигатели постоянного тока включаются и выключаются. Зеленый свет не он Arduino загорается, а затем гаснет снова и снова, независимо от того, где я бегу по территории.
@MichaelRader Следующий шаг — проверить питание сервоприводов извне. Возможно, вы слишком много требуете от внутреннего регулятора напряжения Arduino. У меня нет подробностей о сервоприводах, которые вы используете, поэтому, если это не обратная связь с землей, это может быть перерасход 5 В. Попробуйте с внешним адаптером, блоком питания или с отдельной микросхемой 7805. Однако следите за нагревом чипа, если вы не устанавливаете его на что-либо с помощью термопасты.
@MichaelRader Не стесняйтесь, дайте мне знать, если это не сработает. Может быть, в прямом сообщении, если это интересно для всей проблемы, мы оба можем соответствующим образом отредактировать наши сообщения, сохраняя цепочку комментариев немного обрезанной.
@Asmldof Я не совсем понимаю, почему, но сейчас это работает. Если бы я узнал, что один из моих контактов Arduino был неисправен. Может быть, он начал работать после того, как я использовал новый штифт? Действительно не уверен. Спасибо хоть.

Это возможно, но требует тщательного проектирования заземления и питания. Использование достаточной мощности на каждом драйвере.

Начните со звездного соединения питания и земли с центром на аккумуляторе. Никаких подключений gbd или 9ower в любой другой точке. Убедитесь, что провода достаточно толстые.

Ваша самая большая проблема будет иметь дело с текущими импульсами. Таким образом, вы должны обойти устройство rach с достаточно большим конденсатором, в идеале с входным фильтром.

Также вы должны убедиться, что ваша батарея может обеспечить ток, достаточный для всех нагрузок вместе взятых. Предположим, что импульсы принимаются конденсаторами, поэтому просто суммируйте все постоянные токи.

Удачи, держите нас в курсе.

Мне жаль, что совсем не помогло. Я даже не понимаю, что ты говоришь. "Начать со звездным соединением" ? "Нет gbd или 9ower"?
Да GND и питание, но подключены каждый в одну точку на аккумуляторе. И снова смотрите, чтобы у вас было достаточно шапочек для импульсов тока и чтобы батарея могла обеспечить общий постоянный ток