Меню

Ардуино Нано характеристики распиновка

Питание платы 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 Ампер – компоненты возьмут ровно столько, сколько им нужно, и у вас останется “запас по току” для подключения других. Если устройство питается напряжением, то запомните про максимальный ток источника питания очень простую мысль: кашу маслом не испортишь.

    Источник

    Ардуино Нано: характеристики, распиновка

    Плата Arduino Nano — это одна из самых популярных платформ для создания автоматики в домашних условиях. Nano завоевала свою популярность среди радиолюбителей благодаря своим миниатюрным размерам, сопоставимых с флэшкой. Разберем подробно объем памяти, количество портов, схему, прошивку Ардуино Нано и другие характеристики, которые не уступают флагманскому продукту — Arduino UNO.

    Распиновка Arduino NANO v3

    Главное отличие этой миниатюрной платы, заключается в отсутствии гнезда для внешнего источника питания, вместо этого используются VIN. Когда речь идет о создании миниатюрного устройства, то размер Arduino Nano v3 ATmega328 / ATmega168 играет решающую роль при выборе платформы. При этом, Ардуино УНО — это более удобная платформа для старта и начала изучения микроконтроллеров.

    Платы могут выпускаться в двух вариантах — с припаянными ножками и без (ножки обычно идут в комплекте). Платы без ножек будет намного удобнее использовать в проектах на Ардуино, припаивая к портам платы провода напрямую. Платы с ножками можно устанавливать на макетных платах, используя для соединения с датчиками и модулями коннекторы (провода «папа-папа» и «папа-мама»).

    Характеристики платы Arduino NANO

    • Микроконтроллер: ATmega328
    • Тактовая частота: 16 МГц
    • Напряжение логических уровней: 5 В
    • Входное напряжение питания: 7–12 В
    • Портов ввода-вывода общего назначения: 22
    • Максимальный ток с пина ввода-вывода: 40 мА
    • Максимальный выходной ток пина 3.3V: 50 мА
    • Максимальный выходной ток пина 5V: 800 мА
    • Портов с поддержкой ШИМ: 6
    • Портов, подключённых к АЦП: 8
    • Разрядность АЦП: 10 бит
    • Flash-память: 32 КБ
    • EEPROM-память: 1 КБ
    • SRAM-память: 2 КБ
    • Габариты (размер Arduino Nano): 18×45 мм

    Arduino NANO: схема электрическая

    Arduino NANO: порты ввода вывода, питание

    Рабочее напряжение платы — 5В при подключении через кабель USB. В случае одновременного подключения внешнего источника, питание Arduino NANO v3 автоматически переключается на источник с большим напряжением. Рекомендуемое питание от батареек или другого источника от 7 до 12 В. Подача напряжения на пин 5V не допустимо — плата может сгореть, питание следует подавать через VIN.

    NANO v3.0: питание от внешнего источника

    5V – на пин выводится стабилизированное напряжение 5В
    3.3V – на пин выводится стабилизированное напряжение 3.3 В
    GND – вывод земли (заземление)
    VIN – пин для подачи внешнего напряжения 7–12 В
    IREF – пин информирования о рабочем напряжении платы

    Arduino NANO v3.0 ch340g: прошивка, память

    Программирование платы производится в среде Arduino IDE 1.8, которую можно бесплатно скачать на официальном сайте www.arduino.cc. Для подключения датчиков и модулей к Nano используются коннекторы, которые подключаются к портам на плате Ардуино. Чтобы быстро научиться работать с платформой, перейдите в раздел на нашем сайте «Уроки для начинающих» где представлены подробные инструкции.

    Плата поддерживает три типа памяти:

    Flash – память объемом 32 кБ для Arduino Nano ATmega328 и 16 кБ для Arduino Nano ATmega168, используется для хранения программы. Когда контроллер прошивается скетчем через USB, программа записывается именно во Flash – память.

    SRAM память — это оперативная память платформы Ардуино объемом 2 кБ для ATmega328 и 1 кБ для ATmega168. SRAM память энерго-зависимая, при отключении источника питания от платы, все сохраненные ранее данные удалятся.

    EEPROM — это энергонезависимая память объемом всего 1 кБ. Сюда можно записывать данные, которые при выключении питания не исчезнут. Минус EEPROM в ограничении циклов перезаписи — 100 000 раз по утверждениям производителя.

    Источник

    Arduino.ru

    Arduino nano как ее питать?

    Расскажите пожалуйста можно ли как-то Arduino nano питать не от Micro USB выхода?

    В Интернете предлогают запитывать от выхода +5V и GND. Действитльно ли можно так делать?

    И через что лучше ее питать?

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

    Расскажите пожалуйста можно ли как-то Arduino nano питать не от Micro USB выхода?

    В Интернете предлогают запитывать от выхода +5V и GND. Действитльно ли можно так делать?

    И через что лучше ее питать?

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

    Расскажите пожалуйста можно ли как-то Arduino nano питать не от Micro USB выхода?

    В Интернете предлогают запитывать от выхода +5V и GND. Действитльно ли можно так делать?

    И через что лучше ее питать?

    Действительно так делать можно — подать питание на +5v, только аккуратно с тем что падаете, строго 5в (в определенных разумных пределах см. даташит или описания) стабилизированное! Ну и по току, не менее 500 мА с запасом. Ну и сподключением будьте внимательны, ошибиться шансов больше.

    А лутше — хуже, это категория субьективная. Железке все равно от куда к ней питание прийдет.

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

    В Интернете предлогают запитывать от выхода +5V и GND. Действитльно ли можно так делать?

    Если у Вас стабилизированые +5 то подключайте на вход дуины +5в

    Если у Вас не стабиллизирование от +7 до +12в то подключайте на вход Vin

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

    можно запитать от коробочки с 4 батарейками типа AA(пальчики) или AAA(мизинчики)=4.5В или 3-4 NiMn аккумуляторов = 3,6. 4,8В

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

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

    А чем вам VIN не устраивает? После него какраз вон стабилизатор ua78m05, до 25В выдерживает по даташиту.

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

    Устраивает конечно, через VIN можно запитать от батареи типа «Крона» или как ее там сейчас зовут 6LR61 . )) но тут половина энергии пойдет на нагрев ua78m05, а это уже совсем не по комельфецки ))

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

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

    А чем вам VIN не устраивает? После него какраз вон стабилизатор ua78m05, до 25В выдерживает по даташиту.

    Попробуйте подать на Vin 25в и помигайте блинком в течении 10 мин

    Еще для ускорения процесса подключите свомотрчик и крутаните его

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

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

    А если от батареек через VCC, то как обвес в виде датчиков или сенсоров запитывать, для них свое питание городить?

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

    Puhlyaviy аватар

    Ну начните питать манной кашкой, потом плавно переходите на тертые фруты и овощи а там и до твердой пищи будет не далеко!

    Вот казалось бы самые тупые вопросы уже были пару месяцев назад. Но, нет! С кажды разом находится более тупой!

    Давай подраздел создадим.. назовем его ТУПОЙ И ЕЩЕ ТУПЕЕ!

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

    Я наверное еще тупее тупого, но решил тут автономное питание сделать для Ардуино нано и тоже возник вопрос. Разжуйте, пожалуйста.

    На ней висит NRF24L01+ модуль и температурный датчик. Когда питаю его по USB — всё работает. Когда Через крону 9В — он не работает. NRF24 подключен к 3.3V, температурный датчик к 5V. Крону подключал + к VIN, — к GND. Подозреваю, что не тянет. Да и крона бюджетная. Завтра попробую как куплю батарейки температурный датчик повесить на 4хААА 4,5 В — может потянет, а остальное на Кроне оставить.

    Далее попробовал Ардуино нано, NRF24L01+ модуль и relay выключатель на 220В запитать от батарейки. Реле нужно от 3 до 32 В для управления. NRF24 так же от 3.3В. Всё равно не работает.

    подключаю обратно на USB — всё пашет. Вопрос: Ардуине просто тупо не хватает напряжения, или я не так что-то подключил?

    И какие еще методы для автономного питания можно сделать? Не батарею же из 8-ми пальчиковых батареек городить. Можно ли какой-то модуль питания от USB собрать или купить, который бы тоже от батареек питался?

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

    SU-27-16 аватар

    Микросхема FTDI FT232RL получает питание, только если сама платформа запитана от USB. Таким образом при работе от внешнего источника (не USB), будет отсутствовать напряжение 3.3 В, генерируемое микросхемой FTDI, при этом светодиоды RX и TX мигаю только при наличие сигнала высокого уровня на выводах 0 и 1.

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

    Я наверное еще тупее тупого, но решил тут автономное питание сделать для Ардуино нано и тоже возник вопрос. Разжуйте, пожалуйста.

    На ней висит NRF24L01+ модуль и температурный датчик. Когда питаю его по USB — всё работает. Когда Через крону 9В — он не работает. NRF24 подключен к 3.3V, температурный датчик к 5V. Крону подключал + к VIN, — к GND. Подозреваю, что не тянет. Да и крона бюджетная. Завтра попробую как куплю батарейки температурный датчик повесить на 4хААА 4,5 В — может потянет, а остальное на Кроне оставить.

    Далее попробовал Ардуино нано, NRF24L01+ модуль и relay выключатель на 220В запитать от батарейки. Реле нужно от 3 до 32 В для управления. NRF24 так же от 3.3В. Всё равно не работает.

    подключаю обратно на USB — всё пашет. Вопрос: Ардуине просто тупо не хватает напряжения, или я не так что-то подключил?

    И какие еще методы для автономного питания можно сделать? Не батарею же из 8-ми пальчиковых батареек городить. Можно ли какой-то модуль питания от USB собрать или купить, который бы тоже от батареек питался?

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

    Источник

    

    Питание Ардуино

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

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

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

    Пример потребления электроэнергии платой Arduino Mini Pro:

    Питающее напряжение, В Ток, мА Потребляемая мощность, мВт
    9 42 378
    5 22 110
    3.3 8 26.4

    На нашем сайте вы можете найти описание схем энергопитания для плат Arduino Uno, Nano, Mega и Leonardo.

    В рамках данной темы мы рассмотрим 4 основных метода снижения энергопотребления:

    • использование режимов энергосбережения;
    • использование библиотеки Narcoleptic;
    • выключение компонентов микроконтроллера;
    • снижение тактовой частоты;

    Использование режимов энергосбережения.

    Все микроконтроллеры AVR на которых основаны большинство плат Arduino поддерживают различные режимы энергосбережения. Рассмотрим такие режимы для микроконтроллера ATmega328P, на котором основаны платы Arduino UNO, Arduino Nano, Arduino Pro Mini и некоторые другие:

    IDLE mode (режим ожидания)

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

    Power-Down mode (режим глубокого сна)

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

    Power Save mode (режим энергосбережения)

    Отличается от режима Power-Down тем, что таймер/счетчик 2 продолжает свою работу как в синхронном, так и в асинхронном режиме. Пробуждение из этого режима возможно теми же прерываниями что и из режима Power-Down, а также прерыванием от таймера/счетчика 2.

    Standby mode (режим ожидания)

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

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

    После этого нам станут доступны две простые функции – set_sleep_mode(); и sleep_mode();.

    С помощью функции set_sleep_mode(); происходит выбор необходимого режима энергосбережения. Соответственно есть 4 интересующих нас аргумента этой функции для каждого из рассмотренных режимов работы:

    После того как был задан необходимый режим энергосбережения, мы можем воспользоваться функцией sleep_mode(); для перевода микроконтроллера в этот режим.

    Как видно, ввести микроконтроллер в режим энергосбережения совсем несложно, но помимо этого его необходимо еще и выводить из этого режима для совершения полезной работы. Рассмотрим вариант использования прерывания от сторожевого таймера для этих целей. Для работы со сторожевым таймером необходимо подключить соответствующую библиотеку wdt.h:

    После этого в теле программы необходимо объявить функцию обработчика прерывания от сторожевого таймера:

    Для работы со сторожевым таймером понадобятся две функции – wdt_enable(); и wdt_disable();.

    Функция wdt_enable(); имеет один аргумент, устанавливающий интервал срабатывания сторожевого таймера. Для этого доступны 10 констант:

    Кроме этого, необходимо разрешить прерывание от сторожевого таймера. Это можно сделать с помощью установки бита WDIE регистра WDTCSR: WDTCSR |= (1 Использование библиотеки Narcoleptic

    Данную библиотеку создал Питер Кнайт, скачать ее можно по адресу https://code.google.com/p/narcoleptic/.

    Эта библиотека позволяет вводить микроконтроллер в режим сна на определенное время с помощью одной функции – Narcoleptic.delay();. Аргументом данной функции является время в миллисекундах – используется точно так же как и стандартная функция delay();.

    Рассмотрим ту же программу что и ранее, но с использованием данной библиотеки:

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

    Выключение компонентов микроконтроллера

    Этот метод подойдет в случаях, когда микроконтроллер длительное время должен выполнять ряд определенных действий с одной и той же периферией.

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

    Для того чтобы воспользоваться данным методом необходимо подключить библиотеку power.h:

    После этого нам будет доступен ряд функций для включения и отключения отдельных модулей периферии микроконтроллера:

    Функция выключения Функция включения Описание модуля
    power_aca_disable() power_aca_enable() Аналоговый компаратор порта А.
    power_adc_disable() power_adc_enable() АЦП.
    power_adca_disable() power_adca_enable() АЦП порта А.
    power_evsys_disable() power_evsys_enable() Модуль EVSYS
    power_hiresc_disable() power_hiresc_enable() Модуль HIRES порта C.
    power_lcd_disable() power_lcd_enable() Модуль LCD.
    power_pga_disable() power_pga_enable() Усилитель с программируемым коэффициентом усиления.
    power_pscr_disable() power_pscr_enable() Контроллер пониженной мощности.
    power_psc0_disable() power_psc0_enable() 0 Контроллер уровня мощности.
    power_psc1_disable() power_psc1_enable() 1 Контроллер уровня мощности.
    power_psc2_disable() power_psc2_enable() 2 Контроллер уровня мощности.
    power_ram0_disable() power_ram0_enable() SRAM блок 0.
    power_ram1_disable() power_ram1_enable() SRAM блок 1.
    power_ram2_disable() power_ram2_enable() SRAM блок 2.
    power_ram3_disable() power_ram3_enable() SRAM блок 3.
    power_rtc_disable() power_rtc_enable() Модуль часов реального времени.
    power_spi_disable() power_spi_enable() Интерфейс SPI
    power_spic_disable() power_spic_enable() Интерфейс SPI порта C
    power_spid_disable() power_spid_enable() Интерфейс SPI порта D
    power_tc0c_disable() power_tc0c_enable() Таймер/счетчик 0 порта C
    power_tc0d_disable() power_tc0d_enable() Таймер/счетчик 0 порта D
    power_tc0e_disable() power_tc0e_enable() Таймер/счетчик 0 порта E
    power_tc0f_disable() power_tc0f_enable() Таймер/счетчик 0 порта F
    power_tc1c_disable() power_tc1c_enable() Таймер/счетчик 1 порта C
    power_twic_disable() power_twic_enable() Интерфейс I2C порта C
    power_twie_disable() power_twie_enable() Интерфейс I2C порта E
    power_timer0_disable() power_timer0_enable() Таймер 0
    power_timer1_disable() power_timer1_enable() Таймер 1
    power_timer2_disable() power_timer2_enable() Таймер 2
    power_timer3_disable() power_timer3_enable() Таймер 3
    power_timer4_disable() power_timer4_enable() Таймер 4
    power_timer5_disable() power_timer5_enable() Таймер 5
    power_twi_disable() power_twi_enable() Интерфейс I2C
    power_usart_disable() power_usart_enable() Интерфейс USART
    power_usart0_disable() power_usart0_enable() Интерфейс USART 0
    power_usart1_disable() power_usart1_enable() Интерфейс USART 1
    power_usart2_disable() power_usart2_enable() Интерфейс USART 2
    power_usart3_disable() power_usart3_enable() Интерфейс USART 3
    power_usartc0_disable() power_usartc0_enable() Интерфейс USART 0 порта C
    power_usartd0_disable() power_usartd0_enable() Интерфейс USART 0 порта D
    power_usarte0_disable() power_usarte0_enable() Интерфейс USART 0 порта E
    power_usartf0_disable() power_usartf0_enable() Интерфейс USART 0 порта F
    power_usb_disable() power_usb_enable() Интерфейс USB
    power_usi_disable() power_usi_enable() Интерфейс USI
    power_vadc_disable() power_vadc_enable() Модуль напряжения АЦП
    power_all_disable() power_all_enable() Все модули

    Доступность данных функций будет определяться типом используемого микроконтроллера, и тем какая периферия в нем присутствует. Для того чтобы не изучать документацию на каждый конкретный контроллер, можно отключать при запуске всю периферию контроллера с помощью функции power_all_disable(), а затем отдельно включать необходимые модули.

    Для примера давайте добавим в нашу первую программу отправку данных через Serial порт, а всю остальную периферию микроконтроллера отключим:

    Снижение тактовой частоты.

    Потребление любого микроконтроллера сильно зависит от частоты его тактирования, и снижая ее, мы можем добиться значительного снижения энергопотребления. В микроконтроллерах AVR имеется возможность программного изменения предделителя частоты тактирования. А для простоты работы с ним мы будем использовать специальную библиотеку Prescaler.h, скачать которую можно по адресу https://github.com/fschaefer/Prescaler:

    Изменение предделителя тактирования производится с помощью функции setClockPrescaler(); имеющей один аргумент, отвечающий за величину предделителя. Существует 9 констант в качестве аргументов для данной функции:

    В зависимости от аргумента, данная функция снижает тактовую частоту в несколько раз (CLOCK_PRESCALER_16 означает что базовая тактовая частота микроконтроллера будет снижена в 16 раз).

    Перед использованием данной функции, необходимо отметить, что правильность работы всей периферии сильно зависит от тактовой частоты, и при ее снижении – большинство функций микроконтроллера, завязанные на времени, будут работать неправильно (таймеры, PWM, USART, I2C и т.д.). Кроме того неправильно будут работать стандартные функции millis(); и delay();. Но данная библиотека предоставляет замену этим функциям в виде функций trueMillis(); и trueDelay();.

    Рассмотрим вариант применения снижения тактовой частоты на примере работы с Serial интерфейсом:

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

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

    Источник

    Читайте также:  Банка аккумулятора вздулась что делать