Следующие советы помогут снизить энергопотребление вашего сенсорного узла на Arduino, что позволит ему работать на батареях в течение длительного периода времени.
Примечание: при программировании с использованием адаптера FTDI на модифицированном 3v3 Pro Mini с удаленным регулятором. Обязательно убедитесь, что ваш стабильный источник питания 3v3 подключён на контакт VCC.
- Используйте версию 3.3V Arduino Pro Mini с более низкой тактовой частотой процессора (8 МГц)
- Спать, когда это возможно, выключив Arduino и радио. Узел датчика может периодически просыпаться от прерывания по таймеру, либо с помощью присоединенного датчика, регистрирующего события на одном из выводов с поддержкой прерывания Arduino. Большинство примеров MySensors реализуют спящий режим. В этом режиме, при отключении питания процессора, датчик температуры DS18B20 и радиопередатчик потребляют (примерно) 120 мкА — что аналогично саморазряду батареи.
Отсоедините светодиодный индикатор питания Arduino, перерезав дорожку между светодиодом и резистором или просто удалите один из них. Это сохранит около 1,5 мА- От паяйте или отсоедините регулятор 3.3в, поскольку он не нужен. Отрежьте вывод Vout острым мелким скальпелем. Смотрите изображения справа, где находится регулятор. Сэкономит около 220 мкА.
- Подключите устройство к двум последовательно подключенным батареям типа АА. Вы можете использовать датчики с напряжением 5в, используя повышающий преобразователь напряжения малой мощности (см. Руководство по покупке ниже). Регуляторы напряжения уменьшают срок службы батареи из-за постоянного потребления энергии.
Короткое видео, показывающее, как удалить LED и регулятор:
[embedyt] https://www.youtube.com/watch?v=7qujkC72dYs[/embedyt]
Теоретический срок службы батареи
Срок службы батареи (для гипотетического датчика температуры) может быть рассчитан путем определения среднего тока для схемы с использованием следующей формулы:
Iavg = (t0I0 + t1I1 … + tx*Ix) / (t0 + t1 … + tx)
Обратите внимание, что эти цифры приведены в показательных целях — Они будут отличаться он ваших. Ток измеряется на батарее с напряжением 3,0 В.
Холостой ход: I0 = 28 мА, t0 = 0,65 с (с использованием задержек, заданных в эскизе) Передача: I1 = 31 мА, t1 = скажем 50 мсек (время только примерное) Сон: I2 = 120 uA (Очень грубо), t2 = 15 минут (частота выборки температуры)
Используя приведенные выше цифры, эффективный ток = 0,142 мА. Ток спящего режима трудно измерить точно, поэтому этот показатель может меняться и повлияет на расчет срока службы.
Предположим, что батарея хорошая около 2000 мАч, что дает срок службы 14 101 час, что равно 19,6 месяцам. Время жизни определяется преобладанием тока сна и частоты дискретизации. Если цифры и расчеты верны (сообщите нам, если это не так), скорее всего, батарея сядет от старости, а не от фактического использования.
Ускорьте свои батареи
Arduino 3.3V 8mhz может работать приблизительно до 2.8V, а Nrf24l01+ вплоть до 1.9V
Чтобы иметь возможность высасывать как можно больше сока из батарей, вы можете использовать DC-DC повышающий преобразователь напряжения. Этот усилитель будет преобразовывать все от 0.8V в 3.3V. Обратите внимание, что усилитель может быть немного шумным (и мешать радио).
Для исправления этого можно подключить керамический конденсатор 0,1 мкФ к GND и VOut. Чтобы избежать шума на радио (NRF24l01 +), вы можете подключить его непосредственно к батареям, так как он может работать до 1,9 В и подавать питание на Arduino через усилитель.
Измерение Уровня заряда аккумулятора
Используйте последовательно резистор 1MΩ (R1) и 470KΩ (R2), подключенный к плюсу аккумулятора и минусу, а затем среднюю точку к входу A0 на CPU.
Средняя точка может быть сглажена с помощью конденсатора емкостью 0,1 мкФ, чтобы поддержать низкий уровень шума.
АЦП настроен на использование внутреннего эталонного значения 1,1 В, поэтому Vмакс при ADC max = 1,1 * (16 + 4703) / 4703 = 3,44 В
Значение мощности батареи должно быть преобразовано в процентное значение, совместимый с вашим контроллером.
См. Следующий пример о том, как измерить уровень заряда аккумулятора на A0 и сообщить об этом контроллеру.