КАШАК писал(а):никак не могу разобраться с этой самой последовательностью.
Сначала микроконтроллер настраивает порт на выход и прижимает шину к минусу на время не менее 500 мкс. Затем отпускает шину, настраивает порт на вход и ожидает ответа в течение 20-40 мкс. Если датчик не ответил (не выдал низкий уровень) то микроконтроллер формирует информацию об ошибке. В случае ответа датчика, шина отпускается на время 80 мкс, после чего начинается передача значений влажности и температуры. Бит, равный нулю, представляет собой импульс длительностью 26-28 мкс, а бит единицы – длительностью 70 мкс.
Пакет информации, получаемый микроконтроллером от датчика, состоит из 40 бит (5 байт) и представляет собой следующую последовательность – байт целых значений влажности, байт десятых значений влажности, байт целых значений температуры, байт десятых значений температуры, контрольная сумма. В датчике DHT-11, в отличие от DHT-22, десятые части влажности и температуры не используются и их значение всегда равно нулю. Контрольная сумма равна сумме всех предыдущих байтов.
Данные получаешь в формате BCD, т.е. байт нужно разделить на тетрады, что бы получить цифры.
Пример можно посмотреть
здесь или другой метод
здесь, но стартовый импульс для DHT-21 короче.