PIC18 Lab. Experiment #2. DHT22.

Если вы помните, некоторое время назад, я разрабатывал код для взаимодействия с датчиком влажности DHT11. Этот же код с датчиком был внедрен в один проектик, по результатам его работы могу сказать, что я не в восторге от его работы и решил потестить DHT22, ну и сделать задел для будущего проекта под PIC18.

dht22

Заглянем в даташит:

Dht22_DatasheetЗначительно лучше чем в DHT11, как диапазоны так и разрешения по обоим параметрам.

Попытаемся посмотреть, что выдает датчик:

И вот, что я получил:

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

0b00000001 0b10101101 0b00000001 0b00000101 0b10110100

1 173 1 5 180

Контрольная сумма 180 = 173 + 1 + 5 + 1 = ОК

Update: все встало на свои места, я вместо 20мс, сделал задержку на 20мкс, с нормальной задержкой все как и должно быть.

А теперь самое главное – конверсия, как некоторое время назад мне подсказал Сергей Евстратов, нужно просто представить два байта как один int.

Получается RH = 42.9%, T = 26.1 градус

Вроде похоже на правду. Двигаемся дальше!

Я решил внести несколько изменений в версию прошлого кода:

  1. Выбор фронта для срабатывания прерываний. В прошлой версии я переключался на возрастающий фронт, а сейчас я внезапно понял, что по ниспадающему фронту работать даже проще.
  2. В прошлой версии обработка производилась на лету, значение таймера записывалось в переменную и тут же производился анализ и принималось решение бит 0 или 1. Здесь же во время отклика датчика значения временных промежутков сливаются в массив и сохраняются, а непосредственно анализ происходит уже после этого.

Собственно принцип работы полностью такой же как и в прошлой версии, поэтому сразу код:

А вот результат работы:

DHT22_result

Ну и исходники.

PIC18 Lab. Experiment #2. DHT22.: 2 комментария

  1. Wow, great forum topic.Really looking forward to read more. Shingleton

    Ответить

    sarge Ответил:

    Thanks,
    I’m going to translate blog into english, so I hope it’ll be more convinient for english speaking users.

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">