Код в Bascom-AVR для работы с датчиком влажности/температуры DHT11. С большой долей вероятности подойдет и для датчика DHT22



$regfile = "m8def.dat"
$crystal = 1000000
$baud = 115200

Declare Sub Get_wenshidu(wendu As Byte , Shidu As Byte)

Config Serialin = Buffered , Size = 128
Config Serialout = Buffered , Size = 128


Dht_put Alias Portd.6
Dht_get Alias Pind.6
Dht_io_set Alias Ddrd.6

Dim I As Byte , Tmp As Byte
Dim J As Byte
Dim Mybyte As Byte
Dim Wenshi As String * 40
Dim Tmp_str8 As String * 8
Dim Count As Byte

Enable Interrupts

Set Dht_io_set
Set Dht_put

Print
Print "Start......"
Do
   Waitms 1500
   Call Get_wenshidu(, J)
   Print "Temperature: " ; I ; "?"
   Print "Humidity: " ; J ; "%"
   Print
Loop


Sub Get_wenshidu(wendu As Byte , Shidu As Byte)

   Count = 0
   Wenshi = ""
   Set Dht_io_set
   Reset Dht_put
   Waitms 20

   Set Dht_put
   Waitus 40
   Reset Dht_io_set
   Waitus 40
   If Dht_get = 1 Then
      Shidu = 255
      Exit Sub
   End If

   Waitus 80
   If Dht_get = 0 Then
      Shidu = 255
      Exit Sub
   End If

   While Dht_get = 1 : Wend

   Do
      While Dht_get = 0 : Wend
      Waitus 30
      If Dht_get = 1 Then
         Wenshi = Wenshi + "1"
         While Dht_get = 1 : Wend
         Else
         Wenshi = Wenshi + "0"
      End If
      Incr Count
   Loop Until Count = 40

   Set Dht_io_set
   Set Dht_put

   Tmp_str8 = Left(wenshi , 8)
   Shidu = Binval(tmp_str8)

   Tmp_str8 = Mid(wenshi , 17 , 8)
   Wendu = Binval(tmp_str8)

   Tmp_str8 = Right(wenshi , 8)
   Tmp = Binval(tmp_str8)

   Mybyte = Wendu + Shidu
   If Mybyte <> Tmp Then
      Shidu = 255
   End If

End Sub


Подключение датчика происходит по следующей схеме



Используя код выложеный выше, сигнальный провод от датчика подключается к PortD.6


   EasyEDA:  бесплатный редактор схем

   ✓ Создание схем
   ✓ Возможность симуляции
   ✓ Быстрое создание печатных плат
   ✓ Интуитивно понятный интерфейс

   Нарисуй свою схему прямо сейчас!
   Изготовление печатных плат   https://easyeda.com/order

авторизация
Логин:
Пароль:
Комментарии
Встраиваемый модуль радиоуправления на nRF24L01
21.10.2017 - exersizze:
Алгоритм включения прописан в подпрограмме Logic2, странно что у вас не включает...
Программатор USBASP
21.10.2017 - exersizze:
я свой первый usbasp программировал через LPT порт и программу Ponyprog, поэтому...
Программатор USBASP
20.10.2017 - mozga:
всем привет. вопрос:получается,сделанный(спаянный) программатор на atmega8 в это...
Встраиваемый модуль радиоуправления на nRF24L01
19.10.2017 - amg_84:
Подскажите, пожалуйста. Режим 2. Повторное нажатие любой клавиши пульта не приво...
Бесконтактный датчик температуры MLX90614
18.10.2017 - exersizze:
а с обратной стороны, подключение дисплея не видно.
Бесконтактный датчик температуры MLX90614
18.10.2017 - TSL:
Кинул фото на сюда http://s41.radikal.ru/i093/1710/0b/6064b20c764a.jpg
Пр...
Бесконтактный датчик температуры MLX90614
17.10.2017 - TSL:
Хорошо, завтра сфоткаю. Кину на хостинг или на тот-же сайт Паяльник.
Бесконтактный датчик температуры MLX90614
17.10.2017 - exersizze:
Вроде верно, я тоже использовал мегу в дип корпусе (а схема для tqfp, да)
...
Бесконтактный датчик температуры MLX90614
16.10.2017 - TSL:
exersizze спасибо что вы хоть отвечаете. Создал тему на Паяльнике, но пока там т...