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

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

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

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

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

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

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

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

, 👍1

Обсуждение

Вы пробовали провести практический тест? Запустите датчик, сделайте несколько пробных показаний? И, кстати, вы пользовались поисковиком и искали "время пробуждения"?, @MatsK

Я искал на google.com «время пробуждения DHT11», но ничего не нашел :(, @Madhuchhanda Mandal

Я выключаю DS18B20, как вы объясняете, потому что они, кажется, перегреваются, если постоянно включены. Если я выключаю свой DHT22 между показаниями, (первое) показание дает сбой примерно на 50% (неправильные значения, ошибка чтения), поэтому я оставляю его включенным., @ansi_lumen

Я погуглил «время пробуждения DHT11», нашел это: https://forum.arduino.cc/index.php?topic=58531.90, @MatsK

@MatsK Как я уже сказал, ничего "релевантного", @Madhuchhanda Mandal

Я бы не подумал, что комната может так сильно измениться за 8 секунд, уж точно не больше, чем погрешность DHT11, если только это не какая-нибудь климатическая камера или что-то в этом роде; сбавь обороты, чувак..., @dandavis


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

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

,

«Является ли работающий датчик DHT11 более точным, чем мгновенно включаемый DHT11?» Я пытался иметь в виду, является ли DHT11, который работает постоянно, более точным, чем мгновенно включаемый (который включается, ждет секунду, снимает показания и выключается) DHT11?, @Madhuchhanda Mandal

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