- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Программируем Arduino. Основы работы со скетчами - Монк Саймон
Шрифт:
Интервал:
Закладка:
Ток и аккумуляторы
Эта книга посвящена программному обеспечению, поэтому я не буду останавливаться на обсуждении аккумуляторов дольше, чем необходимо. На рис. 5.2 изображены аккумуляторы, которые можно использовать для питания плат Arduino.
Слева вверху изображен цилиндрический литий-полимерный аккумулятор емкостью 2400 мА·ч. Ниже — небольшой плоский литий-полимерный аккумулятор емкостью 850 мА·ч. Литий-полимерные аккумуляторы имеют небольшой вес, могут перезаряжаться много раз и имеют большую емкость для своих веса и размеров. Справа вверху изображен 9-вольтовый никель-металлгидридный аккумулятор емкостью 200 мА·ч. Этот

Рис. 5.2. Аккумуляторы для питания плат Arduino
аккумулятор тоже поддерживает многократную перезарядку, но создан по устаревшей технологии. Так как он имеет выходное напряжение 9 В, его можно использовать для питания плат Arduino только через встроенный стабилизатор напряжения. Вы можете приобрести специальные зажимы для подключения аккумулятора к контактам питания Arduino. Наконец, справа внизу изображена 3-вольтовая незаряжаемая литиевая батарея (CR2025) емкостью около 160 мА·ч.
Как правило, чтобы получить время в часах, в течение которого аккумулятор продержится, прежде чем полностью разрядится, достаточно разделить емкость аккумулятора в миллиампер-часах [мА·ч] на силу потребляемого тока в миллиамперах [мА]:
Время работы батареи = Емкость батареи/Потребляемый ток.
Например, если для питания 3-вольтовой платы Mini Pro использовать батарею CR2025, можно ожидать, что ее хватит на 20 часов (160 мА·ч/8 мА). Если ту же плату запитать от литий-полимерного аккумулятора емкостью 2400 мА·ч, можно надеяться, что его хватит на 300 часов (2400 мА·ч /8 мА).
Снижение рабочей частоты
Большинство плат семейства Arduino работает с тактовой частотой 16 МГц. Основное потребление электроэнергии микроконтроллером происходит в моменты, когда тактовый сигнал переключается из состояния HIGH в состояние LOW, то есть частота, на которой работает процессор, оказывает существенное влияние на потребляемый ток. Конечно, уменьшение тактовой частоты приведет к снижению быстродействия микроконтроллера, что, впрочем, может не являться проблемой.
Снизить рабочую частоту микроконтроллера ATmega328 можно прямо из скетча. Для этой цели удобно использовать библиотеку Arduino Prescaler (http://playground.arduino.cc/Code/Prescaler).
Библиотека Prescaler не только позволяет уменьшить рабочую частоту микроконтроллера, но и предоставляет свои версии функций millis и delay с именами trueMillis и trueDelay. Такая замена совершенно необходима, потому что уменьшение тактовой частоты увеличивает задержки в той же пропорции.
Скетч в следующем примере включает светодиод L на 1 с и затем выключает на 5 с, в течение которых потребляемый ток измерялся для всех возможных значений деления частоты, поддерживаемых библиотекой Prescaler.
// sketch_05_01_prescale
#include <Prescaler.h>
void setup()
{
pinMode(13, OUTPUT);
setClockPrescaler(CLOCK_PRESCALER_256);
}
void loop()
{
digitalWrite(13, HIGH);
trueDelay(1000);
digitalWrite(13, LOW);
trueDelay(5000);
}
Библиотека предоставляет множество констант деления тактовой частоты. Так, константа CLOCK_PRESCALER_1 оставляет исходную тактовую частоту 16 МГц, а противоположная ей константа CLOCK_PRESCALER_256 делит исходную тактовую частоту на 256, устанавливая ее на уровне всего 62,5 кГц.
В табл. 5.2 показаны результаты измерения потребляемого тока на всех возможных частотах, а на рис. 5.3 те же данные представлены в виде графика. Как видно на графике, кривая потребления тока быстро выравнивается, поэтому частота 1 МГц выглядит наиболее оптимальным компромиссом между частотой и потребляемым током.
Таблица 5.2. Потребляемый ток в зависимости от тактовой частоты
Константа
Эквивалентная тактовая частота
Ток (светодиод выключен), мА
CLOCK_PRESCALER_1
16 МГц
7,8
CLOCK_PRESCALER_2
8 МГц
5,4
CLOCK_PRESCALER_4
4 МГц
4,0
CLOCK_PRESCALER_8
2 МГц
3,2
CLOCK_PRESCALER_16
1 МГц
2,6
CLOCK_PRESCALER_32
500 кГц
2,3
CLOCK_PRESCALER_64
250 кГц
2,2
CLOCK_PRESCALER_128
125 кГц
2,1
CLOCK_PRESCALER_256
62,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 <avr/power.h>
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 в спящий режим на время, пока она не совершает полезной работы.