Датчик DHT11: режим ожидания или выключение?

У меня есть ATmega328P, который контролирует температуру и влажность в помещении. Мне достаточно контролировать каждые 8 секунд. В эти 8 секунд я укладываю свой Atmega в сон.

Теперь я хочу узнать: влияет ли выключение DHT11 на эти 8 секунд на работу датчика или целесообразно оставить его включенным (в режиме ожидания) на эти 8 секунд?

[Выключение означает подключение Vcc датчика к GND с помощью digitalWrite(Sensor_pin,LOW);]

Кроме того, (следующий вопрос применим только в том случае, если ваш ответ на предыдущий вопрос — оставить его в режиме ожидания):-

Я хочу изменить приведенный выше проект таким образом, чтобы температура и влажность измерялись только при нажатии кнопки ввода. В этом случае следует ли мне продолжать работу DHT11?

Является ли работающий датчик DHT11 более точным, чем мгновенно включенный DHT11?

[И если вы размышляете, да, я хочу сэкономить 50 микроампер тока в режиме ожидания датчика (но, конечно, не жертвуя точностью датчика)]

, 👍1


1 ответ


Лучший ответ:

4

В такие моменты полезно обратиться к техническому описанию. В этом документе вы можете найти этот абзац:

4. Питание и пин

Питание DHT11 составляет 3-5,5 В постоянного тока. Когда питание подается на датчик, не отправляйте никаких инструкций датчику в течение одной секунды, чтобы передать нестабильное состояние. Один конденсатор номиналом 100 нФ можно добавить между VDD и GND для фильтрации питания.

Итак, вы можете видеть, что если вы полностью отключите датчик, вам придется подождать не менее 1 секунды, прежде чем вы сможете что-либо с ним сделать.

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

Поэтому вам следует спросить себя: потребляет ли работа ATMega на полной мощности в течение 1 секунды больше или меньше энергии, чем работа DHT11 в режиме пониженного энергопотребления в течение 8 секунд?

Грубо говоря, если ATMega потребляет 30 мА (примерная цифра) в течение 1 секунды (это 30 мАс - миллиампер-секунд), а DHT11 потребляет 50 мкА в течение 8 секунд, то у вас есть 0,05*8 = 0,4 мАс.

Это 0,4 мАс (спящий режим) против 30 мАс (выключенный). Поэтому я бы оставил его включенным и избежал задержки в одну секунду при полной мощности.

Другой вариант, который может сэкономить больше энергии, это:

  1. Выключите DHT11
  2. Сон 8 секунд
  3. Включите DHT11
  4. Сон 1 секунда
  5. Прочитать DHT11
  6. Перейти к 1

Конечно, это означает, что ваш цикл тогда займет 9 секунд, а не 8. Вы можете компенсировать это, проспав несколько раз, чтобы получить 7 секунд:

  1. Сон 4 секунды
  2. Сон 2 секунды
  3. Сон 1 секунда
  4. Включите DHT11
  5. Сон 1 секунда
  6. Прочитать DHT11
  7. Выключите DHT11
  8. Перейти к 1

Но, конечно, это сделает ваш сон менее эффективным — так стоит ли оно того?

,