Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Энергосбережение и сон Arduino


У вас наверняка есть настольные часы-будильник с датчиком температуры и влажности, которые работают на двух пальчиковых батарейках уже не первый год и даже не планируют разряжаться. В то же время, если подключить плату Ардуино к “паурбанку” на 10 Ампер*часов, она высосет его за две недели. Как же так вышло?!

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

  • Правильно подобрать источник питания по напряжению.
  • Минимизировать и оптимизировать потребление пассивных компонентов (стабилизаторы напряжения, светодиоды индикации, делители напряжения и т.д.).
  • Задать оптимальный режим работы устройства и отдельных его частей: максимальное энергосбережение бОльшую часть времени работы, пробуждение по внешним событиям или таймеру, работа различных компонентов по расписанию и т. д. Например: опрос датчика и отправка данных по радио раз в минуту, всё остальное время – максимальный сон МК и отключение датчика и радио от питания.
  • Что касается сна самого МК – спать можно при помощи встроенных команд (например ассемблерной asm("sleep") или sleep_mode() из avr/sleep.h), а можно использовать библиотеки. Например есть стандартная avr/sleep.h, которая идёт в комплекте со средой разработки. Из нестандартных есть весьма популярные Narcoleptic и Low-Power, имеющие гораздо бОльшие возможности по настройке сна. Мы сделали свою библиотеку для управления энергосбережением МК – GyverPower, которая включает в себя удобное управление сном и энергопотреблением МК на всех уровнях (сон, управление частотой и периферией), а также встроенный калибровщик сторожевого таймера и несколько уникальных фишек, которых нет ни в каких других библиотеках. В данном уроке я буду ссылаться именно на неё, с полной документацией можно ознакомиться здесь.
  • Также потребление МК сильно зависит от частоты. Можно понижать частоту между периодами активной работы (вычислений, работы с датчиками), об этом читай ниже.

Вольты, амперы, ёмкость


Начнем с базовых понятий мира электричества: Вольты и Амперы (более подробно про это читай в этом уроке). Вольты – напряжение, оно же разность потенциалов. Напряжение задаёт источник питания, например батарейка или блок питания. Амперы – сила тока в цепи, показывает с какой силой “расходуется” электрическая энергия. Ток в цепи задаёт потребитель. (Примечание: описанное выше справедливо для источника напряжения, коим является любая батарейка/аккумулятор или обычный блок питания. Источником тока может быть специальное зарядное устройство или светодиодный драйвер, от них питать предназначенную для источника напряжения схему нельзя – сразу сгорит).

Потребляемую и запасаемую энергию принято считать в Ампер*часах, работает это следующим образом: допустим, ёмкость аккумулятора составляет 1 А*ч (Ампер*час). Это означает, что такой аккумулятор сможет отдавать ток с силой 1 Ампер в течение одного часа, полностью при этом разрядившись. Если ток в цепи будет 0.5 А – аккумулятора хватит на 1 А*ч / 0.5 А == 2 часа. Плата Ардуино потребляет в районе 24 мА, то есть тот же условный аккумулятор сможет питать её в течение 1000 мА*ч /24 мА ~ 42 часов. При параллельном подключении потребителей, как это обычно бывает в схеме, ток потребления суммируется. Если добавить в “схему” из предыдущего расчёта дисплей с подсветкой, который будет потреблять условно ещё 30 мА, то такая схема проработает от того же аккумулятора 1000 мА*ч / (24+30 мА) ~ 18.5 часов. 

Потребление компонентов схемы


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

  • Некоторые железки имеют очень удобный пин EN – enable, позволяющий логическим уровнем с МК полностью включать и выключать компонент, что позволяет очень просто управлять его состоянием.
  • Некоторые микросхемы имеют встроенный режим энергосбережения, который можно активировать из программы (например, передав нужную команду по интерфейсу связи). Информацию нужно искать в даташите или библиотеке на конкретную железку.
  • Если таких возможностей у железки нет – всегда можно просто разорвать ей питание при помощи транзистора или оптопары. Электромеханическое реле использовать не рекомендуется, т.к. оно само потребляет приличный ток.
  • Маломощные (до 20 мА) компоненты можно питать напрямую от пинов МК, что ещё больше упрощает задачу по управлению питанием. Примечание: у “Ардуиновских” AVR весьма приличный запас по току – в районе 40 мА на пин, но на таком токе напряжение просаживается и работа “железки” может стать нестабильной, поэтому не рекомендуется подключать на пин нагрузку выше 20 мА. К слову, у других процессоров (STM32, esp8266) максимальный ток с пинов на порядок ниже (2-5 мА) и что-то от них питать в принципе невозможно.
  • Большинство “интерфейсных” микросхем при сбросе питания будут требовать повторной инициализации. У того же например lcd дисплея после отключения и включения питания нужно вызвать метод .init(), чтобы дисплей начал реагировать на остальные команды.

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

Потребление платы Ардуино


Честно говоря, сам микроконтроллер может работать абсолютно самостоятельно просто при наличии питания, а смена режима сна или частоты будет влиять на потребление ровно так, как написано в даташите. Если в основе проекта лежит плата ардуино – начинаем загибать пальцы: светодиоды индикации, стабилизатор питания и usb-ttl преобразователь – все они потребляют ток в холостом режиме, просто потому что они сидят на общем питании. Плата Nano в активном режиме потребляет около 24 мА, а если погрузить МК в максимальный сон – в районе 5 мА. В то же время по даташиту МК в таком режиме должен потреблять в районе 1 мкА, то есть в 5000 (пять тысяч) раз больше!!! Эти самые 5 мА потребляют перечисленные выше компоненты на плате ардуино, поэтому для создания действительно энергоэффективного проекта нужно делать свою плату и паять на неё МК, либо брать скальпель/паяльник и убирать лишнее с платы Ардуино.

Потребление МК

Частота тактирования


Вычислительное ядро потребляет энергию всегда, когда находится в активном режиме: вычисляет ли программа арккосинус, ожидает ли окончание задержки delay(), висит ли в бесконечном пустом for(;;) – неважно. Потребление будет одинаковым во всех случаях, пока ядро тактируется. Более того, от частоты тактирования зависит напряжение, при котором МК гарантированно стабильно работает. Вот картинки из даташита на ATmega328:

 

На самом деле всё как обычно слегка “завышено”, потому что на 16 МГц клоке Ардуино прекрасно работает начиная от 3. 3V, а на 8 МГц (внутреннем) – от 1.8V (при отключенном BOD). Есть четыре уровня управления тактовой частотой:

  • Подключение внешнего кварца с нужной частотой (на плате Ардуино стоит 16 МГц, сам МК поддерживает вплоть до 20 МГц без разгона).
  • Выбор источника тактирования при помощи фьюзов: внешний (частота соответствует установленному генератору) и внутренний (8 МГц).
  • Изменение системной частоты прямо из программы: большинство МК avr позволяют понизить приходящую с источника тактирования частоту, а именно – поделить (реализовано в GyverPower). Таким образом можно замедлить работу всего МК для уменьшения потребления энергии или увеличения стабильности работы от пониженного напряжения. Можно выполнить необходимые действия на высокой частоте, а затем понизить её до минимума до наступления внешних событий по прерываниям или по таймеру. На некоторых МК есть PLL – умножитель частоты (например на Attiny85), позволяющий тактироваться на частоте 36 МГц от внутреннего источника! Для такого разгона придется поднять напряжение и обеспечить теплоотвод, но об этом не в этом уроке =).
  • Фьюз CKDIV8: системный делитель из предыдущего пункта автоматически устанавливается на 8 перед запуском МК. Это нужно для более надёжного старта при низком напряжении. Обычно используют так: МК стартует с CKDIV8 на пониженной частоте, измеряет напряжение питания, если оно достаточно высокое (аккумулятор не разряжен) частота выставляется на необходимую и работа продолжается. Иначе например можно всё вырубить и уйти в сон.

Также прилагаю картинку с графиками тока потребления МК в активном режиме (не во сне) в зависимости от частоты и напряжения питания:

Режимы энергосбережения


У микроконтроллера есть несколько режимов энергосбережения, в каждом из которых остаются в активном режиме только некоторые из аппаратных блоков (таймеры, интерфейсы, АЦП, и т.д.). Также у мк есть блок BOD, отвечающий за постоянный мониторинг напряжения и перезагрузку в случае его падения ниже настроенного порога. Во всех режимах сна остаётся активен АЦП, его нужно отключать отдельно (всё реализовано в GyverPower). Режимы энергосбережения МК (AVR):

  • IDLE – Легкий сон, отключается только клок CPU и Flash, пробуждается мгновенно от любых прерываний
  • POWERDOWN – Наиболее глубокий сон, отключается всё кроме WDT и внешних прерываний, просыпается от аппаратных (обычных + PCINT) или WDT, пробуждение за 16+6 тактов (~1.375 мкс на 16 МГц). Прерывание должно быть длиннее этого времени для успешного пробуждения!
  • STANDBY – Глубокий сон, идентичен POWERDOWN + system clock активен, пробуждение за 6 тактов (0.4 мкс)
  • POWERSAVE – Глубокий сон, идентичен POWERDOWN + timer 2 активен (+ можно проснуться от его прерываний), можно использовать для счета времени
  • EXTSTANDBY – Глубокий сон, идентичен POWERSAVE + system clock активен, пробуждение за 6 тактов (0.4 мкс)

Самый часто используемый на практике режим – power down, самый глубокий сон. В нём отключается всё, кроме watchdog и аппаратных прерываний (обычные external и PCINT). В данном режиме МК потребляет минимальный ток (ATmega328 – чуть меньше 1 мкА), а проснуться можно только по прерыванию Watchdog таймера или по аппаратному прерыванию (по кнопке). Очевидно, что в глубоком сне не работают таймеры и прерывания по ним, поэтому счёт времени становится отдельной задачей (в GyverPower эта задача решена максимально удобно).

Периферия


Помимо главного “ядра” у микроконтроллера есть куча периферийных блоков (АЦП, компаратор, таймеры, интерфейсы связи), которые по сути работают отдельно и могут общаться с МК на аппаратном уровне. Каждый блок потребляет некоторый ток, и при желании некоторые блоки можно отключить. В режиме глубокого сна они отключаются автоматически, а вот в активной работе нужно отключить их вручную. Большую таблицу с потреблением МК в разных режимах и с разным набором активной периферии можно посмотреть на официальной странице библиотеки Low Power, на всякий случай приложу её ниже. Управление периферией также реализовано в GyverPower.

Измерения проводились на 8 МГц плате Pro Mini при питании от Li-Ion аккумулятора (3.7V):

Питание

Источник питания


Выбор источника питания очень важен для эффективного энергосбережения: максимально желательно питать МК напрямую от батарейки/аккумулятора:

  • Трёх-четырёх АА/ААА батареек или аккумуляторов достаточно для работы на стандартной частоте 16 МГц (с 4-мя батарейками нужно быть аккуратнее по суммарному напряжению, а 4 никелевых аккумулятора подходят идеально).
  • От одного литиевого аккумулятора (3.7-4.2V) можно работать на 16 МГц, но при разряде ниже 3.5V работа на такой частоте уже может быть не очень стабильной (частоту можно чуть понизить, об этом ниже).
  • От литиевой 3V таблетки (CR2025, CR2032 и прочие) микроконтроллер отлично будет работать на внутреннем 8 МГц клоке.
  • Плохим вариантом можно считать ситуации, когда приходится использовать понижающие преобразователи и стабилизаторы: они все будут тратить несколько миллиампер “в тепло”, и даже режим сна МК может оказаться абсолютно бессмысленным. Но в любой ситуации нужно считать потребление и прикидывать время работы, для каких-то задач и работа от “Кроны” через стабилизатор будет приемлемой во имя упрощения схемы и стабильных 5 Вольт (китайский транзистор-тестер, например, включается на несколько секунд, поэтому заморочек по питанию нет).
  • Если в устройстве используется аккумуляторная батарея, то можно схитрить: высоковольтный потребитель (мотор к примеру) может питаться от общего напряжения с батареи через драйвер, а микроконтроллер может работать от одной его “банки”, соединяясь общим проводом с минусом. Микроконтроллер, особенно в режиме сна, потребляет ничтожно мало по сравнению с тем же мотором, поэтому о разбалансировке банок можно не беспокоиться. Таким образом МК также может мониторить напряжение батареи и отключать её при разряде, выполняя роль BMS. Про измерение напряжения мы говорили в уроке про аналоговые входы.
  • Также напомню, что питать всякие железки напрямую от МК можно только в некоторых пределах, подробнее о них и вообще питании проекта мы говорили в уроке о питании Ардуино и схемы в целом.

Самоблокировка питания


Самый надёжный и аппаратно простой способ сэкономить энергию – самоблокировка питания. Он подходит для устройств, которые включаются тактовой кнопкой (без фиксации) и через некоторое время должны сами отключиться до следующего клика по кнопке. Самоблокировка работает следующим образом: нажатие на кнопку подаёт ток на МК, он запускается, подаёт сигнал на “ключ”, который запараллеливает линию питания. Мы отпускаем кнопку, а МК продолжает работать, потому что сам удерживает ключ, через который идёт питание. Отсюда и название: самоблокировка питания. По тайм-ауту или другому алгоритму работы МК может отпустить ключ и отключиться. Через этот же ключ могут питаться и остальные железки, и точно так же быть отключены от питания при самовыключении.

Проблема в том, что МК от AVR могут питаться от любого GPIO пина (при наличии общей GND), поэтому практически все старые схемы из интернета не работают. Пока что удалось найти две схемы на форуме arduino, но лично я их не тестировал. В будущем дополню урок.

Но есть шикарный, простой и рабочий вариант: использовать стабилизатор напряжения с пином Enable, за который МК может “заблокировать” себе питание (за идею спасибо Дмитрию Карманову). Вот пример со стабилизатором me6212c33m5g на 3.3V (стоит в районе 15 руб). На схеме PWR_EN ведёт на физическую кнопку, подключенную второй ногой к питанию (батарейке), BUT_MK идёт на пин МК, который будет подавать высокий сигнал при запуске. 3V3 соответственно линия 3.3 (от неё питается сам МК и опционально что-то ещё), и BAT – батарейка.

Видео


Важные страницы


Энергопотребление arduino – ARDUINO.

MD

Допустим, вы хотите сделать мобильный проект, будь то метеостанция за окном на солнечных батареях, переносной датчик температуры/влажности/качества воздуха на батарейках или детектор инопланетян на аккумуляторе – какую основную плату arduino выбрать?

Конечно, я не беру здесь в учет, что на выбор платы определяющим фактором будет влиять ее функционал: количество портов, мощность центрального процессора, память, но, так или иначе, немаловажным “пунктом” мобильного устройства является энергопортебление. Или проще говоря, сколько времени продержится наше устройство на батарейках/аккумуляторе без подзарядки, пока не “сдохнет”.

Список участников

В наличии у меня оказалось 9 основных плат:

Плата Особенности питания
Raspberry pi B+ microUSB (5v)
Arduino MEGA 2560 (на чипе 16u2) USB (5v), Vin (7-12v)
Arduino UNO R3 (на чипе 16u2) USB (5v), Vin (7-12v)
Arduino UNO R3 (на чипе Ch440) USB (5v), Vin (7-12v)
Arduino NANO 3. 0 (на чипе FTDI) USB (5v), Vin (7-12v)
Arduino NANO 3.0 (на чипе Ch440) USB (5v), Vin (7-12v)
Arduino LilyPad USB microUSB (5v), LiPo (3,7v)
Arduino Pro Mini 5v Vcc (5v), Raw (5-12v)
Beetle leonardo mictoUSB, in (5v)
Тестируемые платы

Особенности

На фото есть 2 пары почти одинаковые плат NANO и UNO. Основное отличие – используемый чип для соединения по USB с компьютером. В оригинальных платах UNO (100% копии оригиналов) чип стоит Atmega16u2, в аналогах – Ch440. В оригинальных NANO чип FTDI, в аналогах – Ch440.

Оригинал (копия)

Копия платы UNO на чипе 16u2:

  • Точная копия оригинальных плат
  • Драйвер на windows ставится автоматически при установке оболочки программирования Arduino IDE с официального сайта arduino.cc
  •  Дороже аналога на чипе Ch440
  • Энергопотребление выше, чем у аналога
Аналог – плата выполняет те же функции, просто немного отличается

Аналог UNO на чипе Ch440:

  • Имеет дополнительные дырки для припаивания штырьковых разъемов типа “папа”, что увеличивает удобство подключения датчиков и устройств к плате без использования breadboard
  • Некоторые аналоги имеют дырки для дополнительных аналоговых разъемов A6 и A7 (у оригинала только A0-A5)
  • Необходимо отдельно устанавливать драйвер, чтобы windows увидела плату как com-порт
  • Дешевле оригинала (копии) на чипе 16u2
  • Энергопотребление ниже, чем у оригинала
NANO 3. 0. Оригинал (копия) слева, аналог – справа

Ситуация с NANO: просто в разнице чипов (драйверов) и, соответственно, в энергопотреблении.

Какая плата лучше, оригинал или аналог? Мой совет такой. Совсем новичкам лучше оригинал: не важно энергопотребление, с breadbord количество пинов на плате не важно особо, зато есть плюс – плата заводится с пол-оборота, без установки сторонних драйверов. Так сказать, plug-and-play. Лично мой выбор – плата на чипе Ch440.

Кстати, вот и драйвер на Windows для чипа Ch440.

Arduino MEGA 2560. Оригинал (копия)

Тест энергопотребления

Честно говоря, изначально я думал что beetle leonardo окажется “менее прожорливым” участником, чем все остальные платы – скорее всего из-за самых скромных размеров из всего списка! Но результаты оказались немного другими.

Касательно самого теста – измерялась сила тока (mA) в разрыве цепи до основной платы в двух вариациях: при питании через xUSB порт стабилизированными 5v (эмуляция lipo аккумулятора и платы boost конвертера напряжения 3,7v->5v)  и при питании от 9v (эмуляция 6 пальчиковых батареек по 1,5v).

Потребление тока:

Плата5v 9v (3,7v для LilyPad)
Raspberry pi B+80..150 mA
MEGA 2560 (16u2)66 mA90 mA
UNO R3 (16u2)43 mA48 mA
UNO R3 (Ch440)18 mA19 mA
NANO 3.0 (FTDI)62 mA57 mA
NANO 3.0 (Ch440)20 mA24 mA
LilyPad USB15 mA9 mA
Pro Mini 5v17 mA18 mA
Beetle leonardo21 mA

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

Плата5v 9v (3,7v для LilyPad)
Raspberry pi B+0,750 W
MEGA 2560 (16u2)0,330 W0,810 W
UNO R3 (16u2)0,215 W0,432 W
UNO R3 (Ch440)0,090 W0,171 W
NANO 3. 0 (FTDI)0,310 W0,513 W
NANO 3.0 (Ch440)0,100 W0,216 W
LilyPad USB0,075 W0,033 W
Pro Mini 5v0,085 W0,162 W
Beetle leonardo 0,105 W

И график (меньше – лучше), построенный по этой таблице, как результат:

Сравнение энергопотребления arduino и raspberry (Ватт)

Моменты, которые нужно уточнить:

  • Потребляемый ток у raspberri pi скачет в пределах 80..150 mA при простое, и эта плата питается только от microUSB 5v. Raspberry PI B+ включен в тест ради интереса – все-таки это немного другой класс устройств. Это полноценный компьютер с мощным процессором для сложных задач, обработки видео и аудео, работы с камерами и внешними дисками… но и, конечно, с возможностью подключать датчики и сенсоры!
  • Beetle leonardo питается тоже исключительно 5v
  • У всех плат при питании от 9v энергопотребление выше, чем при питании от 5v – это результат использования стабилизатора напряжения, который позволяет питать платы в широком диапазоне напряжений (7-12v)

Результаты теста

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

LilyPad USB! При питании от аккумулятора 3,7v плата потребляет всего 33mW! Также, пятерку лучших в этом тесте составляют (при питании от 5v):

  • Arduino Pro Mini 5v – 85 mW
  • Arduino UNO R3 (Ch440) – 90 mW
  • Arduino Nano 3. 0 (Ch440) – 100 mW
  • Beetle leonardo – 105 mW

Они вписываются в 100 mW. Так что, делайте выводы при выборе платы для измерения температуры и влажности за окном, если хотите, чтобы метеоустройство было автономным!

Лично мой выбор:  Arduino Nano 3.0 (Ch440) – из-за ее следующих качеств:

  • миниатюрный размер
  • дает напряжения: 5v и 3,3v
  • много пинов
  • USB порт на плате для программирования

Примечания:

  • beetle leonardo и pro mini не дают 3,3v
  • LilyPad дает исключительно 3,3v
  • у pro mini нет USB порта, и ее нужно программировать через USBtoTTL адаптер
  • у LilyPad и beetle leonardo маловато портов для моих проектов
  • а UNO R3 (Ch440) слишком громоздкая

Этим и обусловлен мой выбор Arduino Nano 3.0 (Ch440) в качестве основной платы для мобильных устройств.

Уменьшение энергопотребления в спящем режиме

Также для автономных или мобильных проектов может понадобится интересная библиотека: JeeLib library. Она поможет загнать вашу плату в глубокий сон (что значительно снижает энергопотребление) и будить только по необходимости! Про использование библиотеки и немного больше можете почитать на английском на сайте openhomeautomation.

Удачных вам экспериментов!

 

Понравилось это:

Нравится Загрузка…

Похожее

как измерить потребляемую мощность для схемы arduino



как лучше всего определить размер батареи для автономных цепей arduino, которые включают в себя модуль 5V pro mini, esp866 WiFi и датчик температуры. Мне нужна батарея для поддержки системы в течение 1 года, и модуль WiFi будет посылать данные каждые 15 минут. Я подключил его к адаптеру поставщика электроэнергии, а затем подключил к интеллектуальному счетчику энергии, но он был недостаточно чувствителен, чтобы определить потребление энергии ( например, мощность: 0.7W, потребление энергии: 0 в течение 10 часов). Итак, какие компоненты мне нужны и как, Пожалуйста, помогите, большое вам спасибо.

arduino battery
Поделиться Источник Ricky Zheng     27 декабря 2014 в 01:51

3 ответа


  • Измерение энергопотребления для WiFi

    Я хочу измерить, сколько батареи потребляется при включении Wifi, сканировании и подключении к an AP. Я попробовал сделать это с помощью API, чтобы увидеть уровень заряда батареи. Но это API дает уровень заряда батареи по шкале 100, который недостаточно детализирован, чтобы узнать мощность,…

  • Потребляемая мощность приложения

    Есть ли какой-нибудь способ узнать мощность, потребляемую приложением? Например, если у меня есть около десяти пользовательских приложений, работающих на моем ноутбуке, и я хотел бы знать, сколько энергии потребляет каждое приложение в среде Linux?



2

Существует схема с открытым исходным кодом для измерения очень малых токов, которая была описана в журналах “гайки и вольты” и “кремниевые чипы”. Если вам нужна точная мера энергопотребления, эта схема может сделать то, что вы хотите. См . http:/ / www.eevblog.com / проекты/ucurrent/

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

Поделиться Bradford Needham     28 декабря 2014 в 17:44



0

Если вы используете компоненты, предназначенные для использования в коммерчески продаваемом оборудовании (Wifi и т. д.), У вас должны быть хорошие характеристики в отношении мощности и т. д. Будь я на вашем месте, я бы получил спецификации для базового Arduino, памяти, WiFi, сети и датчика температуры. По крайней мере, на два, а лучше на четыре, и используйте это для расчета емкости батареи. Затем я бы нашел батарею, которая отвечает моим требованиям, учитывая потери срока годности и т. д.

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

Чтобы проверить, найдите самую большую энергетическую свинью; я подозреваю, что это WiFi на порядок. Затем увеличьте коэффициент использования свиньи (например, WiFi) в десять раз и измерьте потребление энергии (возможно, используя меньшую батарею, предложенную другими).

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

Поделиться Taylor Kidd     29 декабря 2014 в 22:18



0

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

Поделиться tomasbedrich     27 декабря 2014 в 02:20



Похожие вопросы:


Как измерить мощность сети (сигнал WIFI) в windows-CE?

Как измерить мощность сети (сигнал WIFI) в windows-CE ?


Как измерить мощность, потребляемую моим алгоритмом?

У меня есть алгоритм обработки изображений, работающий на платформе ARM-Cortex-A8/Ubuntu 9.01, и я должен измерить мощность, потребляемую моим алгоритмом, кто-нибудь знает, как это сделать? Есть ли…


Как измерить мощность, потребляемую алгоритмом C при работе на процессоре Pentium 4?

Как я могу измерить мощность, потребляемую алгоритмом C при работе на процессоре Pentium 4 (и любой другой процессор тоже подойдет)?


Измерение энергопотребления для WiFi

Я хочу измерить, сколько батареи потребляется при включении Wifi, сканировании и подключении к an AP. Я попробовал сделать это с помощью API, чтобы увидеть уровень заряда батареи. Но это API дает…


Потребляемая мощность приложения

Есть ли какой-нибудь способ узнать мощность, потребляемую приложением? Например, если у меня есть около десяти пользовательских приложений, работающих на моем ноутбуке, и я хотел бы знать, сколько…


Измерьте потребляемую мощность проектируемой системы на плате Altera DE1

Я разрабатываю процессор с использованием комплекта Altera DE1. Я буду запускать тестовый стенд, чтобы подчеркнуть процессор. Я хочу знать, есть ли какой-либо способ измерить только потребляемую…


Как измерить объем памяти или RAM, потребляемый кодом на Arduino Mega или Due

Кто-нибудь может сказать мне, как измерить потребляемый RAM для конкретного кода, работающего на Arduino Mega или Due.


Измерьте электроэнергию, потребляемую браузером для визуализации веб-страницы

Есть ли способ рассчитать электроэнергию, потребляемую для загрузки и рендеринга веб-страницы (frontend)? Например, я думал о ‘test’, сделанном с phantomjs: загрузка веб-страницы прокрутите страницу…


Как измерить производительность (потребляемую память) apache2 и nginx?

Я хочу измерить производительность серверов apache2 и nginx. В результате я ожидаю графиков, как на этом сайте . Я могу измерить запрос в секунду , используя следующие инструменты: httperf , ab ,…


Получить потребляемую мощность из приложения Android

Для теста, который мы проводим, нам нужно измерить энергопотребление, которое использует наш сервис background android. Можно ли получить потребляемую мощность в мАч, которую наше приложение…

Каковы простые способы снизить энергопотребление Arduino? [Дубликат]

Моим первым шагом было бы определить, что использует большую часть мощности / тока, и решить эту проблему.

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

Например, я согласен, что уменьшение напряжения питания микроконтроллера снижает потребление энергии. Однако, если UC находится в основном в режиме ожидания и активен только 1% времени, то снижение потребляемой мощности имеет значение только в том случае, если UC занимает значительную (например, более 20%) от общего бюджета мощности.

Например, если ваши датчики температуры включены постоянно при 1 мА, то это всего 2 мА при 100%. Сравните это с активностью ОК в 1% времени при 10 мА, что в среднем составляет 1% * 10 мА = 0,1 мА, поэтому в 20 раз меньше.

Таким образом, вывод должен был бы задействовать датчики температуры. Сделайте так, чтобы uC включал / выключал их (или их питание, возможно, вы можете просто подать Vdd датчиков температуры с вывода I / O на uC). Даже если температурные датчики стабильны только после подачи напряжения питания в течение 5 секунд, это все равно поможет, если вы будете измерять температуру один раз в минуту.

Я обычно делаю таблицу с активным временем (в%, так что в основном это рабочий цикл), потреблением тока и эффективным средним током (который является просто произведением этих двух). Это помогает мне определить, куда движется ток / сила, и это говорит мне, как я могу улучшить его.

Что касается повышающего преобразователя: он может вам не понадобиться, если все компоненты также могут работать от 3,5 до 4,2 В. Микросхема ATmega может работать, некоторые могут даже работать при 1,8 В (вам может потребоваться изменить напряжение «Brown Out» в настройки предохранителей хоть). Некоторые повышающие преобразователи имеют низкий ток покоя (утечка тока, когда ток при 5 В равен нулю), но не все это делают.

Большинству конструкторов цепей нравится иметь стабильное напряжение питания, скажем, 3,3 В. Однако большинству микросхем на самом деле все равно! Пока это в их полезном диапазоне. Конечно, для высокой точности / низкого уровня шума все может быть иначе. Моя точка зрения: вам не всегда нужно стабильное / регулируемое напряжение питания. Удаление этого LDO / повышающего преобразователя может сэкономить немного тока.

Питание Arduino Mini Pro с помощью аккумулятора CR2032 в качестве пульта дистанционного управления

You should take a look at ATmega328P datasheet

На странице 2 говорится: «Шесть режимов сна: холостой ход, уменьшение шума АЦП, энергосбережение, выключение, резервный и расширенный режим ожидания»

These are the modes which can be used to put Arduino Pro Mini in stand-by. You can search for them at datasheet and choose the only that better applies to you. To learn more about sleep mode and other methods to save battery, you can take a look at this source: Arduino Low Power – How To Run ATmega328P For a Year On Coin Cell Battery

В таблице данных аккумулятора вы должны обратить внимание на его заряд:

Типичная емкость: 240 мАч (до 2,0 вольт)

Это означает, что от 3 до 2 вольт он потребляет 240 мАч. Это заряд, который вы можете ожидать использовать. Используя ставки потребления, которые вы указали выше

NRF24L01: 10 mA per second (low-ball)
ATmega328P: 5 mA per second (low-ball)
CR2032: 240 mAh
Time: 240mAh/(10mA + 5mA) = 16 hours

Это не так много. Чтобы увеличить эту автономию, ссылка, которую я опубликовал выше, весьма полезна, потому что она покажет вам альтернативы, такие как удаление регулятора напряжения, которое резко сократит ваше потребление. Теперь, если вы чувствуете, что действительно приключений, вы можете взглянуть на то, как разгонять доску: Arduino pro mini @ 1MHz – 1.8V . Это очень эффективный способ экономии энергии, когда частота часов не обязательна.


ИЗМЕНИТЬ после комментариев:

16 часов были рассчитаны с использованием 5 мА для Arduino (это значение для потребления энергии, которое можно ожидать в активном режиме) и 10 мА для NRF24L01. Вы должны оценить потребление спящего режима для обоих и процент времени в спящем режиме, если вы хотите оценить автономию. По ссылке, которую я отправил вам в спящий режим, есть несколько таблиц с потреблением энергии в разных конфигурациях.

ATmega328P может работать с минимальным значением 1,8 вольта, тогда как nRF24L01 + может работать с минимумом 1,9 В – см. таблица . Так что, вероятно, у вас будет чуть больше 240 мАч для работы. Ваша батарея не будет иметь 3В все время. Он начнется с 3V (может быть, немного больше) и постепенно уменьшает его напряжение, поскольку заряд подается в схему. Как только напряжение будет ниже 1.9V, nRF24L01 + не будет гарантированно работать должным образом.

Определенно, чтобы спать Pro Mini, просто пробуждая его при использовании, это правильный способ дизайна этой схемы. Согласно эта ссылка выше, энергопотребление для Arduino должно составлять 0,90 мА. В пункте 5.1 nRF24L01 + datasheet описано, что он потребляет 0,32 мА в режиме ожидания II. Если вы спите Pro Mini, скажем, в 90% случаев, не снимая светодиоды или регуляторы напряжения, вы можете оценить, что

t = 240mAh * (0.1/(5mA+10mA) + (0.9/(0.9mA+0.32mA)) = 178.65 hours

Если вы используете стратегии снижения энергопотребления Arduino, как и те, которые я вам пришлю, вы можете увеличить это время. Вы также сэкономите энергию, если вы измените nRF24L01 + из режима ожидания 2 в режим ожидания 1. Проверьте базу данных, чтобы узнать, какой из них соответствует вашим потребностям.

Реле электромеханическое ДО 250V 10 А. 2- канала 5V для Arduino

Общие сведения

Модуль электромеханического реле на 2 канала — позволяет коммутировать цепи как переменного, так и постоянного тока до 10А. Но рекомендуется коммутировать цепи с током до 7А. 

Drok USB Meter .Он подключается к USB-порту и имеет гнездовой USB-разъем для подключения любого USB-устройства, такого как Arduino. ЖК-экран этого USB-ключа показывает напряжение и потребляемую мощность.

К сожалению, частота обновления ЖК-экрана слишком мала, поэтому на рисунке выше видна только часть дисплея.

Это устройство можно найти на Amazon или eBay по цене от 10 до 40 долларов.

Я создал две разные программы для работы на платах Arduino:

  1. Базовая пустая setup () {} loop () {} program
  2. Программа, которая будет печатать серии Фибоначчи через виртуальный последовательный порт

Вот мои результаты:

Uno Нано мега 101
Редакция R3 R3 R3 R1
ЦП ATmega328 ATmega328 ATmega2560 Intel Curie
Напряжение 5.10 В 5,10 В 5,10 В 5,10 В
Программа № 1 Текущая 144 мА 35 мА 79 мА 66 мА
Программа # 1 Power 734 мВт 179 мВт 403 мВт 336 мВт
Программа № 2 Текущая 144 мА 35 мА 81 мА 68 мА
Программа № 2 Power 734 мВт 179 мВт 413 мВт 347 мВт

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

Uno Нано мега 101
Редакция R3 R3 R3 R1
ЦП ATmega328 ATmega328 ATmega2560 Intel Curie
Тактовая частота 16 МГц 16 МГц 16 МГц 32 МГц
Средняя мощность 734 мВт 179 мВт 408 мВт 342 мВт
Мощность / скорость 46 мВт / МГц 11 мВт / МГц 26 мВт / МГц 11 мВт / МГц

Из вышесказанного кажется, что наиболее эффективными являются Nano и 101.На самом деле удивительно, что даже Mega эффективнее Uno.

Еще меня заинтересовала разница в энергопотреблении между использованием внешнего гироскопа и акселерометра, такого как чип MPU6050, и встроенным гироскопом на Arduino 101.

Для своих тестов я использовал простую программу, использующую алгоритм Мэджвика, которая выводила показания акселерометра и гироскопа на последовательный порт. Я использовал тот же алгоритм для проверки бортового и внешнего гироскопов.Эта программа была полезна при использовании бортового гироскопа Arduino 101.

Я обнаружил, что при использовании гироскопа / акселерометра требуется около 2 мА, , а с моим напряжением 5,10 В это составляет около 10 мВт и мощности. Вот мои результаты:

Uno 101
Базовая мощность 734 мВт 342 мВт
Питание с MPU 6050 744 мВт 352 мВт
Питание от бортового гироскопа 352 мВт

Оказывается, встроенный гироскоп / акселерометр потребляет столько же энергии, сколько и внешний MPU6050!

Для Arduino Nano не забудьте получить драйвер, поскольку он не входит в установку Arduino IDE.

145

Баллы

145

Баллы

Планирование схемы с учетом энергопотребления

При первом планировании схемы мы склонны думать о том, как заставить ее работать. Однако потребление энергии, как правило, рассматривается только на более продвинутых стадиях проекта. В этом есть смысл, поскольку вы сначала хотите убедиться, что созданная вами схема действительно работает.Но есть веские причины подумать о блоке питания Arduino с самого начала.

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

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

Блоки питания Arduino

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

Батареи

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

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

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

Щелочные

Щелочные батареи основаны на кристалле, который после использования уже невозможно собрать снова.Таким образом, они не перезаряжаемые. И их плотность энергии тоже не такая уж и впечатляющая: щелочные батареи 9 В при постоянном использовании действительно разряжаются очень быстро. С учетом сказанного, щелочные батареи безопасны и распространены повсеместно, а также являются отличным способом поддерживать работу маломощных цепей.

«Тест 9-вольтовых щелочных батарей» от quiethut.com под лицензией CC BY 2.0

Никель-кадмий (NiCd)

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

Никель-металлогидрид

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

Литий-ионный

Вот еще одна легкая технология, которая отлично подходит для портативной электроники. Он работает с использованием ионов лития, которые перемещаются от одного электрода к другому во время разряда и обратно во время перезарядки.Для безопасного использования литий-ионные аккумуляторы требуют осторожного обращения. Когда они заряжаются слишком быстро или сжимаются, они, как правило, взрываются. Вы можете вспомнить пару лет назад, когда Samsung пришлось выпустить униженный отзыв после того, как их телефоны Note 7 начали гореть – это плохо с литий-ионным аккумулятором.

«Общая схема разрядки литиевой батареи» от Sdk16420 под лицензией Creative Commons Attribution-Share Alike 4.0 International.

Перезаряжаемый или неперезаряжаемый?

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

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

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

Настенные адаптеры

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

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

USB

Следует также упомянуть USB, который обеспечивает удобное средство подачи питания 5 В на вашу схему, которое затем можно преобразовать до 3,3 В для большей эффективности. USB-кабели есть повсюду, и покупка замены не вызывает затруднений.Кроме того, вы сможете подключить свою схему к перезаряжаемому USB-блоку питания, чтобы немного повысить мобильность. И Arduino UNO, и Raspberry Pi могут получать питание через USB.

Солнечная энергия

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

Солнечная энергия – не единственная форма возобновляемой энергии. Вы также можете генерировать энергию из проточной воды и ветра .Однако каждый из них имеет один и тот же недостаток; они работают только при наличии источника питания.

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

Как измерить

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

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

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

Ток относится к фактическому потоку электронов в проводящем материале, который вызывается напряжением.

Общая энергия (мощность), потребляемая электронной схемой, может быть измерена в ваттах.Мы можем определить мощность цепи, просто умножив напряжение (в вольтах) на ток (в амперах). Итак, если у нас есть источник питания 5 В и мы потребляем 500 мА, мы собираемся использовать 2,5 Вт.

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

Треугольник закона Ома: напряжение, ток, сопротивление

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

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

Оптимизация энергопотребления Arduino

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

Контроллер

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

Например, вы могли разработать проект на Arduino UNO, используя ATmega328.Это мощный и гибкий микроконтроллер с большим количеством контактов GPIO и тактовой частотой до 20 МГц. Но что, если вашему проекту это не нужно? Что, если вы, скажем, просто регистрируете температуру с часовыми интервалами? В таком случае, возможно, стоит переключиться на контроллер меньшего размера, например, на автономный микроконтроллер ATtiny85.

«Шаблон микроконтроллера ATTiny» от jieq под лицензией CC BY 2.0

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

Дополнительные компоненты

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

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

Также стоит подумать о том, какой контроль вы собираетесь иметь над датчиками и сколько энергии они потребляют. Например, простой LDR будет более эффективным, чем датчик освещенности RGB – и поэтому, если ваша схема не нуждается в дополнительных функциях, простота обычно предпочтительнее.

Преобразователи мощности

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

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

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

Чтобы получить максимальную отдачу от преобразователя мощности, вам нужно выбрать наиболее эффективный из имеющихся и тот, который лучше всего подходит для вашей схемы.Circuito.io выберет для вас преобразователь мощности, но он будет популярным и легко отслеживаемым. Если вы готовы потратить немного времени на поиски чего-то, что лучше всего подходит для вашей схемы, вы сможете сделать свою конструкцию еще более энергоэффективной.

Мы рассмотрели несколько факторов, которые влияют на энергопотребление цепи. Но когда вы придете к завершению своего дизайна, вы захотите запомнить несколько дополнительных уловок и советов, которые сбьют несколько лишних миллиампер и сделают ваш дизайн максимально эффективным.

Расширенные методы оптимизации энергопотребления Arduino

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

Power LED

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

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

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

Мы уже обсуждали преимущества уменьшения размера вашего микроконтроллера. Но даже если вы хотите использовать ATMega328, который поставляется в стандартной комплектации с платой Arduino, все равно стоит перейти на автономный контроллер или альтернативный контроллер с низким энергопотреблением, такой как Arduino Pro Mini. Это позволит вам отказаться от шины питания USB и других подобных компонентов.

Замена регулятора напряжения

По умолчанию платы Arduino поставляются с линейным регулятором, который эффективен при стандартной работе. Но когда мы переводим плату в спящий режим (к которому мы вернемся через мгновение), эта эффективность имеет тенденцию к падению из-за небольшого количества тока, протекающего через контакт заземления. Когда в спящем режиме мы потребляем лишь немного энергии, это крошечное количество начинает составлять значительную часть общей потребляемой мощности. Так что же нам с этим делать?

Первый вариант – просто полностью удалить линейный регулятор из схемы.Как только вы это сделаете, вам нужно будет подать на плату соответствующее напряжение 3,3 В. Микроконтроллер, вероятно, не будет особо беспокоиться о входящем напряжении – средний ATMega328 может работать с напряжениями до 5,5 В и до 2,7 В. Другие части вашей схемы могут быть не такими простыми.

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

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

блок питания с линейным регулятором напряжения

Переключение регуляторов несколько сложнее. Они работают путем включения и выключения ряда переключателей, во многом как генератор ШИМ на вашем микроконтроллере.Увеличивая или сокращая рабочий цикл, регулятор может изменять нагрузку.

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

Теперь вы можете подумать, что это означает, что импульсные регуляторы всегда более эффективны.Но нам нужно учитывать поведение регулятора при очень низких уровнях входного сигнала. Именно здесь эффективность имеет тенденцию к значительному падению – с 80% или выше до 10% или даже ниже. По этой причине стоит внимательно изучить таблицы данных, прежде чем инвестировать в регулирующий орган. Ищите ток покоя – это количество, потребляемое регулятором, когда он ничего не делает. Чем ниже, тем лучше.

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

Программное обеспечение

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

Спящий режим при отключении питания

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

Мы использовали функцию «глубокого сна» для нашего дистанционного управления жестами, например, так как мы хотели продлить срок службы батареи.Поэтому вместо того, чтобы схема всегда была «включена», мы устанавливаем ее в «спящий режим» до тех пор, пока она не получит сигнал от датчика жестов через вывод прерывания Arduino.

Отключение встроенных периферийных устройств

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

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

В заключение

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

Энергопотребление Arduino | Udemy

Группа инженеров по обучению

Команда опытных инженеров, делящихся знаниями со всем миром

Группа инженеров по обучению – ведущая команда в индустрии микроконтроллеров с более чем 13-летним опытом в обучении и выполнении практических проектов .

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

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

Группа инженеров по обучению занимается программированием и микроконтроллерами с 2007 года. .Мы участвовали во многих проектах. За эти годы мы получили хорошее представление о потребностях студентов и преподавателей. Мы стремимся делиться с вами всеми нашими коллективными знаниями. По состоянию на 2018 год мы уже обучили более 250 тыс. Студентов, из них .

В настоящее время у нас более 100+ курсов по Удеми

Педагог и автор «Образовательной инженерии».

Ашраф – педагог, инженер мехатроники, любитель электроники и программирования, производитель .Он создает онлайн-видеокурсы на канале EduEng на YouTube (более 4 миллионов просмотров, более 20 тысяч подписчиков) и автор четырех книг о микроконтроллерах.

В качестве главного инженера по вопросам образования с 2007 года в компании Educational Engineering Team, которую он основал, миссия Ашрафа заключается в изучении новых тенденций и технологий, помощи в обучении и улучшении мира.

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

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

Основной навык Ашрафа заключается в пошаговом объяснении сложных понятий с помощью видео и текста. Обладая более чем 11-летним опытом преподавания в высших учебных заведениях, Ашраф разработал простой, но всеобъемлющий и информативный стиль обучения, который ценят студенты со всего мира.

Его страсть к микроконтроллерам и программированию и, в частности, к миру Arduino, микроконтроллера PIC, Rasberry Pi руководила его личным развитием и своей работой через образовательную инженерию.

Онлайн-курсы Ashraf помогли более 250 000 человек со всего мира стать лучше и сделать отличную карьеру в отрасли.

Группа инженеров по обучению предлагает курс по

Проектирование схем, моделирование и изготовление печатных плат

Arduino, микроконтроллер PIC и Raspberry Pi

Программирование на C, Python и других языках программирования

Промышленное программирование и автоматизация ПЛК

3D-дизайн и моделирование

ESP и IoT World

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

Измерение энергопотребления IoT: использование Arduino для измерения Raspberry!

Время чтения: 3 минуты

Срок службы батареи – один из важных критериев, который вы должны тестировать при разработке IoT (Интернет вещей) . Отсутствие измерения энергопотребления вашей платформы может привести к потенциальным проблемам:

  • Недовольство пользователей
  • Снижение срока службы батареи
  • Увеличение стоимости обслуживания платформы

Итак, как вы можете измерить энергию?

В этом блоге мы несколько раз объясняли, как измерять энергию только с помощью программного обеспечения, особенно на Android.Но измерения на платформах IoT не так просты: нет встроенного датчика энергии, нет API… Вам нужно будет провести аппаратные измерения.

Электрические объяснения

Чтобы измерить потребление энергии, вам необходимо использовать шунт. Шунт – это резистор, который вы вставляете в свою электронную схему: когда ток проходит через резистор небольшого номинала, создается дифференциальное напряжение. Энергию можно рассчитать по закону Ом: мощность = напряжение x ток .

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

Низкая сторона проще, но имеет некоторые недостатки, особенно платформа с переключаемыми нагрузками, которые создают проблемы с контуром заземления. Как правило, это относится к IoT, с датчиком, контроллером и т. Д. Итак, давайте перейдем к измерениям на стороне высокого уровня.

Быстрое измерение платформы IoT

Arduino предоставляет руководство по измерению энергии с помощью коммутационной платы INA219 с точностью 1%.

Подключение действительно просто, если вы используете макетную плату и следуете руководству Adafruit.

Чтобы проверить установку, вы можете запустить пример. Вы получите четыре информации:

  • Напряжение шины: это полное напряжение, наблюдаемое тестируемой схемой. (Напряжение питания – напряжение шунта).
  • Shunt Voltage: напряжение шунта!
  • Ток: ток, полученный с помощью закона Ома и измерения напряжения
  • Напряжение нагрузки: общее напряжение

Измерение объекта IoT

Теперь мы можем интегрировать платформу IoT, для этого мы выбрали Raspberry.Довольно потрясающе измерить Raspberry с помощью Arduino!
Первая трудность – вставить шунт между положительной точкой питания батареи и Vin. Первый вариант: вы интегрируете его прямо на плату Raspberry, разрезая схему. Мы выбрали менее навязчивый вариант, интегрировав его в кабель питания. Raspberry питается от USB, и нам нужно поставить шунт между V + компьютера и V + Raspberry:

В реальной жизни это дает:

Теперь вам нужно запустить пример кода и получить ток платформы. и напряжение!
Для Raspberry без конфигурации (без ОС, без карты) я получил в среднем 230 мВт.

Тогда вам нужно только приступить к мероприятиям по проекту! В качестве примера вот как я провел измерение метеостанции Arduino.

Digital Sobriety Expert
Автор книг «Зеленые паттерны», «Зеленые ИТ – выработка энергии для информационных систем»,…
Спикер (VOXXED, Люксембург, EGG, Берлин, ICT4S, Стокгольм,…)
Основатель лаборатории Green Code Lab , национальная ассоциация программного обеспечения ecodesign

Энергопотребление для платы Intel® Edison для Arduino *

Чтобы получить данные о потребляемой мощности, мы измерили величину тока, потребляемого платой Intel® Edison для Arduino *.Собранные данные показывают диапазон энергопотребления от низкого до высокого.

В тестах использовались две разные конфигурации – Wi-Fi отключен и Wi-Fi включен. Напряжение, используемое для испытаний, составляло от 7 до 15 В.

Комплект Intel® Edison для Arduino * (Wi-Fi отключен)

Среднее энергопотребление платы с отключенным Wi-Fi составляет около 0,5 Вт.

Напряжение
[В]
Ток
[A]
Мощность
[Вт]
7 0.069 0,483
8 0,055 0,44
9 0,05 0,45
10 0,047 0,47
11
11
12 0,043 0,516
13 0,041 0,533
14 0.038 0,532
15 0,036 0,54

Комплект Intel® Edison для Arduino * (Wi-Fi включен)

Среднее потребление платы с включенным Wi-Fi составляет около .6 Вт.

Напряжение
[В]
Ток
[A]
Мощность
[Вт]
7 0.08 0,56
8 0,071 0,568
9 0,064 0,576
10 0,059 0,59
11 0,071
12 0,05 0,6
13 0,048 0,624
14 0.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *