Питание микроконтроллера и линейных приводов (двигателей) с одинаковым источником питания

Я уже сделал схему с помощью контроллера двигателя.

Детали приводов:

  • Входное напряжение: 12 В постоянного тока
  • Максимальная нагрузка: 750 Н (168,607 фунтов)
  • Длина хода: 16 дюймов
  • Скорость перемещения: 12 мм/с
  • Рабочий цикл: 25%.

Не могли бы вы проверить, все ли в порядке?

Вот некоторые из моих опасений:

  • Убедитесь, что питание 12 вольт для двигателей и 5 вольт для Arduino правильное и может работать вместе, как показано.

  • Убедитесь, что проводка для Arduino, драйвера и двигателей правильная, так как она выглядит довольно простой.

Диаграмма 1введите описание изображения здесь

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

Ссылка на техническое описание MDD10: https://www.robotshop.com/media/files/content/c/cyt/pdf/cytron-10a-7-30v-dual-channel-dc-motor-driver-shield-datasheet.pdf

ОБНОВЛЯТЬ

Я увеличил блок питания до 13А, также заменил линейный стабилизатор напряжения (7805) на импульсный стабилизатор напряжения (OKI-78SR-5), что вы думаете о таком подходе?

Диаграмма2введите описание изображения здесь

Или я должен попробовать с 12V DC Vin Arduino (я понимаю, что он работает с линейным регулятором напряжения)? В этом варианте он может быть со ступенью предварительной регулировки напряжения (например, от 12 В до 9 В) или может быть подключен непосредственно к разъему.

Diagram3 введите описание изображения здесьСпасибо, с уважением.

Добавляю четвертую диаграмму..

Диаграмма4введите описание изображения здесь

Оранжевый цвет используется для обозначения толстого провода, который идет от источника питания 12 В к земле драйвера двигателя, от земли драйвера двигателя идет обычный кабель к земле Arduino, а от земли Arduino обычный кабель к земле. C2, затем на землю регулятора напряжения, затем на C1.

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

Вам нужны конденсаторы на стабилизаторе. См. техническое описание. А МДД10?
@LeonHeller, MDD10 - это номер детали драйвера двигателя. Я отредактировал (удалил) эту часть, чтобы избежать путаницы и сосредоточиться на подаче схемы, спасибо.
Arduino UNO имеет свой собственный регулятор лучше, чем ваша попытка, вы не должны внешне регулировать до 5 В и подавать его на то, что должно быть выходной мощностью , а скорее подавать на вывод Vin. Если вы хотите распределить тепловую нагрузку, вы, возможно, могли бы отрегулировать внешнее напряжение до 8 В или 9 В.
Что касается вашего вопроса - помимо этого, это может сработать, но никто не может точно сказать, учитывая, как мало деталей предоставлено. Вопросы проверки проекта, особенно те, которые не подчеркивают конкретную проблему и не предоставляют подтверждающую документацию, здесь не приветствуются.
ваши потребности в слабом токе должны подключаться непосредственно к аккумулятору; совместное использование любой проводки (примерно 1 мкГн/метр) с высокими требованиями к двигателю ----- очень плохая идея. Почему? V = L * dI/dT и 1 мкГн * 1 ампер/мкс = 1 вольт высокоскоростного сигнала, который линейные регуляторы не могут убрать; только фильтры LC или RC могут сделать это удаление.
посмотрите на это для идей: electronics.stackexchange.com/questions/456825/…
@ChrisStratton, тогда я могу напрямую подключить источник питания 12 В 10 А к разъему питания постоянного тока Arduino (7–12 В)? Таким образом, я могу использовать источник питания 12 В для Arduino и двигателей?
@analogsystemsrf, спасибо, проверю.
@punkcode - этот конкретный фильтр действительно предназначен для другой цели и обычно не встречается в таких проектах, как вы. Человек, который указал вам на это, имеет давнюю тенденцию публиковать вещи, которые не то чтобы неверны, но не очень важны и полны сложностей, которые заставляют их выглядеть сложными, скрывая при этом их неуместность. Тем не менее, без подробностей о ваших приводах никто не сможет дать вам дельный совет. Тенденция недоопределенных вопросов вызывать неуместные ответы является основной причиной того, почему здесь не разрешены нечеткие вопросы.
Детали привода: Входное напряжение: 12 В постоянного тока, максимальная нагрузка: 750 Н (168,607 фунтов), длина хода: 16 дюймов, скорость перемещения: 12 мм/с, рабочий цикл: 25%. Добавлю эту информацию в пост. Спасибо

Ответы (2)

Я предлагаю вам использовать линейный стабилизатор 9 В в качестве «предварительного регулятора» для питания Arduino через контакт Vin или входное гнездо постоянного тока. Таким образом, любой шум в источнике питания 12 В должен пройти две стадии регулирования, прежде чем он сможет повлиять на Arduino.

Входной разъем постоянного тока Arduino Uno имеет последовательно включенный диод для защиты от обратного напряжения. Это имеет то преимущество, что входная мощность может мгновенно упасть до нуля без разрядки входного конденсатора. Та же техника может быть использована на предварительном регуляторе. Схема будет выглядеть так: -

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

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

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

Привет @Bruce, я понял, что это то же самое или даже лучше подключить его напрямую к 12-вольтовому разъему Arduino, чем использовать предварительный регулятор ручной работы, показанный на схеме. Так может быть мой вариант использовать разъем 12 В Arduino напрямую для источника питания 12 В / 10 А?
Да, вы могли бы это сделать.
Привет @Брюс Эбботт. Я обновил свой вопрос, потому что изменил схему, добавив импульсный регулятор вместо линейного регулятора. Я также добавил упомянутую вами опцию предварительной регулировки до 9 В и подключения к Arduino Vin. Не могли бы вы проверить это, скажите мне, правильно ли и какой вариант вы считаете лучше, спасибо
Нижняя цепь выглядит лучше всего. Использование предварительного регулятора (линейного или импульсного) последовательно со встроенным регулятором Arduino обеспечивает лучшую защиту от скачков напряжения и провалов напряжения питания. Кроме того, напряжение распределяется между регуляторами, поэтому они работают холоднее (важно, если вы потребляете значительный ток от Arduino).
Спасибо, Брюс. Я немного не понимаю эту часть: «Заземление регулятора напряжения должно быть подключено непосредственно к земле Arduino, затем к земле драйвера двигателя, а другой толстый провод идет от источника питания к земле драйвера двигателя». Отличается ли проводка на моей нижней схеме от этой? Ваше здоровье.
Принципиальная схема обычно показывает только соединения, а не физическую проводку. На практике то, как проводка проложена от одного компонента к другому, может иметь значение из-за сопротивления и индуктивности проводов. Ток двигателя вызовет падение напряжения на проводах, по которым он проходит. Вы не хотите, чтобы это напряжение появилось между, например. заземление регулятора и заземление Arduino, так как это может вызвать шум в Arduino. Вы также хотите, чтобы провода, по которым протекает ток двигателя, имели большой диаметр, чтобы поддерживать низкое падение напряжения. Другие провода могут быть тоньше, если они пропускают меньший ток.
Добрый день, Брюс, отлично! Я так понимаю соединения на схеме в порядке? Однако в физическом нам нужно убедиться в способе их подключения и типе проводки, поскольку это играет их роль. Тем не менее, мне все еще не ясно физическое соединение, которое вы мне указываете, я думаю, что мои сомнения возникают, когда вы упоминаете, что с земли ардуино она должна идти на землю драйвера двигателя, но в то же время вы упомянули, что от земли блока питания к земле драйвера двигателя будет идти толстый кабель (чувствую, что проводка дублируется). Ваше здоровье,
Начиная с блока питания: толстый кабель к земле контроллера мотора, затем более легкий провод к Arduino, регулятору и конденсаторам. «Общая» точка заземления находится на контроллере мотора. Чтобы показать это расположение на схеме, поместите батарею с правой стороны и сделайте линии проводов батареи более толстыми.
Привет, Брюс, я обновил сообщение и добавил Diagram4. Я попытался изобразить физическую связь. От источника питания 12 В толстый провод к земле драйвера двигателя, затем обычный кабель к земле Arduino, от земли arduino обычный кабель к C2, от C2 обычный кабель к земле регулятора и от земли регулятора обычный кабель к C1 . Это кажется правильным? Спасибо ! Добрый день.
Да это оно!
Спасибо :) Должен ли я также использовать толстый кабель, идущий от плюса источника питания (+12 В) к плюсу драйвера двигателя (VB+)?
Рекомендуется, чтобы уменьшить потери напряжения и предотвратить слишком сильный нагрев проводки. Я бы использовал провод одинакового диаметра как для положительного, так и для отрицательного вывода.
Привет, Брюс, я проверял защитный экран двигателя для Arduino и столкнулся со следующим: «SHIELD-MDD10 имеет встроенный понижающий стабилизатор на 5 В для питания Arduino по умолчанию. Если вы хотите запитать Arduino от другого источник, перережьте дорожку, чтобы отсоединить регулятор от контакта Arduino 5V». Учитывая это, я интерпретирую, что могу питать Arduino напрямую от драйвера, и мне больше не нужна внешняя схема, которую я разрабатывал для питания Arduino Vin. Как вы думаете?, С уважением.
Да, вы можете питать Arduino от этого шилда. Если бы мы только знали!

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

Давайте посмотрим на наши требования

  • Максимальный ток Uno = 20 мА при максимальной тактовой частоте (всегда добавляйте подушку, если можете! ATMEGA_Datasheet
  • Напряжение питания 5 В (согласно техническому описанию)
  • Источник питания VCC с фильтрацией нижних частот для AVCC (это означает, что для этого требуется более низкое напряжение пульсаций)

Итак, теперь, когда мы понимаем наши требования, мы можем работать в обратном направлении.

ПЕРВОЕ запомните:

Линейный регулятор (LDO)

Плюсы:

Простой, надежный, с низким уровнем пульсаций

Минусы:

Неэффективно, может нагреваться (Vin-Vout) * ток нагрузки = мощность (это число быстро становится большим).

Переключатель

Плюсы:

Эффективная, намного лучшая переходная характеристика нагрузки

Минусы:

Может быть сложным, большее количество деталей

Хорошо, теперь, когда это понятно, давайте посмотрим на вашу систему.

12 В -> Переключатель (5 В) -> Uno

  1. Вы хотите сгладить выход этого преобразователя, поэтому вам нужно будет добавить некоторую емкость как на входе, так и на выходе. Сколько? Посмотрите Здесь я лично рекомендую Керамику. Не расстраивайтесь из-за математики! Просто проложите себе путь через это. Ты можешь это сделать. Примечание TI APP отлично помогает вам во всем.
  2. Теперь, если вы питаете Uno Dev Card, я бы рекомендовал снизить напряжение до 9 В. Это повторяет точку зрения всех остальных на использование того, что уже предоставлено вам. Не нужно делать больше работы, чем необходимо! ЕСЛИ вы питаете чип ATMEGA напрямую, 5 В должно быть в порядке. Просто следите за пульсациями напряжения.
  3. Что касается линейного регулятора. Этот подход действительно был бы «самым чистым/простым» , НО давайте не будем забывать, как работают линейные регуляторы! (12В-5В) 0,02А = 140мВт. (Спасибо, Крис)* Теперь давайте повысим температуру. 140 мВт * 65 Кл/Вт = повышение температуры на 9,1 градуса, в данном случае не страшно, но, как вы можете видеть, если ваш ток увеличивается, вы можете очень быстро нагреться. Обратите внимание, что 65C/W является соединением с окружением этого LDO.

Наконец, двигатели ЧРЕЗВЫЧАЙНО шумные. Лично я бы не хотел подключать двигатели к той же земле, что и ваш Arduino. Я бы поместил бусину Ferite или, по крайней мере, резистор между заземлением Arduino и заземлением двигателя. Особенно, если чип Motor drive и Uno используют одну и ту же печатную плату. Ответ Брюса также упоминает об этом.

«Лично я бы не хотел подключать двигатели к той же земле, что и ваш Arduino». Я вижу эту часть, значит, моя последняя диаграмма (диаграмма 3) плохо связана? Что мне нужно изменить?
Что ж, извините @punkcode, я не смог профинансировать полную схему MDD10, однако я поднимаю эту проблему как опасную из-за общих рекомендаций по проектированию. Каждый раз, когда я разрабатываю печатную плату с источником питания, идущим на микросхему и двигатель, я всегда стараюсь изолировать «шумную землю двигателя» от аналоговой земли. Я бы порекомендовал для этой установки, чтобы вы, по крайней мере, установили резистор на 1 Ом или ферритовую бусину между землей микросхемы и землей шины, если она находится на печатной плате. Если это не так, я рекомендую вам последовать совету Брюса Эбботса.