питание микроконтроллера - минимизация шума

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

Вместо всей платы Arduino (UNO) (на самом деле это совсем небольшой квадрокоптер, а плата для него слишком велика) я собираюсь использовать только микроконтроллер ATMEGA328. Я настроил его на макетной плате, следуя этому руководству на сайте Arduino, и он отлично работает ... если я не использую свои 4 двигателя одновременно (но, конечно, для запуска квадрокоптера мне нужно, чтобы они работали вместе).

Мой квадрокоптер питается от одноэлементной батареи LiPo (3,7 В; 600 мАч; 2,22 Втч): уникальная батарея для 4 коллекторных двигателей, микроконтроллера и некоторых датчиков. Если я подключаю ATmega328 напрямую к аккумулятору, как и моторы, он иногда выходит из строя и сбрасывается, например, из-за каких-то скачков тока, слишком больших для аккумулятора, при запуске моторов.


Итак, мой вопрос: могу ли я настроить «стабильную» схему с минимальным шумом, чтобы запускать Arduino и датчики, во-первых, без риска отказа в случае скачков тока в цепи двигателя, а во-вторых, чтобы получить лучшие результаты АЦП и т.д.? Как мне это сделать?

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

Ответы (2)

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

Цепь питания микроконтроллера должна отключаться от липо-батареи параллельно с питанием ротора, а также использовать последовательную катушку индуктивности и конденсаторы разумного размера для каждого размера (100 мкФ-1000 мкФ).

Кроме того, если вы используете Atmega328 на частоте 16 МГц, у вас будут сбои при таком низком напряжении VCC. убедитесь, что вы используете его на более низкой тактовой частоте, или получите повышающий преобразователь 1-cell lipo в 5V (который, кстати, очень поможет с развязкой, в то же время), чтобы запустить микроконтроллер и любые датчики.

Вы должны дополнительно развязать AVCC ATMEGA328 (аналоговое напряжение питания), используя ферритовую шайбу или другую маленькую катушку индуктивности последовательно от VCC к AVCC с соответствующими конденсаторами малой емкости, разбросанными повсюду. VREF может быть внутренним эталоном ширины запрещенной зоны, или вы можете подключить VREF к AVCC и выбрать использование внешнего VREF для АЦП.

Спасибо за полезный ответ! Не могли бы вы сказать мне, что
извините, я отправил свой комментарий, не закончив его. Не могли бы вы сказать мне, какое значение конденсатора я должен использовать для развязки avcc?
@noearchimede, пожалуйста, прочитайте этот документ AVR042 — рекомендации по проектированию оборудования, страницы 4 и 5, и этот AVR040 — рекомендации по проектированию ЭМС, страницы 9,10,11. Они не упоминают никаких цифр, кроме 100nf. Используйте небольшую последовательную катушку индуктивности + конденсатор 100 нФ, чтобы развязать напряжение батареи с VCC. затем после этого от VCC до AVCC+AREF сделать еще одну последовательную катушку индуктивности + конденсатор 100 нФ. AREF должен иметь дополнительное ограничение в 100 нф, как это предлагается в примечании к приложению.

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

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