Читаем Программируем Arduino полностью

КонстантаЭквивалентная тактовая частотаТок (светодиод выключен), мА
CLOCK_PRESCALER_116 МГц7,8
CLOCK_PRESCALER_28 МГц5,4
CLOCK_PRESCALER_44 МГц4,0
CLOCK_PRESCALER_82 МГц3,2
CLOCK_PRESCALER_161 МГц2,6
CLOCK_PRESCALER_32500 кГц2,3
CLOCK_PRESCALER_64250 кГц2,2
CLOCK_PRESCALER_128125 кГц2,1
CLOCK_PRESCALER_25662,5 кГц2,1

Рис. 5.3. График зависимости потребляемого тока от тактовой частоты

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

Большая доля тока из 2,1 мА, потребляемого на самой низкой скорости, вероятнее всего, будет поглощена светодиодом On, поэтому, если вас действительно заботит проблема снижения энергопотребления, вам стоит аккуратно выпаять его из платы.

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

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

Более того, компоненты можно включать и выключать прямо из скетча. То есть можно, к примеру, включать АЦП непосредственно перед вызовом analogRead и затем выключать его.

Управление электропитанием осуществляется с помощью библиотеки avr/power.h, включающей пары функций включения/выключения. Например, вызовом функции power_adc_disable можно выключить АЦП, а вызовом power_adc_enable вновь включить.

Однако экономия электроэнергии за счет отключения компонентов будет получаться не очень большой. В ходе экспериментов с платой Mini Pro, питающейся напряжением 5 В и действующей на частоте 16 МГц, я установил, что, когда все компоненты включены, она потребляет ток 16,4 мА, а когда выключены — что-то около 14,9 мА, то есть снижение составило всего на 1,5 мА. Для измерений я использовал следующий скетч:

// sketch_05_02_powering_off

#include

void setup()

{

  pinMode(13, OUTPUT);

//  power_adc_disable();

  power_spi_disable();

//  power_twi_disable();

//  power_usart0_disable();

//  power_timer0_disable();

//  power_timer1_disable();

//  power_timer2_disable();

//  power_all_disable();

}

void loop()

{

}

Доступные функции перечислены в табл. 5.3. Каждая функция имеет пару с окончанием enable вместо disable в имени.

Таблица 5.3. Функции управления электропитанием для ATmega Arduino

ФункцияОписание
power_adc_disableВыключает аналоговые входы
power_spi_disableОтключает интерфейс SPI
power_twi_disableОтключает интерфейс TWI (I2C)
power_usart0_disableОтключает УСАПП (UART, интерфейс последовательной связи через USB)
power_timer0_disableОтключает таймер 0 (используется функциями millis и delay)
power_timer1_disableОтключает таймер 1
power_timer2_disableОтключает таймер 2
power_all_disableОтключает все компоненты, перечисленные выше

Энергосберегающий режим

Самый действенный способ экономии электроэнергии — перевести плату Arduino в спящий режим на время, пока она не совершает полезной работы.

Narcoleptic

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

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

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных