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

// sketch 04_11_analog_fast

const byte PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

const byte PS_16 = (1 << ADPS2);

void setup()

{

  ADCSRA &= ~PS_128;  // сбросить масштаб 128

  ADCSRA |= PS_16;    // добавить масштаб 16 (1 МГц)

  Serial.begin(9600);

  while (! Serial) {};

  Serial.println(PS_128, 2);

  Serial.println(PS_16, 2);

  Serial.println("Starting Test");

  long startTime = millis();

  // Далее следует код тестирования

  long  i = 0;

  for (i = 0; i < 1000000; i ++)

  {

    analogRead(A0);

  }

  // конец кода, выполняющего тестирование

  long endTime = millis();

  Serial.println("Finished Test");

  Serial.print("Seconds taken: ");

  Serial.println((endTime — startTime) / 1000l);

}

void loop()

{

}

Теперь скетч выполняется всего 17 с, то есть, грубо, в 6,5 раза быстрее, а скорость измерений увеличилась до 58 000 в секунду. Этого вполне достаточно для оцифровки аудиосигнала, хотя при наличии всего 2 Кбайт ОЗУ вы не сможете записать большой фрагмент!

Если первоначальный вариант скетча sketch_04_11_analog запустить в Arduino Due, он справится с работой за 39 с. Однако в модели Due не получится использовать трюк с регистрами портов, так как она имеет совсем другую архитектуру.

В заключение

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

<p>5. Снижение потребления электроэнергии</p>

Справедливости ради следует отметить, что и без применения специальных мер платы Arduino потребляют не особенно много электроэнергии. Обычно Arduino Uno потребляет ток около 40 мА, что при питании через разъем USB с напряжением 5 В составляет всего 200 мВт. Это означает, что она может благополучно работать около четырех часов, питаясь от аккумулятора 9 В (емкостью 150 мА·ч).

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

Потребление электроэнергии платами Arduino

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

Таблица 5.1. Потребление электроэнергии платами Arduino

ПлатаТок, мА
Uno (5 В, USB)47
Uno (9 В, внешний источник питания)48
Uno (5 В, с извлеченным процессором)32
Uno (9 В, с извлеченным процессором)40
Leonardo (5 В, USB)42
Due (5 В, USB)160
Due (9 В, внешний источник питания)70
Mini Pro (9 В, внешний источник питания)42
Mini Pro (5 В, USB)22
Mini Pro (3,3 В, непосредственно)8

Обратите внимание на то, как различается ток, потребляемый платами Arduino, питающимися напряжением 5 В, с процессором и без него. Разница составляет всего 15 мА, откуда получается, что остальные 32 мА потребляет сама плата. И действительно, на плате Arduino имеются интерфейс USB, светодиод On и стабилизатор напряжения 3,3 В, которые также потребляют некоторую мощность даже без микроконтроллера. Обратите также внимание на то, насколько меньше потребляет микроконтроллер, питающийся напряжением 3,3 В.

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

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

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

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

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

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

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

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

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