Меню

Arduino использование внешнего питания



Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Как правильно организовать питание Arduino

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

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

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

Многие платы Arduino используют микроконтроллер ATmega328P. ATmega328 от Microchip имеет широкий диапазон допустимых напряжений Vcc. (Vcc – это стабилизируемое напряжение питания постоянного тока, необходимое для работы микросхемы, и его часто называют напряжением питания для интегральных схем.) Чаще всего платы Arduino предназначены для работы либо с логикой уровня 3,3 В для обеспечения низкого энергопотребления, либо с логикой 5 В для того, чтобы быть совместимыми с устаревшими логическими устройствами ТТЛ. Приведенные ниже примеры относятся к устройствам 3,3 В постоянного тока, где соображения относительно потребления источника питания являются более важными. Тем не менее, те же принципы применяются к устройствам с 5 В. Вот технические характеристики классических плат Arduino с официального сайта.

Возьмем в качестве примера Arduino Pro Mini. Максимальное потребление тока такой платы Arduino составляет 200 мА. Маловероятно, что сам Arduino будет потреблять 200 мА, но давайте предположим, что между Arduino и другими подключенными к нему устройствами они потребляют всего 200 мА. Спецификация ATmega328p показывает, что минимальное напряжение логического высокого уровня на выводе составляет 90% от Vcc. Таким образом, если Vcc составляет 3,3, минимальное напряжение на выводе, которое будет считаться логически высоким, составляет 0,9 * 3,3 В = 2,97 В. Любое значение, видимое на цифровом выводе ниже 2,97 В, находится в неопределенном диапазоне и приведет к непредсказуемым результатам от Arduino.

Всегда есть некоторое расстояние между источником питания и Arduino. Чем больше расстояние, тем больше потери напряжения на проводке блока питания. Но каковы эти потери? Так как провод 26 AWG является обычным выбором для организации проводки с низким энергопотреблением, будем рассматривать его. В нем меньше меди, это означает более низкую стоимость. Многожильный 26 AWG является хорошим выбором благодаря гибкости прокладки проводов. 26 AWG достаточно большой, так что он рассчитан на нагрузку 2,2 А, что более чем в десять раз превышает потребляемый ток 200 мА, который мы указали для максимального тока Arduino. Источник питания 3,3 В постоянного тока и провода 26 AWG кажутся отличным выбором, но давайте рассмотрим подробнее.

Провод 26 AWG имеет сопротивление 40,81 Ом на 1000 футов (300 метров) или 40,81 МОм на фут (0,3 м). При 200 мА, протекающей по проводам источника питания, у нас будет падение напряжения на проводе, как показано ниже. Имейте в виду, что нам нужно проложить провод от источника питания к Arduino, а затем снова вернуться к заземлению источника питания. Мы видим, что на десяти футах мы потеряли 5 процентов от нашего постоянного напряжения 3,3. На 20 футах мы потеряли почти 10 процентов. Это действие уменьшает напряжение, подаваемое на Arduino, до 4,5 В; нижний предел нашего гарантированного максимального логического высокого уровня.

Двадцать футов (6 метров) кажется разумным расстоянием для большинства применений. Однако мы рассмотрели только сопротивление самого провода к этому моменту.

Контактное сопротивление при этом часто не учитывается и даже не понимается. Сопротивление провода 26 AWG составляет 40,81 Ом на 300 метров в зависимости от диаметра поперечного сечения провода. Тем не менее, в каждой точке проводки, где мы разместили соединение, мы создали точку, в которой поперечное сечение пути тока уменьшается и поэтому имеет более высокую точку сопротивления.

Сопряжение круглого разъема приведет к тому, что штифт вывода будет контактировать со стволом только в тангенциальной точке. Лезвеобразные соединители обеспечивают одинаковую уменьшенную площадь по всей поверхности. Даже винтовой зажим не может соответствовать сопротивлению поперечного сечения самого провода. Учтите, что любое оконечное устройство подвержено окислению с течением времени и имеет в таком состоянии повышенное сопротивление. Каждая из этих точек может легко иметь контактное сопротивление 40 мОм. Вот так, каждая точка подключения может добавить эквивалентное сопротивление 300 метров провода 26 AWG. При наличии двух подключений к Arduino и двух подключений к источнику питания, любая система будет иметь минимум 4 точки завершения. Теперь у нас потеря напряжения на 5 процентов на 2,5 метрах (8 футах) и 10 процентов на 5,5 метрах (18 футах) между Arduino и его источником питания.

Следовательно, при стандартной схеме подключения источника питания мы теряем пять процентов напряжения источника 3,3 В между источником питания и Arduino на 2,5 метрах и 10% на 5,5 метрах. Проще говоря, если бы мы использовали регулируемый источник питания постоянного тока, мы могли бы увеличить напряжение, чтобы компенсировать потери в линии и сопротивление контакта. Однако источники питания дороги и занимают много места. Как правило, во встраиваемых системах разработчики пытаются использовать общий источник питания для нескольких контроллеров. Если один контроллер находится на расстоянии 0,3 метров от источника питания, а последний – на расстоянии 6 метров от источника питания, разработчик должен выполнить точную балансировку, чтобы каждый контроллер находился в нужном диапазоне.

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

Первое – питание USB. USB-кабель обычно используется для программирования Arduino через интегрированную среду разработки Arduino IDE. Кабель USB не только обеспечивает диагностику через последовательный монитор IDE, но также обеспечивает питание 5 В постоянного тока для Arduino через вывод Vcc USB. Питание 5 В USB используется для непосредственного питания 5 В Arduino, или оно отключается, если это Arduino 3,3 Вольт.

Второе – питание 5 В или 3,3 В. Разработчик может подать соответствующее напряжение на выводы питания 5 В или 3,3 В Arduino. Эти контакты привязаны непосредственно к контактам питания микроконтроллера на плате Arduino. Однако подача питания на эти контакты приведет к тому, что микроконтроллер Arduino будет восприимчив к потере линии и потере сопротивления контактов от источника питания, упомянутых ранее.

Читайте также:  Завод по розливу напитков питание от аварийного генератора

Третье – Vin или Raw. Arduino может иметь надпись «Vin» или «RAW» в зависимости от используемого варианта Arduino. Распространенной ошибкой является подача на этот вывод напряжения источника питания 5 В или 3,3 В. Проблема с этим заключается в том, что вы не только обеспечили трудности с упомянутыми ранее потерей линии и сопротивлением контактов, но и что этот вывод является входом для встроенной схемы регулирования. Как и в случае любого стабилизатора напряжения, вам нужно подавать немного больше напряжения на устройство, чем вы ожидаете получить от него. Если мы подадим 3,3 В на Vin, мы потеряем около 0,5 вольт через стабилизатор. Это означает, что микропроцессор и подключенные периферийные устройства в лучшем случае будут работать только на 2,8 В. В сочетании с нашими потерями в линии и снижением сопротивления контактов мы будем работать намного ниже необходимого уровня напряжения.

Несмотря на описанную выше проблему, использование выводов VIN или RAW является решением проблемы потери напряжения источника. На плате Arduino контакты VIN или RAW являются входом регулятора напряжения на плате Arduino. Все, что нам нужно сделать, это подать напряжение в указанном диапазоне, чтобы получить желаемый регулируемый выход на Arduino. Напряжение питания от 6 до 12 В, подаваемое на Vin или RAW, будет питать микроконтроллер Arduino, преодолевать любую потерю напряжения на линии или контактном сопротивлении и обеспечивать выходное напряжение на выводы 5 В и 3,3 В Arduino для питания периферийных компонентов. Диапазон входного напряжения Arduino основан на требованиях к напряжению на всей плате, включая энергию, необходимую для микроконтроллера для питания периферийных устройств.

Готовые источники питания в диапазоне от 7 до 12 В постоянного тока не так распространены, как источники питания 3,3 В или 5 В постоянного тока, но они доступны. Соблазнительно использовать более распространенные источники питания 5 В и 3,3 В постоянного тока для плат Arduino, но из-за представленных выше фактов необходимо использовать менее распространенные альтернативы для лучшего стабилизирования напряжения и лучшей производительности микроконтроллера.

Источник

Arduino Uno: инструкция, примеры использования и документация

Arduino Uno — флагманская платформа для разработки на языке программирования С++.

Arduino Uno выполнена на микроконтроллере ATmega328P с тактовой частотой 16 МГц. На плате предусмотрены 20 портов входа-выхода для подключения внешних устройств, например плат расширения или датчиков.

Видеообзор

Подключение и настройка

Шаг 1

Подключите плату к компьютеру по USB. Для коммуникации используйте кабель USB (A — B).

Шаг 2

Что-то пошло не так?

Пример работы

В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод L , подключенный к 13 пину микроконтроллера.

После загрузки программы встроенный светодиод L начнёт мигать раз в секунду.

Это значит всё получилось и можно смело переходить к другим экспериментам на Arduino.

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Arduino Uno является 8-битный микроконтроллер фирмы Microchip — ATmega328P на архитектуре AVR с тактовой частотой 16 МГц. Контроллер обладает тремя видами памяти:

Микроконтроллер ATmega16U2

Микроконтроллер ATmega328P не содержит USB интерфейса, поэтому для прошивки и коммуникации с ПК на плате присутствует дополнительный микроконтроллер ATmega16U2 с прошивкой USB-UART преобразователя. При подключении к ПК Arduino Uno определяется как виртуальный COM-порт.

Микроконтроллер ATmega328P общается с ПК через сопроцессор ATmega16U2 по интерфейсу UART используя сигналы RX и TX , которые параллельно выведены на контакты 0 и 1 платы Arduino Uno. Во время прошивки и отладки программы, не используйте эти пины в своём проекте.

Светодиодная индикация

Имя светодиода Назначение
ON Индикатор питания платформы.
L Пользовательский светодиод на 13 пине микроконтроллера. Используйте определение LED_BUILTIN для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.
RX и TX Мигают при прошивки и обмене данными между Arduino Uno и компьютером. А также при использовании пинов 0 и 1 .

Порт USB Type-B

Разъём USB Type-B предназначен для прошивки и питания платформы Arduino. Для подключения к ПК понадобиться кабель USB (A — B).

Разъём питания DC

Коннектор DC Barrel Jack для подключения внешнего источника напряжения в диапазоне от 7 до 12 вольт.

Понижающий регулятор 5V

Понижающий линейный преобразователь NCP1117ST50T3G обеспечивает питание микроконтроллера и другой логики платы при подключении питания через разъём питания DC или пин Vin. Диапазон входного напряжения от 7 до 12 вольт. Выходное напряжение 5 В с максимальным выходным током 1 А.

Понижающий регулятор 3V3

Понижающий линейный преобразователь LP2985-33DBVR обеспечивает напряжение на пине 3V3 . Регулятор принимает входное напряжение от линии 5 вольт и выдаёт напряжение 3,3 В с максимальным выходным током 150 мА.

Кнопка сброса

Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера.

ICSP-разъём ATmega328P

ICSP-разъём выполняет две полезные функции:

ICSP-разъём ATmega16U2

ICSP-разъём предназначен для программирования микроконтроллера ATmega16U2. А подробности распиновки читайте в соответствующем разделе.

Источник

Питание платы Arduino

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

Перейдем к питанию платы: есть три способа питать Ардуино и вообще Ардуино-проект в целом, у каждого есть свои плюсы/минусы и особенности:

  • Бортовой USB порт
  • “Сырой” вход на микроконтроллер 5V
  • Стабилизированный вход Vin

Что касается земли (пины GND) то они все связаны между собой и просто продублированы на плате, это нужно запомнить. Пины 3.3V, 5V и GND являются источником питания для датчиков и модулей, но давайте рассмотрим особенности.

Питание от USB

Питание от USB – самый плохой способ питания ардуино-проекта. Почему? По линии питания +5V от USB стоит диод, выполняющий защитную функцию: он защищает порт USB компьютера от высокого потребления тока компонентами ардуино-проекта или от короткого замыкания (КЗ), которое может произойти по случайности/криворукости любителей ковырять макетные платы. КЗ продолжительностью менее секунды не успеет сильно навредить диоду и всё может обойтись, но продолжительное замыкание превращает диод в плавкий предохранитель, выпускающий облако синего дыма и спасающий порт компьютера от такой же участи.

Слаботочный диод имеет ещё одну неприятную особенность: на нём падает напряжение, причем чем больше ток потребления схемы, тем сильнее падает напряжение питания. Пример: голая ардуина без всего потребляет около 20 мА, и от 5 Вольт на юсб после диода нам остаётся примерно 4.7 Вольт. Чем это плохо: опорное напряжение при использовании АЦП крайне нестабильно, не знаешь, что измеряешь (да, есть способ измерения опорного напряжения, но делать это нужно вручную). Некоторые железки чувствительны к напряжению питания, например LCD дисплеи: при питании от 5V они яркие и чёткие, при 4.7 вольтах (питание от юсб) они уже заметно теряют яркость. Если подвигать сервоприводом или включить реле – на диоде упадет ещё больше и дисплей практически погаснет. При коротких мощных нагрузках (выше 500-600ма) микроконтроллер перезапустится, так как напряжение упадет ниже плинтуса.

Вы наверное предложите заменить диод перемычкой, чтобы питать схему от USB большим током, например от powerbank’а. Так делать тоже нельзя, потому что дорожки на плате не рассчитаны на большие токи (дорожка 5V очень тонкая и идёт через всю плату). Я думаю, что можно будет снять 1-2 Ампера с пина 5V, но, скорее всего, напряжение просядет. Также при КЗ вы скорее всего попрощаетесь с дорожкой вообще. Питайте силовую часть схемы либо отдельно, либо от того же источника питайте Arduino.

Питание в Vin

Питание в пин VinGND) – более универсальный способ питания ардуино-проекта, этот пин заводит питание на бортовой стабилизатор напряжения ардуино, на китайских платах обычно стоит AMS1117-5.0. Это линейный стабилизатор, что имеет свои плюсы и минусы. Он позволяет питать ардуино и ардуино-проект от напряжения 7-12 Вольт (это рекомендуемый диапазон, так то питать можно от 5 до 20 Вольт). Стабилизатор устроен так, что он выдает хорошее ровное напряжение с минимальными пульсациями, но всё лишнее напряжение превращает в тепло. Если питать плату и один миниатюрный сервопривод от 12 Вольт, то при активной работе привода стабилизатор нагреется до 70 градусов, что уже ощутимо горячо. По некоторым расчетам из даташита можем запомнить некоторые цифры:

  • При напряжении 7 Вольт (таких блоков питания я не встречал) в Vin можно снять с пина 5V до 2A, больше – перегрев. Отлично сработают два литиевых аккумулятора
  • При 12 Вольтах на Vin можно снять с пина 5V не более 500мА без риска перегрева стабилизатора.

Питание в пин Vin возможно только в том случае, если в Ардуино проекте (имеется в виду плата Ардуино и железки, подключенные к 5V и GND) не используются мощные потребители тока, такие как сервоприводы, адресные светодиодные ленты, моторчики и прочее. Что можно: датчики, сенсоры, дисплеи, модули реле (не более 3 одновременно в активном состоянии), одиночные светодиоды, органы управления. Для проектов с мощной 5 Вольтовой нагрузкой для нас есть только третий способ.

Питание в 5V

Питание в пин 5VGND) – самый лучший вариант питать плату и ардуино-проект в целом, но нужно быть аккуратным: пин идёт напрямую на микроконтроллер, и на него действуют некоторые ограничения:

  • Максимальное напряжение питания согласно даташиту на микроконтроллер – 5.5V. Всё что выше – с большой вероятностью выведет МК из строя;
  • Минимальное напряжение зависит от частоты, на которой работает МК. Вот строчка из даташита: 0 – 4 MHz @ 1.8 – 5.5V, 0 – 10 MHz @ 2.7 – 5.5V, 0 – 20 MHz @ 4.5 – 5.5V. Что это значит: большинство Arduino-плат имеют источник тактирования на 16 MHz, то есть Arduino будет стабильно работать от напряжения

4 Вольта (20 МГц – 4.5V, 16 МГц – около 4V). Есть версии Arduino на 8 МГц, они будут спокойно работать от напряжения 2.5V.

Самый популярный вариант – USB зардяник от смартфона, их легко достать, диапазон токов от 500ма до 3А – справится практически с любым проектом. Отрезаем штекер и паяем провода на 5V и GND, предварительно определив, где плюс/минус при помощи мультиметра или по цвету: красный всегда плюс, чёрный – земля, при красном плюсе земля может быть белого цвета. При чёрной земле плюс может быть белым, вот так вот. Точно туда же паяем все датчики/модули/потребители 5 Вольт. Да, не очень удобно это паять, но при известной схеме можно аккуратно собрать всё питание в отдельные скрутки и припаять уже их. Пример на фото ниже. Источником питания там является отдельное гнездо micro-usb, зелёная плата сразу над дисплеем.

Автоматический выбор источника

На платах Arduino (на китайских клонах в том числе) реализовано автоматическое переключение активного источника питания: при подключении внешнего питания на пин Vin линия питания USB блокируется. Если кому интересно, на схеме платы Arduino это выглядит вот так:

Питание “мощных” схем

Резюмируя и повторяя всё сказанное выше, рассмотрим варианты питания проектов с большим потреблением тока.

Питать мощный проект (светодиоды, двигатели, нагреватели) от 5V можно так: Arduino и потребитель питаются вместе от 5V источника питания:

Питать мощный потребитель от USB через плату нельзя, там стоит диод, да и дорожки питания тонкие:

Что делать, если всё-таки хочется питать проект от USB, например от powerbank’а? Это ведь удобно! Всё очень просто:

Если есть только блок питания на 12V, то у меня плохие новости: встроенный стабилизатор на плате не вытянет больше 500 мА:

Но если мы хотим питать именно 12V нагрузку, то проблем никаких нет: сама плата Arduino потребляет около 20 мА, и спокойно будет работать от бортового стабилизатора:

Автономное питание

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

    Питание в порт USB

      Самый обыкновенный Powerbank, максимальный ток – 500 мА (помним про защитный диод). Напряжение на пине 5V и высокий уровень GPIO в этом случае будет равен

    4.7V (опять же помним про диод). Внимание! У большинства Powerbank’ов питание отключается при нагрузке меньше 200мА, т.е. об энергосбережении можно забыть;

  • Максимальный выходной ток с пина 5V – 500 мА!
  • Питание в пин Vin (или штекер 5.5×2.1 на плате UNO/MEGA)
    • Любой блок питания/зарядник от ноута с напряжением 7-18 Вольт
    • 9V батарейка “Крона” – плохой, но рабочий вариант. Ёмкость кроны очень небольшая;
    • Сборка из трёх литиевых аккумуляторов: напряжение 12.6-9V в процессе разряда. Хороший вариант, также имеется 12V с хорошим запасом по току (3А для обычных, 20А для высокотоковых аккумуляторов) для двигателей или светодиодных лент;
    • “Модельные” аккумуляторы, в основном Li-Po. В целом то же самое, что предыдущий пункт, но запаса по току в разы больше;
    • Энергосбережение – не очень выгодный вариант, т.к. стабилизатор потребляет небольшой, но всё же ток;
    • Максимальный выходной ток с пина 5V при питании в Vin: 2А при 7V на Vin, 500ma при 12V на Vin
  • Питание в пин 5V
    • Для стабильных 5V на выходе – литиевый аккумулятор и повышающий до 5V модуль. У таких модулей обычно запас по току 2А, также модуль потребляет “в холостом режиме” – плохое энергосбережение;
    • Литиевый аккумулятор – напряжение на пине 5V и GPIO будет 4.2-3.5V, некоторые модули будут работать, некоторые – нет. Работа МК от напряжения ниже 4V не гарантируется, у меня работало в целом стабильно до 3.5V, ниже уже может повиснуть. Энергосбережение – отличное;
    • Пальчиковые батарейки (ААА или АА) – хороший вариант, 3 штуки дадут 4.5-3V, что граничит с риском зависнуть. 4 штуки – очень хорошо. Новые батарейки дадут 6V, что является максимальным напряжением для МК AVR и при желании можно так работать;
    • Пальчиковые Ni-Mh аккумуляторы – отличный вариант, смело можно ставить 4 штуки, они обеспечат нужное напряжение на всём цикле разряда (до 4V). Также имеют хороший запас по току, можно даже адресную ленту питать.
    • Платы с кварцем (тактовым генератором) на 8 МГц позволяют питать схему от низкого напряжения (2.5V, как мы обсуждали выше), отлично подойдут те же батарейки/аккумуляторы, также для маломощные проекты можно питать от литиевой таблетки (3.2-2.5V в процессе разряда).
    • Максимальный выходной ток с пина 5V ограничен током источника питания
  • Arduino как источник питания

    Важный момент, который вытекает из предыдущих: использование платы Arduino как источник питания для модулей/датчиков. Варианта тут два:

    • Питание датчиков и модулей от 5V
      • При питании платы от USB – максимальный ток 500 мА
      • При питании платы в Vin – максимальный ток 2 А при Vin 7V, 500 мА при Vin 12V
      • При питании платы в 5V – максимальный ток зависит от блока питания
    • Питание датчиков от GPIO (пинов D и A) – максимальный ток с одного пина: 40 мА, но рекомендуется снимать не более 20 мА. Максимальный суммарный ток с пинов (макс. ток через МК) не должен превышать 200 мА. Допускается объединение нескольких ног для питания нагрузки, но состояние выходов должно быть изменено одновременно (желательно через PORTn), иначе есть риск спалить ногу при её закорачивании на другую во время переключения. Либо делать ногу входом (INPUT), вместо подачи на неё низкого (LOW) сигнала. В этом случае опасность спалить ноги отсутствует.

    Помехи и защита от них

    Если в одной цепи питания с Ардуино стоят мощные потребители, такие как сервоприводы, адресные светодиодные ленты, модули реле и прочее, на линии питания могут возникать помехи, приводящие к сильным шумам измерений с АЦП, а более мощные помехи могут дергать прерывания и даже менять состояния пинов, нарушая связь по различным интерфейсам связи и внося ошибки в показания датчиков, выводя чушь на дисплеи, а иногда дело может доходить до перезагрузки контроллера или его зависания. Некоторые модули также могут зависать, перезагружаться и сбоить при плохом питании, например bluetooth модуль спокойно может зависнуть и висеть до полной перезагрузки системы, а радиомодули rf24 вообще не будут работать при “шумном” питании.

    Более того, помеха может прийти откуда не ждали – по воздуху, например от электродвигателя, индуктивный выброс ловится проводами и делает с системой всякое. Что же делать? “Большие дяди” в реальных промышленных устройствах делают очень много для защиты от помех, этому посвящены целые книги и диссертации. Мы с вами рассмотрим самое простое, что можно сделать дома на коленке.

    • Питать логическую часть (Ардуино, слаботочные датчики и модули) от отдельного малошумящего блока питания 5V, то есть разделить питание логической и силовой частей, а ещё лучше питаться в пин Vin от блока питания на 7-12V, так как линейный стабилизатор даёт очень хорошее ровное напряжение. Для корректной работы устройств, питающихся отдельно (драйверы моторов, приводы) нужно соединить земли Ардуино и всех внешних устройств;
    • Поставить конденсаторы по питанию платы, максимально близко к пинам 5V и GND: электролит 6.3V 100-470 uF (мкФ, ёмкость зависит от качества питания: при сильных просадках напряжения ставить ёмкость больше, при небольших помехах хватит и 10-47 мкФ) и керамический на 0.1-1 uF. Это сгладит помехи даже от сервоприводов;
    • У “выносных” на проводах элементах системы (кнопки, крутилки, датчики) скручивать провода в косичку, преимущественно с землёй. А ещё лучше использовать экранированные провода, экран естественно будет GND. Таким образом защищаемся от электромагнитных наводок;
    • Соединять все земли одним толстым проводом и по возможности заземлять на центральное заземление;
    • Металлический и заземленный корпус устройства (или просто обернутый фольгой 🙂 ), на который заземлены все компоненты схемы – залог полного отсутствия помех и наводок по воздуху.

    Ещё лучше с фильтрацией помех справится LC фильтр, состоящий из индуктивности и конденсатора. Индуктивность нужно брать с номиналом в районе 100-300 мкГн и с током насыщения больше, чем ток нагрузки после фильтра. Конденсатор – электролит с ёмкостью 100-1000 uF в зависимости опять же от тока потребления нагрузки после фильтра. Подключается вот так, чем ближе к нагрузке – тем лучше:

    Подробнее о расчёте фильтров можно почитать здесь.

    Индуктивные выбросы

    На практике самая подлая помеха обычно приходит при коммутации индуктивной нагрузки при помощи электромагнитного реле: от такой помехи очень сложно защититься, потому что приходит она по земле, то есть вас не спасёт даже раздельное питание проекта. Что делать?

    • Для цепей постоянного тока обязательно ставить мощный диод обратно-параллельно нагрузке, максимально близко к клеммам реле. Диод примет (замкнёт) на себя индуктивный выброс от мотора/катушки;
    • Туда же, на клеммы реле, можно поставить RC цепочку, называемую в этом случае искрогасящей: резистор 39 Ом 0.5 Вт, конденсатор 0.1 мкФ 400V (для цепи 220В);
    • Для сетей переменного тока использовать твердотельное (SSR) реле с детектором нуля (Zero-cross detector), они же называются “бесшумные” реле. Если в цепи переменного тока вместо реле стоит симистор с оптопарой, то оптопару нужно использовать опять же с детектором нуля, такая оптопара, как и SSR zero-cross будут отключать нагрузку в тот момент, когда напряжение в сети переходит через ноль, это максимально уменьшает все выбросы.

    Подробнее об искрогасящих цепях можно почитать вот в этой методичке.

    Главный Глупый Вопрос

    У новичков в электронике, которые не знают закон Ома, очень часто возникают вопросы вида: “а каким током можно питать Ардуино“, “какой ток можно подать на Ардуино“, “не сгорит ли моя Ардуина от от блока питания 12V 10A“, “сколько Ампер можно подавать на Arduino” и прочую чушь. Запомните: вы не можете подать Амперы, вы можете подать только Вольты, а устройство возьмёт столько Ампер, сколько ему нужно. В случае с Arduino – голая плата возьмёт 20-22 мА, хоть от пина 5V, хоть от Vin. Ток, который указан на блоке питания, это максимальный ток, который БП может отдать без повреждения/перегрева/просадки напряжения. Беспокоиться стоит не об Arduino, а об остальном железе, которое стоит в схеме и питается от блока питания, а также о самом блоке питания, который может не вывезти вашу нагрузку (мотор, светодиоды, обогреватель). Общий ток потребления компонентов не должен превышать возможностей источника питания, вот в чём дело. А будь блок питания хоть на 200 Ампер – компоненты возьмут ровно столько, сколько им нужно, и у вас останется “запас по току” для подключения других. Если устройство питается напряжением, то запомните про максимальный ток источника питания очень простую мысль: кашу маслом не испортишь.

    Источник