Ультразвуковой датчик (пинг) и глубокий сон Arduino

Можно ли использовать ультразвуковой датчик, чтобы разбудить Arduino, которая находится в глубоком сне, когда объект обнаружен в пределах нескольких сантиметров, а затем что-то делать?

Это активный датчик: он отправляет пинги и собирает информацию об окружающей среде. Чтобы производить пинги, он должен потреблять энергию. Сколько энергии будет потреблять датчик? Как это соотносится с глубоким сном Arduino? Стоит ли держать Arduino в глубоком сне?

Ответы (2)

Для действительно маломощного решения на основе Arduino необходимо как минимум следующее:

А) ОБОРУДОВАНИЕ:

  1. Используйте как можно более низкое напряжение питания и тактовую частоту. Плата Arduino Pro Mini 3.3V @ 8Mhz — хорошая отправная точка для первого проекта.
  2. Избавьтесь от всех светодиодов на плате. Их потребление находится в диапазоне мА, что слишком велико.
  3. Избавьтесь от встроенного регулятора и замените его регулятором с малым током покоя и малым падением напряжения, таким как MCP1700 . Он может выдавать только 250 мА, тогда как AMS1117 рассчитан на ток до 1 А, но 250 мА, вероятно, будет достаточно для вашего маломощного приложения. OTOH, на всякий случай, если вам интересно: вам не нужен импульсный стабилизатор, если только ваш Arduino не проводит большую часть времени в бодрствующем состоянии и потребляет много тока, что является очень маловероятным сценарием. Высокий ток покоя импульсных стабилизаторов исключает их использование в подобных приложениях.
  4. Выберите датчик энергопотребления с низким энергопотреблением и схему формирования сигнала. Семейство логики PIR и CMOS 74HC — хорошие технологии для этого. Как указал Ник Алексеев, ультразвуковой датчик будет постоянно излучать, что сделает бесполезной экономию энергии на Arduino. Избегай это.
  5. Схема формирования сигнала должна генерировать прерывание уровня любого сигнала, подаваемого датчиком. Для этого могут потребоваться элементы времени (например, конденсаторы) или защелки. На всякий случай спроектируйте его для сбрасываемого импульса длительностью 100 мс.

Б) ПРОГРАММНАЯ СТОРОНА:

  1. Установите маломощную библиотеку Arduino, подобную этой . Используйте спящий режим ATmega328p с отключением питания.
  2. Напишите программу обслуживания прерывания (ISR). Это фрагмент кода, который будет иметь дело с тем, что необходимо сделать при событии прерывания.
  3. Настройте (присоедините) прерывания по мере необходимости. Обратите внимание, что только прерывания, запускаемые по уровню, могут вывести ATmega328p из спящего режима при отключении питания , как указано в его техническом описании:

Источники пробуждения

Здесь вы можете найти действительно полезную практическую информацию о том, как перейти на режим пониженного энергопотребления. Чтобы получить более подробное руководство, прочтите и это .

Привет @Enric, так что мой вопрос: датчик дозы пинга работает в фоновом режиме, пока ATMega находится в глубоком сне?
Да, ATMega будет в глубоком сне, а регулятор - нет (это внешняя микросхема), поэтому датчик все равно получит от него нужный ему ток. Но имейте в виду, что, как сказал Ник, мощность, потребляемая датчиком, может быть достаточно высокой, чтобы скрыть любую экономию энергии, возникающую из-за того, что MCU находится в глубоком сне!
В настоящее время схема потребляет около 22 мА, в ней есть: регулятор, ATMega 328PU, модуль RF и модуль ping... Что потребляет больше всего тока?
Вы должны выяснить это, внимательно изучив даташиты. Посмотрите также на это: gammon.com.au/power Если ваша схема потребляет 22 мА при спящем ATmega, это плохо.
Без сна он потребляет 22 мА...

Если вы действительно хотите минимизировать мощность, вам нужна не только маломощная схема микроконтроллера, но и ультразвуковой приемник, который можно отключить.

Пробудите MCU от периодического таймера с низким энергопотреблением и запустите импульс, затем вернитесь в спящий режим, по крайней мере, на время звонка датчика или на время минимального интересующего диапазона.

Разбудите MCU и приемник снова в тот момент времени, когда вы впервые ожидаете интересное эхо, и бодрствуйте только до тех пор, пока не увидите его или в течение диапазона времени, в которое может прийти ваше эхо.

Примите меры, если услышите эхо.

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

Как часто вам нужно повторять измерение, зависит от того, насколько быстро ваши объекты могут двигаться и/или насколько коротким является срабатывание выхода, и/или максимально допустимой задержкой в ​​ответ на появление или исчезновение объекта. В качестве нижней границы вы должны быть уверены, что не будете проводить новые измерения до тех пор, пока не исчезнут все многократные отражения или отражения от дальних стен старого импульса передачи.