Энергосбережение и сон 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
- Энергопотребление ниже, чем у оригинала
Какая плата лучше, оригинал или аналог? Мой совет такой. Совсем новичкам лучше оригинал: не важно энергопотребление, с 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 mA | 90 mA |
UNO R3 (16u2) | 43 mA | 48 mA |
UNO R3 (Ch440) | 18 mA | 19 mA |
NANO 3.0 (FTDI) | 62 mA | 57 mA |
NANO 3.0 (Ch440) | 20 mA | 24 mA |
LilyPad USB | 15 mA | 9 mA |
Pro Mini 5v | 17 mA | 18 mA |
Beetle leonardo | 21 mA | – |
В сыром виде таблица потребления тока мало о чем говорит – разные напряжения, поэтому привожу таблицу расчета мощности (сила тока умноженная на напряжение) – так мы подведем все платы под общий знаменатель, и можем сравнить показатели энергопотребления.
Плата | 5v | 9v (3,7v для LilyPad) |
Raspberry pi B+ | 0,750 W | – |
MEGA 2560 (16u2) | 0,330 W | 0,810 W |
UNO R3 (16u2) | 0,215 W | 0,432 W |
UNO R3 (Ch440) | 0,090 W | 0,171 W |
NANO 3. 0 (FTDI) | 0,310 W | 0,513 W |
NANO 3.0 (Ch440) | 0,100 W | 0,216 W |
LilyPad USB | 0,075 W | 0,033 W |
Pro Mini 5v | 0,085 W | 0,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)
Результаты теста
Итак, исходя из графика, видно что безусловным победителем теста на самое меньшее энергопотребление является
- 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 часов). Итак, какие компоненты мне нужны и как, Пожалуйста, помогите, большое вам спасибо.
Поделиться Источник 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А.
Обратите внимание на то, что реле модуля срабатывает при подаче на вход уровня логического «0», а не логической «1».
Характеристики
- Питание модуля: 5В;
- Ток потребления: до 75 мА на каждый включённый канал;
- Коммутируемые модулем выходные цепи:
- до 30В постоянного тока 10A;
- до 250В переменного тока 10A;
- Сопротивление обмотки реле: 70 Ω ±10%;
- Сопротивление изоляции реле: выше 100 МОм;
- Время срабатывания реле при включении: до 10 мс;
- Время срабатывания реле при выключении: до 5 мс;
- Скорость механических переключений: до 300 операций/мин;
- Материал контактов реле: AgCdO;
- Рабочая температура: -25 … +70 °C;
- Рабочая влажность: 45 … 85%;
Подключение
- На ВЫХОДЕ каждого канала (реле) имеется три вывода, средний вывод всегда соединён с одним из соседних, а с каким именно, зависит от логического уровня на ВХОДЕ «IN» этого канала:
- Если на вход «IN» канала подать уровень логической «1», то средний вывод выхода этого канала будет соединён так как это нарисовано на плате рядом с выводами выхода канала. Такое же соединение будет при отсутствии питания модуля на выводах «Vcc» и «GND».
- Если на вход «IN» канала подать уровень логического «0», то средний вывод выхода этого канала будет соединён НЕ так как это нарисовано на плате рядом с выводами выхода канала.
Таким образом вы можете использовать реле модуля: либо как нормально замкнутое, либо как нормально разомкнутое, либо как переключающее.
Питание
Входное напряжение питания 5В постоянного тока, подаётся на выводы «Vcc» и «GND» модуля.
Дополнительно, на плате модуля имеется разъём с тремя выводами:
- «JD-VCC»;
- «VCC»;
- «GND»;
На разъёме установлена перемычка между выводами «JD-VCC» и «VCC».
Если убрать эту перемычку и подать отдельное (дополнительное) питание 5В постоянного тока на выводы «JD-VCC» и «GND» этого разъёма, то питание логики модуля будет осуществляться с выводов «Vcc» и «GND», а питание обмоток реле (каналов) модуля будет осуществляться с выводов «JD-VCC» и «GND».
Такой способ подключения позволяет избежать появления помех на шине питания «Vcc» и «GND», которые могут повлиять на работу других модулей на этой шине питания.
Подробнее о реле
Модуль построен на базе реле «SRD-05-VDC-SL-C», чем и обеспечивается его коммутационная способность. Реле модуля способно коммутировать выходные цепи с напряжением до 250В переменного тока (AC), или до 30В постоянного тока (DC).
Ток, протекающий в коммутируемых (выходных) цепях, при максимальных напряжениях, не должен превышать 10А. Входное (управляющее) напряжение 5В. Модулем можно управлять, подключив его к Arduino, уровень логической «1» выводов которой равен 5В.
Комплектация
- 1x Модуль электромеханического реле на 2 канала;
Ссылки
Лучшие аналоги Arduino | Losst
Первые компьютеры были размером с целый дом, потом, с течением времени вычислительные машины становились все меньше и компактнее, они уже могли помещаться на столе и многие пользователи обзавелись домашними компьютерами. Но сейчас технологии пошли еще дальше и компьютер может уместиться полностью на ладони.
Это микрокомпьютеры, например, Arduino. Они достаточно дешевы, имеют минимальный размер, но достаточно мощны для выполнения некоторых действий. В этой статье мы рассмотрим лучшие аналоги Arduino, которые вы можете использовать для создания своих проектов. Разберем их сильные стороны и недостатки.
Содержание статьи:
Arduino Uno
Плата Arduino имеет множество модификаций и распространяется в различных моделях. Одна из самых популярных серди пользователей – Arduino Uno. Это самое старое устройство. Оно появилось в 2005 году, как инструмент для студентов. Затем устройство было модифицировано улучшено и клонировано множество раз. Микрокомпьютер Arduino сделал революцию в программировании и электронике.
Официальная версия Arduino Uno стоит $25, но можно найти клон за $5 который будет работать не хуже оригинала. Причина платить полную цену, это разве что поддержать проект. Преимущество Arduino в простое, вам не нужно ничего настраивать, собирать полноценную операционную систему Linux, просто пишите код, компилируйте его и загружайте на устройство.
Другие преимущества – это отказоустойчивость устройства, а также расширяемость, например, если вам нужно добавить Bluetooth, вы просто докупаете недостающую плату. Недостатком Arduino Uno есть то, что здесь используется чип ATMEGA CPU, который имеет небольшое количество памяти и устройство хранения. Поэтому если вы хотите собирать данные, такие, как показания сенсоров, то вам нужно будет передавать их на компьютер.
Лучшие альтернативы Arduino
1. Raspberry Pi Zero
Raspberry Pi Zero – это, по сути, такая же самая оригинальная плата Raspberry Pi Model A+, только уменьшенная до размеров платежной карты. Вы можете приобрести ее за 5-8$. Когда устройство только появилось, оно отправлялось в качестве бесплатного подарка подписчикам журнала MagPi. Этот микрокомпьютер может запустить полноценный дистрибутив Linux и в то же время он достаточно дешевый.
Плата имеет точно такие же возможности, как и Raspberry Pi A+, на ней можно запустить Raspbian или любую другую совместимую операционную систему. Процессора с частотой 1 ГГц и 512 Мб оперативной памяти вряд-ли хватит на что-либо серьезное, но вы можете использовать устройство в качестве микроконтроллера, альтернативы Arduino.
Здесь есть 2 порта microUSB, но нет Ethernet, Bluetooth или Wifi. Но переходники и платы расширений для включения нужных вам технологий можно приобрести достаточно недорого. Это самый мощный из перечисленных микрокомпьютеров, поэтому он используется для сложных задач, которые не всегда по плечу для Arduino, например, обработка данных и визуализация.
2. NodeMCU
NodeMCU – это очень интересный микроконтроллер, который предлагает множество возможностей, особенно учитывая его цену. В отличие от Arduino, который использует 8 битный ATMEA с частотой 16 МГц, здесь используется чипсет ESP8266 с 32 битным процессором Tensilica Xtensa LX106 80 МГц, также здесь есть Wifi, встроенная поддержка TCP/IP, 4 мегабайта встроенного хранилища и 20 кб ОЗУ. В дополнение ко всему тут есть 10 выходов GPIO.
К устройству можно подключать различные компоненты, такие как мониторы, сенсоры или сервоприводы. Как и Arduino, его очень просто использовать, достаточно написать код и загрузить его на устройство по USB. Программы пишутся на Lua, это интерпретируемый язык программирования, похожий на Python или Ruby. Вы можете заказать NodeMCU за $3 из китая или найти более дорогую версию на Amazon.
3. Particle Photon
Particle Photon – это устройство для реализации различных веб-проектов. Устройство поставляется с Wifi и является одной из лучших альтернатив Arduino на данный момент. В качестве процессора используется Cortex ARM M3 с частотой 120 МГц. Писать программы для него нужно так же как и для Arduino, просто пишите код и загружаете его на устройство.
4. ESP8266
ESP8266 – это микроконтроллер с поддержкой Wifi, который набирает популярность среди энтузиастов в электронике. Он стоит дешевле Arduino, но может программироваться в той же Arduino IDE. Но для его питания нужно подавать 3.3 вольта а не 5. Устройство поставляется со встроенным регулятором питания и несколькими портами ввода-вывода.
5. Teensy
Teensy – это самая популярная альтернатива Arduino, которая может использоваться для создания любого DIY проекта. Здесь есть загрузчик, с помощью которого вы можете загружать в память программу даже с USB флешки. С помощью него вы можете эмулировать любое USB устройство, а в качестве процессора используется ARM Cortex M4 с частотой 180 МГц, и 256 Кб оперативной памяти. И здесь тоже можно использовать Arduino IDE.
6. BeagleBone
Устройство использует ARM Cortex V8 с частотой 700 МГц и 256 мегабайт оперативной памяти DDR2, а также флешку объемом 4 Гб. В качестве языков программирования могут использоваться Python, C, C++, PHP, JavaScript. Устройство поддерживает установку SD карты, а также есть USB порт, через который можно подключать различные расширения, например, Ethernet или другой компьютер.
5. MSP430
MSP430 – это альтернатива Arduino, очень похожая на оригинальную плату, но потребляет очень мало энергии, благодаря использованию 16-битного MCU. В качестве среды для разработки программ может использоваться Energia IDE. Микроконтроллер имеет собственную архитектуру что и выделяет его среди других.
6. STM32
STM32 – это дешевый 32-битный микроконтроллер, от STMicroelectronics, одна из лучших альтернатив Arduino. Здесь используется своя среда разработки Keli, а также программатор ST-Link. Устройство использует чип ARM Cortex 32-bit M3 с тактовой частотой 24 МГц и 8 кб оперативной памяти. Среди других преимуществ можно отметить низкое потребление энергии, обработку цифровых сигналов и так далее.
Выводы
В этой статье мы рассмотрели аналоги Arduino uno, которые вы можете использовать в своих проектах. А какое устройство вы бы выбрали? Что используете? Напишите в комментариях!
Как снизить энергопотребление Arduino Uno на 95%
Иногда вам нужно использовать Arduino UNO вместо чего-то более эффективного, например, Arduino Pro Mini – возможно, вы используете щит Arduino…
Иногда приходится запускать тот же проект от батареи, и каждый миллиампер на счету…
Иногда это означает, что вам придется отрегулировать UNO, чтобы он был намного более энергоэффективным, поэтому вы берете острый скальпель, переносите большую лупу и разогреваете паяльник с тонким наконечником …
Эта должность являлась частью работы по развитию, выполняемой для Агентства по окружающей среде.Он был переиздан здесь с их любезного разрешения, как часть приверженности проекта разработке с открытым исходным кодом.
Arduino UNO спроектирован как отладочная плата, а не как специальное устройство с низким энергопотреблением, он построен с несколькими вариантами дизайна, что означает, что он потребляет больше энергии, чем минимально необходимый.
TL; DR: Чтобы значительно снизить общее энергопотребление платы Arduino UNO:
- заменить линейный регулятор на DC-DC преобразователь,
- отрегулируйте цепь USB-to-Serial так, чтобы она питалась только от USB-порта,
- вырезать (или отпаять) постоянно горящие светодиоды на плате,
- использует спящий режим процессора.
Использование изменений на плате, выборочная замена компонентов и использование режима ожидания микроконтроллера могут снизить непрерывное энергопотребление Arduino UNO в режиме ожидания до 5% от потребляемой по умолчанию мощности.
Экспериментальная установка
Текущие измерения были выполнены с использованием скетча мигания, который является частью стандартного загрузчика Arduino Optiboot. Это обеспечивает сопоставимость результатов на любой плате и может быть протестировано на других контроллерах с использованием эскиза по умолчанию.Кроме того, в примерах, поставляемых с Arduino IDE, доступен скетч мигания, который можно загрузить на плату без каких-либо дополнительных программных библиотек.
Измерения тока проводились одинаково с одним и тем же оборудованием. «ΜCurrent Gold» был вставлен между источником питания 12 В и разъемом постоянного тока на Arduino UNO на линии 12 В. Во всех тестах использовался один и тот же источник постоянного тока: PowerPax SW4298D 12 В, 2 А от сети к источнику постоянного тока.
µCurrent Gold – это прецизионный адаптер тока, который преобразует результаты измерения тока через чувствительный резистор и усиливает напряжение для обеспечения очень точных измерений (± 0.1%) с очень низким падением напряжения на входе (20 мкВ / мА), чтобы минимизировать изменение питания. Выходной сигнал составляет 1 мВ / мА, поэтому его можно вручную считать в миллиамперах с помощью мультиметра в диапазоне милливольт.
Первоначальные показания были сняты в течение нескольких циклов и усреднены для получения единого значения, причем значения приведены как для встроенного, так и для включенного светодиода во время эскиза мигания светодиода.
Государство | Светодиод выключен | Светодиод на |
---|---|---|
База UNO | 53 мА | 55 мА |
Таблица 1: Базовое измерение тока Arduino Uno.
Регулятор напряжения
Самая большая потеря мощности в стандартной плате Arduino UNO связана с регулятором напряжения, который ограничивает входное напряжение на входном разъеме постоянного тока. На плате используется линейный регулятор, который рассеивает любое напряжение питания выше заданного в виде тепла. При входном напряжении 12 В и выходе 5 В около 58% входной энергии теряется, либо рассеивается в виде тепла, либо используется для внутреннего питания регулятора.
Замена регулятора на более эффективный «понижающий» преобразователь снизит потери мощности, поскольку понижающие преобразователи постоянного тока в постоянный могут иметь КПД до 92%, в зависимости от конкретного использования.
К сожалению, нет понижающего преобразователя с эквивалентным выводом, который соответствовал бы занимаемой площади SOT-223 линейного регулятора NCP1117, используемого на плате; особенно из-за нестандартного назначения контактов регулятора (1. Земля, 2. Выход, 3. Вход). Однако преобразователь постоянного тока с выводами может быть изготовлен с учетом имеющейся занимаемой площади.
По умолчанию линейный регулятор напряжения NCP1117ST50T3G 5V 1A
Traco TSRN-1-2450 – импульсный стабилизатор 5 В со встроенными конденсаторами.В качестве замены с совместимыми выводами он может использоваться вместо линейных регуляторов серии 78xx без каких-либо внешних компонентов. КПД импульсного регулятора выше линейного, с типичной передачей мощности 83%, хотя это зависит от напряжения питания.
Согните ножки, чтобы они соответствовали положению колодки
Закрепите NCP1117 и отпаяйте остаток от контактных площадок
Хотя Traco TSRN-1 не является заменой, совместимой с выводами, сгибая ножки, его можно разместить и припаять к контактным площадкам для поверхностного монтажа, с которых был снят NCP1117.
Импульсный регулятор Traco TSRN-1 припаян на место
Замена регулятора снижает текущее использование платы на 48% . Хотя это снижение может варьироваться, так как эффективность регулятора меняется в зависимости от требований тока любой управляемой цепи.
Государство | Светодиод выключен | Светодиод на |
---|---|---|
База UNO | 53 мА | 55 мА |
Traco DC-DC | 27.5 мА | 28,5 мА |
Таблица 2: Замена линейного регулятора.
Преобразователь USB в последовательный
В дополнение к основному микроконтроллеру ATmega328 на плате Arduino UNO имеется также микросхема преобразователя USB-to-Serial, ATmega16U2. Это микроконтроллер общего назначения со встроенным USB-портом, который запрограммирован для выполнения этой работы.
Хотя микросхема подходит для использования в качестве преобразователя USB-to-Serial (UART), на микросхеме не реализованы меры по энергосбережению, что означает, что он остается на полной мощности в режиме ожидания, когда не используется.Если бы микросхема могла автоматически отключаться, когда она не используется, это могло бы значительно снизить потребление тока холостого хода всей платой.
Мы решили не исследовать, можно ли перевести чип в режим пониженного энергопотребления через прошивку, поскольку для обновления прошивки на этом чипе требуется отдельный программатор ISCP, и это будет не так просто, как загрузка новой программы в основной микроконтроллер через Arduino. IDE. Вместо этого исследовались только аппаратные изменения; хотя требуется ограничение на поддержание функциональности.
Как и основной микроконтроллер, микросхема UART питается от регулируемой линии 5 В, поэтому она питается от линии USB, когда подается только питание USB, и питается от регулируемого входа постоянного тока, если он есть. Компаратор и переключатель совершенного диода MOSFET гарантируют, что будет выбран только один источник.
Согласно схеме Arduino UNO, ATmega16U2 (U3 на плате) получает питание через контакты 32 и 4 от выпрямленной линии 5 В. Поскольку эта линия физически близка к шине USBVCC, дорожки на печатной плате, ведущие к контактам 32 и 4, могут быть обрезаны и повторно подключены к USBVCC, поэтому питание микросхемы подается только при наличии напряжения на USB-соединении.Хотя это не рекомендуемое подключение питания для микросхемы, так как напряжение питания USB должно составлять 5 В ± 0,2 В, не должно быть достаточной разницы между напряжением питания и любым сигнальным напряжением, чтобы повредить микросхему.
Сначала отключите питание 5 В в нижней части платы, которое подает 5 В на 16U2 (на контакт 32). Этот чип представляет собой 32-контактный корпус, в котором контакты пронумерованы против часовой стрелки от верхнего левого угла, что обозначено точкой в верхней части корпуса. Разрез сделан по следу на обратной стороне, поэтому конденсатор между контактом 32 и землей не отделен от контакта 32.
Выявить питание 5 В для контакта 32 без ущерба для C7
Обрежьте след и удалите центральный материал
Контакт 4 также необходимо отделить от линии 5 В, и это можно сделать на верхнем слое платы. В то же время дорожка от контакта 32 должна быть открыта вместе с областью дорожки, подключенной к контакту 31, поэтому контакты 4 и 32 могут быть подключены к линии USBVCC контакта 31.
Обнаружить следы на контактах 4, 31 и 32
Обрежьте дорожку от контакта 4, не отключая локальный конденсатор
Контакты 4 и 32 могут быть снова подключены к контакту 31 с помощью одной перемычки.Используя сплошной провод 30AWG с проволочной оберткой, отрезанный до 13 мм длиной с 2 мм зачищенными на каждом конце и повернутым под углом 90 градусов в плоскости, три соединения могут быть выполнены с помощью одной перемычки.
Проволочная перемычка длиной 13 мм с концами, зачищенными на 2 мм каждый, подключает напряжение питания только к источнику USB
Обратите внимание, что простой замены источника питания недостаточно, чтобы полностью избавиться от энергопотребления микросхемы. Поскольку светодиоды RX и TX подключены к 5 В и потребляют питание через ATmega16U2, когда они горят, отключение питания от микроконтроллера означает, что они всегда будут гореть.Единственный выбор – вырезать следы от светодиодов или удалить их, чтобы их нельзя было использовать.
Обрежьте следы светодиодов RX и TX на аноде, чтобы они не пропускали ток через отключенный ATmega16U2
Замена платы таким образом, чтобы преобразователь UART питался только от USB-соединения – и, следовательно, потреблял питание только при программировании соединения – снижает потребление энергии на 44,7% . Это изменение не влияет на программирование платы; когда компьютер подключен через USB, чип питается только от компьютера, и основной ATmega328 может быть запрограммирован Arduino IDE как обычно (хотя сброс платы теперь может привести к перенумерации USB-порта подключенным компьютером).
Государство | Светодиод выключен | Светодиод на |
---|---|---|
База UNO | 53 мА | 55 мА |
USB-питание UART | 29,2 мА | 31,5 мА |
Таблица 3: Отключите питание преобразователя UART ATmega16U2.
Индикатор питания
Поскольку Arduino UNO спроектирована как плата для разработки, на ней есть непрерывный индикатор того, что плата запитана с помощью постоянно включенного светодиода.Для использования с низким энергопотреблением этот постоянный ток потребления не требуется, но светодиод можно отключить, только вырезав дорожку на печатной плате или отсоединив ее от платы.
Обрежьте дорожку между светодиодным индикатором питания и встроенными резисторами
Государство | Светодиод выключен | Светодиод на |
---|---|---|
База UNO | 53 мА | 55 мА |
Светодиод отключения | 46 мА | 48 мА |
Таблица 4: Отключите светодиодный индикатор питания, чтобы снизить ток на 7 мА.
Комбинированный
Для изменения регулятора напряжения это в основном геометрическое изменение, так как общая эффективность преобразования напряжения увеличивается, хотя обратите внимание, что это очень нелинейно. Суммарное снижение мощности со всеми изменениями составляет 76,8% .
Государство | Светодиод выключен | Светодиод на |
---|---|---|
База UNO | 53 мА | 55 мА |
Нет светодиода, USB, Traco | 12.3 мА | 13,2 мА |
Таблица 5: Замена регулятора, питания UART и светодиодного индикатора.
Спящий режим
Снижение мощности от всех трех предыдущих улучшений весьма значительно. Экономия от изменений микросхемы UART и светодиода индикатора питания складывается, поскольку они представляют собой арифметическое уменьшение используемой мощности, поскольку компоненты больше не получают питание от источника.
Впрочем, можно еще сэкономить.Используя все вышеупомянутые изменения и добавив самый низкий спящий режим для микроконтроллера ATmega328, потребление тока светодиодами платы снижено до 2,5 мА , что на 95% меньше по сравнению со стандартной платой.
Уже есть несколько отличных ресурсов для использования спящего режима на UNO. Вот некоторые из моих закладок:
Счастливое питание от батареи…
Как долго Arduino может работать от батарей? Я протестировал 6 самых распространенных плат
Недавно я построил монитор влажности почвы, который питается от литий-ионной батареи 18650.Это заставило меня задуматься, какую Arduino лучше всего использовать для проекта, основанного на батареях, и что можно сделать, чтобы увеличить время автономной работы. Итак, в этом тесте мы собираемся изучить энергопотребление ряда различных плат Arduino с целью попытаться обеспечить их питание как можно дольше, используя две литий-ионные батареи 18650.
Вот видео теста, читайте описание теста:
Установка испытательной установки
Давайте начнем с того, что покажем вам, что я собираюсь использовать для теста и как я собираюсь тестировать каждую Arduino, используя батареи.
Эти батареи 18650 имеют напряжение 3,7 каждая и имеют диапазон емкости от 1800 до 4500 мАч. Те, которые используются для этого теста, имеют более высокий уровень, на 4200 мАч, что означает, что они могут обеспечить 4,2 мА в течение 1000 часов или 420 мА в течение десяти часов или любую комбинацию тока и времени, для которой продукт равен 4200.
Для большинства плат Arduino требуется минимальное входное напряжение около 6 В, поэтому мы будем питать каждую Arduino от двух последовательно соединенных батарей с входным напряжением 7.4V для питания этих плат. Я также включил Pro Mini на 3,3 В, который может работать от одной батареи для сравнения.
Литий-ионные батареи, 4000 мАч, 18650 – Купить здесь
Мы собираемся протестировать энергопотребление 6 различных плат Arduino:
Я собираюсь загрузить базовый скетч на каждый Arduino, который имеет 8-секундную задержку, а затем мигает встроенным светодиодом в течение 100 миллисекунд, просто чтобы сообщить нам, что скетч запущен, и это будет просто повторяться.
Чипы Atmega на этих платах поддерживают несколько различных спящих режимов, которые отключают любые неиспользуемые периферийные устройства для экономии энергии, когда Arduino работает от батарей.
Я не буду вдаваться в подробности того, как это работает, но мы будем использовать библиотеку с низким энергопотреблением, которая позволит вам перевести Arduino в спящий режим на определенное время или до тех пор, пока не сработает прерывание.
Итак, я включу два теста для каждой платы, один без спящего режима и один, в котором Arduino переводится в спящий режим на 8 секунд между вспышками вместо запуска задержки.Об этой возможности я расскажу чуть позже, когда мы рассмотрим разницу в энергопотреблении.
Я подключил две батареи последовательно, а затем подключил их к мультиметру, чтобы измерить потребляемый ток. Мультиметр будет показывать потребляемый ток в миллиамперах.
Мультиметр Fluke 17B + – Купить здесь
Тестирование текущего потребления Arduino
Теперь, когда испытательный стенд и эскизы готовы, приступим к тестированию Arduinos.
Начнем с Arduino Uno, поскольку это одна из самых распространенных доступных плат.Эта плата спроектирована так, чтобы быть надежной и простой в использовании, а не энергоэффективной или компактной, поэтому я сомневаюсь, что она будет очень хороша в тесте мощности, но давайте попробуем ее в качестве отправной точки.
В каждом тесте я позволяю току немного стабилизироваться, а затем записываю средний ток, потребляемый за время задержки. Мы игнорируем пиковый ток, потребляемый, пока светодиод мигает, так как это происходит только в течение 100 миллисекунд каждые 8 секунд, что составляет всего около 1% времени.
На Uno в нормальном режиме потребление тока составляет 54.4 мА, что означает, что он проработает около 77 часов или трех дней от двух батареек 18650.
Теперь загрузим скетч сна и посмотрим, есть ли разница.
Если вы посмотрите видео, то заметите кратковременный всплеск тока, когда светодиодный индикатор мигает, а затем вернетесь в режим потребления тока с низким энергопотреблением.
Таким образом, если мы используем спящий режим между вспышками, потребление тока снижается до 38,2 мА. Таким образом, мы ожидаем, что он сможет проработать около 110 часов или 5 дней.
А теперь попробуем Arduino Mega.Мы ожидаем, что Mega будет хуже всех, так как это самая большая плата с наибольшим количеством операций ввода-вывода и самым сложным чипом.
Как и ожидалось, эта плата потребляет немного больше энергии, чем Uno, она потребляет около 77,7 мА, так что ее хватит только на 54 часа или 2 дня.
Теперь давайте посмотрим на Mega в режиме пониженного энергопотребления.
Таким образом, в режиме низкого энергопотребления Arduino Mega потребляет около 31,7 мА и проработает около 132 часов или 6 дней.
Далее у нас есть Nano. Я ожидал, что Nano будет самой эффективной платой, поскольку она предназначена для небольших, более портативных проектов и намного компактнее, чем Uno или Mega.
Nano кажется намного более эффективным, чем Uno или Mega. Nano потребляет 25,5 мА, поэтому мы ожидаем, что он проработает 165 часов или 7 дней.
Теперь давайте попробуем Nano в режиме пониженного энергопотребления.
Используя эскиз спящего режима, Nano потребляет всего 6,4 миллиампера, поэтому проработает около 656 часов или 27 дней. Итак, у нас почти месяц. Посмотрим, сможет ли Pro Micro дожить до месяца.
Теперь давайте попробуем Pro Micro в обычном режиме.
Pro Micro на самом деле оказался намного хуже, чем Nano, чего я не ожидал.Я думал, что он будет похож, если не лучше, чем Nano. Он потреблял около 43,4 мА, поэтому его хватило всего на 97 часов или 4 дня.
Теперь попробуем режим пониженного энергопотребления.
В режиме низкого энергопотребления Pro Micro потребляет 9,25 мА, поэтому он намного лучше, чем Mega и Uno, но Nano по-прежнему остается наиболее эффективным.
Далее мы попробуем включить Pro Mini. Это очень похожий форм-фактор на Pro Micro, но у него другой чип, а встроенный USB-хост удален, поэтому вам понадобится внешний программатор для подключения его к компьютеру.
Сначала мы попробуем 5V Pro Mini в обычном режиме.
Pro Mini потребляет всего 19,1 мА, что немного меньше, чем у Nano, и означает, что его хватит на 220 часов или 9 дней.
Теперь давайте попробуем 5V Pro Mini в режиме пониженного энергопотребления.
Если мы переведем Pro Mini в спящий режим между вспышками, он потребляет всего 3,2 мА, что означает, что он проработает 1313 часов или 55 дней, сейчас мы приближаемся к 2 месяцам.
Наконец, давайте попробуем 3,3 В Arduino Pro Mini и посмотрим, будет ли он лучше, чем версия 5 В.Мы по-прежнему будем питать 3.3V Pro Mini, используя две батареи 18650 для этого первого теста.
3.3V Pro Mini потребляет значительно меньше тока, чем версия 5V, всего 5,5 мА, что даже лучше, чем Nano в режиме низкого энергопотребления. Таким образом, он проработает месяц в обычном режиме, давайте посмотрим, сколько времени он проработает в режиме низкого энергопотребления.
3.3V Pro Mini потребляет всего 1,6 мА в режиме низкого энергопотребления, поэтому он проработает около 109 дней, что немного больше 3 месяцев.
Посмотрим, изменится ли это, если мы запитаем его только от одной батареи.Помните, что если мы уменьшим вдвое входное напряжение, мы ожидаем, что ток увеличится, чтобы обеспечить такое же количество энергии для Arduino.
Как ни странно, на самом деле произошло небольшое уменьшение входного тока. Вероятно, это связано с тем, что встроенный регулятор напряжения более эффективен при напряжениях, близких к рабочему. Таким образом, вы действительно увеличите время автономной работы, запитав 3.3V pro mini от одной батареи 18650. У тебя будет почти 4 месяца.
Результаты, как долго каждая Arduino может работать от батарей?
Теперь, когда мы завершили тест для каждой платы, давайте посмотрим, как долго каждая Arduino может работать от батарей.
Самая энергоэффективная плата в обоих режимах – 3.3V Pro Mini, работающая почти 4 месяца на одной батарее 18650.
Также значительно снижается энергопотребление при использовании режима сна, поэтому вам обязательно стоит подумать об использовании его, если вы разрабатываете проекты на основе батарей.
Теперь очевидно, что Arduino не может спать все время, он действительно должен что-то делать, если он подключен к проекту. Но в большинстве проектов, где вы хотели бы питать Arduino от батареек, вы используете Arduino только часть времени, в течение которого система включается.
Например, если мы посмотрим на монитор влажности почвы, почва не высохнет внезапно за пару миллисекунд, и даже полив растения занимает минуту или две, чтобы вода равномерно впиталась в всю почву. . Кроме того, ваше растение не погибнет, если его корни высохнут в течение 2 секунд. Итак, вам действительно нужно снимать показания влажности почвы только с минутными интервалами, а не каждые пару сотен миллисекунд. Таким образом, вы можете поспать Arudino на минуту, затем выполнить измерения в течение нескольких сотен миллисекунд, а затем снова заснуть, чтобы ваш Arduino спал большую часть своего времени.
Аналогичным образом, для метеостанций даже быстрые изменения температуры наружного воздуха изменяются только в течение нескольких минут. Таким образом, вы можете настроить Arduino так, чтобы он просыпался каждые 5 минут и проводил новые измерения температуры и влажности, а не проводил измерения в каждом цикле цикла.
Также важно отметить, что есть разница между переводом Arduino в спящий режим и простыми задержками в коде. Задержки не останавливают Arduino от обработки, они просто говорят Arduino не продолжать, пока не пройдет определенное время.
Вы можете думать об этом так; Задержка в коде – это как если бы ребенок снова и снова спрашивал «мы уже там?», «мы уже там?», «мы уже там?», пока не получится утвердительный ответ и он не сможет продолжить работу. Перевод Arduino в спящий режим – это все равно что установить будильник и позволить Arduino ничего не делать, пока будильник не зазвонит и не разбудит его снова. Вы значительно увеличите время автономной работы, если позволите Arduino ничего не делать между чтениями, а не постоянно проверять, истекло ли время.
Обратите внимание на следующий тест, в котором я попытаюсь еще больше снизить энергопотребление Arduino Pro Mini на 3,3 В и посмотреть, сможем ли мы заставить его работать более года на одной батарее 18650.
Сообщите мне в разделе комментариев, какие проекты Arduino на батарейках вы построили.
Arduino: сравнение энергопотребления
Когда я впервые начал работать над своим дроном Arduino, я решил, что хочу оценить, понять и сравнить компоненты, прежде чем выбирать их.Тогда я смогу придумать оптимальную комбинацию компонентов, а если нет, то, по крайней мере, я пойму, чего не хватает моему дизайну.
Я считал фундаментальным понимание энергопотребления каждого компонента, чтобы я мог спроектировать дрон с большой дальностью действия. Однако я не смог найти много данных о энергопотреблении самого ключевого компонента моего дрона: Arduino.
Сначала я был склонен просто получить «лучшую» Arduino, то есть ту, которая имеет лучшие характеристики и наибольшее количество входов / выходов.Но зачем использовать дрон, например, на Arduino Mega, если он может нормально работать на плате Arduino, которая потребляет меньше энергии? И на самом деле, реальный вопрос: какой из них будет потреблять меньше энергии по сравнению со спецификациями, которые он предоставляет?
Я решил провести небольшое исследование и на самом деле измерить и сравнить энергопотребление нескольких плат Arduino. Это не очень научно, в идеале я бы взял по несколько каждой модели.
Для своих измерений я использовал ключ Drok USB Meter .Он подключается к USB-порту и имеет гнездовой USB-разъем для подключения любого USB-устройства, такого как Arduino. ЖК-экран этого USB-ключа показывает напряжение и потребляемую мощность.
К сожалению, частота обновления ЖК-экрана слишком мала, поэтому на рисунке выше видна только часть дисплея.
Это устройство можно найти на Amazon или eBay по цене от 10 до 40 долларов.
Я создал две разные программы для работы на платах Arduino:
- Базовая пустая
setup () {} loop () {}
program - Программа, которая будет печатать серии Фибоначчи через виртуальный последовательный порт
Вот мои результаты:
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. |