Запускаю шаговые двигатели с A4988 и мог закоротить Uno при проверке напряжения мультиметром. Неисправна ли моя схема?

Что произошло

Я работаю над проектом по управлению двумя перистальтическими насосами от Uno. В предыдущей версии использовались двигатели постоянного тока и микросхемы L298N, но я пытаюсь модернизировать её, используя шаговые двигатели и микросхемы A4988. Раньше я не использовал эти контроллеры двигателей, поэтому использовал беспаечную макетную плату, следуя нескольким базовым руководствам, и смог добиться желаемого результата. Arduino при этом питался через гнездо типа «цилиндр» от источника 12 В/3 А; вывод VMOT был подключён к выводу Vin, а вывод VDD — к выводу 5 В. Я проверил выводы мультиметром, все напряжения были в норме, а ограничители тока были установлены на 1 А. Насос некоторое время проработал без проблем.

После этого я нарисовал схему, как разместить всё это на меньшей макетной плате, и спаял всё вместе.

Циферблатная диаграмма

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

Вопрос

Я знаю, что многие люди/примеры (например, этот и этот) рекомендуют подключать конденсатор ёмкостью 100 мкФ к выводам VMOT и GND микросхемы A4988 как можно ближе к входам, чтобы сгладить скачки напряжения. Однако все они используют отдельный источник питания, отличный от того, который используется для питания Arduino. Прежде чем просто заменить сгоревшую плату (у меня есть несколько Nano и Mega, которые тоже могут подойти, если перепаять проводку или использовать внешний стабилизатор напряжения), я хочу исключить вероятность того, что причина сгоревшей платы — способ питания, чтобы сразу не испортить ещё одну плату. Плохая ли практика — использовать встроенный стабилизатор напряжения таким образом? Использовать V1 для питания двигателей и 5 В для управления логикой?

Как или почему?

(Всё это последующее — дополнительный и на самом деле второстепенный вопрос/любопытство)

Есть ли способ спасти плату или выяснить, что именно пошло не так? Плата по-прежнему может питаться от USB или разъёма Barrel Jack, но COM-порт не отображается при подключении к ноутбуку для загрузки нового скетча. Я разбирал этот ответ, чтобы попытаться понять, что именно сгорело.

  • При питании как через USB, так и через разъём типа «барашек» (12 В/0,5 А) светодиод «ON» загорается, а мультиметр показывает правильное напряжение Vin/3V3. Напряжение 5 В при питании через USB отображается правильно, но при питании через разъём типа «барашек» на выходе фактически выдаёт около 9 В. Однако при обоих способах питания платы разница в напряжении регулятора составляет 5 В. С этого момента при устранении неполадок я использовал только USB для питания.
  • Светодиод включения питания не мигает при первом подключении или нажатии кнопки сброса, а индикаторы TX/RX вообще не светятся. Этот вопрос указывает на возможные проблемы с загрузчиком или повреждение микросхемы главного процессора.
  • При использовании платы Mega 2560 для записи загрузчика на Uno процесс «Burn Bootloader» завершается ошибкой:

avrdude: Подпись устройства = 0x000000 avrdude: Ой! Недопустимое устройство подпись. Дважды проверьте соединения и повторите попытку или используйте -F для переопределения эта проверка.

avrdude, сделано. Спасибо.

Не удалось стереть чип: ошибка загрузки: код выхода 1

  • Сигнатура устройства 0x000000, похоже, является сообщением по умолчанию, указывающим на то, что плата на самом деле не подключена, что вполне логично, поскольку мой компьютер не смог определить, что она подключена через USB.
  • Возможно, дело в повреждённом Atmega328P. Если бы у меня был другой Uno, я бы попробовал поменять местами эти микросхемы с исправной и неисправной платы, чтобы посмотреть, решит ли это проблему. Если да, то я бы просто купил новый Atmega, а не выбрасывал всю плату.

Но я потратил больше времени, чем оно того стоило, пытаясь спасти плату, отсюда и главный вопрос, заданный ранее. Перефразируя: нужно ли использовать внешний стабилизатор напряжения для вторичного питания, чтобы обеспечить 5 В для Arduino и 12 В для A4988, или достаточно просто подать 12 В на плату и подать Vin на контроллеры двигателей?

, 👍0

Обсуждение

Ваш вопрос в конце показывает, что, возможно, вы ничему не научились из своего опыта., @jsotola

@jsotola Ну, в старой конфигурации, о которой я упоминал, с использованием L298N и двигателей постоянного тока я месяцами подавал 12-вольтовое питание через Uno и подавал Vin на контроллеры двигателей, и проблем не было. Мой опыт подсказывает, что это нормально, но я не смог найти информации, которая бы говорила ни в коем случае этого не делать, поэтому и спросил., @Vera


1 ответ


Лучший ответ:

0

«Плохая ли практика использовать встроенный регулятор напряжения таким образом? Используя Vin для запуска двигателей и 5 В для управления логикой?»

Между разъёмом питания и Vin на Uno установлен диод M7, предотвращающий обратную подачу напряжения Vin на разъём питания. Если вы используете Vin для отвода питания, поступающего на разъём, оно проходит через этот диод. См. схему (D1) https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf. Этот диод рассчитан на ток всего 1 А, и нагрузки, такие как двигатели, особенно при запуске, могут его перегружать. Кремниевый диод имеет номинальное падение напряжения 0,7 В, что, например, должно рассеивать 1,4 Вт в виде тепла при нагрузке 2 А. Поэтому при больших нагрузках не используйте Vin в качестве выходного сигнала.

Чтобы рассчитать тепло, рассеиваемое линейным регулятором напряжения Arduino, нужно умножить падение напряжения (в вашем случае 12 В - 5 В = 7 В) на ток, потребляемый нагрузкой, скажем, 1 А, что даёт 7 Вт. Рекомендуется питать большие нагрузки отдельно, используя источник питания подходящего размера. Понижающие преобразователи предпочтительнее линейных регуляторов напряжения. Небольшие нагрузки, порядка 100 мА или меньше, для логических схем и т.д., должны работать нормально, даже если Arduino питается от 12 вольт.

,

Итак, в качестве дополнения: вместо того, чтобы подключать внешнее питание через Arduino и снимать напряжение с Vin и 5 В, я подаю 12 В через Vin параллельно двум выводам VMOT. Таким образом, ток для контроллеров двигателей не будет проходить через Arduino, но я всё равно смогу использовать встроенный стабилизатор напряжения для получения необходимых 5 В для логики. Я стараюсь избегать приобретения дополнительных компонентов, таких как отдельный стабилизатор/преобразователь, поскольку мой бюджет ограничен., @Vera

@Vera использование Arduino в качестве предохранителя — не способ экономии денег., @jsotola

@jsotola Можете объяснить, что вы имеете в виду? Я нашёл этот ответ на похожий вопрос, который говорит об обратном., @Vera

@Vera предохранитель перегорает, когда через него протекает слишком большой ток... Arduino ведет себя так же., @jsotola

@Vera, 12 вольт на разъёме (или Vin) достаточно для стандартного Uno: https://store.arduino.cc/products/arduino-uno-rev3. Важно только, чтобы подключённые периферийные устройства не потребляли слишком много тока, иначе регулятор перегреется. Если вы отведёте 12 вольт с разъёма на Vin, они пройдут через диод (в данном случае D1): https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf. Ваши двигатели могут испытывать нагрузку. Кремниевый диод имеет номинальное падение напряжения 0,7 вольта, поэтому 2 ампера будут соответствовать 1,4 Вт., @6v6gt

@6v6gt Понял, судя по документации на драйверы, логические входы потребляют максимум несколько мА, и я в будущем добавлю несколько светодиодов для индикации состояния, так что периферийные устройства, подключенные через плату, должны нормально работать со встроенным регулятором. Спасибо за помощь!, @Vera