Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
1

Датчик DHT21 + AtTiny2313.

08.04.2014, 01:20. Просмотров 3939. Ответов 7
Метки нет (Все метки)

Доброго времени суток :)

Задался я тут целью соединить датчик температуры/влажности DHT21 с AtTiny2313. Начал читать даташит, Написано, что интерфейс 1-Wire, не совместимый с Daltos. Далее написано, что после отправки старт последовательности от МК датчик начинает выплевывать данные в количестве 40 бит. Вот на этом я и завис, никак не могу разобраться с этой самой последовательностью. Что она включает в себя? Плюс на одном форме прочитал, что требуется преобразование полученных данных по формуле. Я как-то совсем запутался. Может кто работал с данным датчиком?

Заранее спасибо всем откликнувшимся :)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2014, 01:20
Ответы с готовыми решениями:

Atmega + датчик освещенности. Помогите подобрать датчик
Хочу измерять освещенность внутри теплицы и на улице. Посоветуйте датчик освещенности и может есть...

dht21+hd44780 зависает, не работает в цикле.
Друзья, уже всю голову сломал, 100500 вариантов перебрал, но к истине не приблизился. При...

Подключение к Arduino UNO 4-х вентиляторов + датчик воды + датчик грунта
Добрый день. Прошу помочь. Требуется подключить к Arduino UNO 4 вентилятора (куллер комп....

СМ Bosch wtb86211 oe/ 01, Определить датчик влажности и датчик температуры
Добрый день. СМ пытался сделать какой то мастер и исчез вместе с датчиком влажности и датчиком...

7
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,044
08.04.2014, 01:30 2
Мда, подпись примечательная... Если у вас опыт только на этом строится, остается только посочувствовать...
0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
08.04.2014, 01:50 3
Да, очень смешно, ха-ха. Лишь бы что-то написать. А может кто-то по делу может что-то сказать? Заметьте, я не так часто тут что-то спрашиваю, только в самом крайней случае. А по AVR - так вообще первый раз.
0
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 250
08.04.2014, 02:20 4
На чем пишешь С или asm?
0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
08.04.2014, 02:26 5
C, Eclipse
0
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 250
08.04.2014, 02:35 6
Здесь есть библиотечка для ардуино/avr.
https://github.com/adafruit/DHT-simsor-library
Можно написать свою библиотечку.
Глянь пример для ds18b20 здесь:
Изменишь время задержки в функциях read/write.
0
0 / 0 / 0
Регистрация: 01.04.2012
Сообщений: 319
08.04.2014, 12:42 7
последовательность 40 бит делится на 5 байт по 8 бит (массив char massiv[5])
итого в [0][1] - влажность, в [2][3] - температура, в [4] контрольная сумма предыдущих четырех, тупо суммирование.
0
0 / 0 / 0
Регистрация: 06.12.2013
Сообщений: 37
15.04.2014, 11:34 8
вот рабочий код.
Код
DDRD = 0b00100000;  // порт D на выход
PORTD |= (0 << 6);  // датчик на PD6 прижимаю к земле на 20 мс,  можно и так &= ~(1<<6)
_delay_ms(20);       //
DDRD = 0b00000000; //переключаю порт на вход на 210 мс примерно
// я не стал париться с проверками ответа от датчика , там два уровня по 80 мс.
_delay_us(210);
for (x = 0; x<5; x++)     // принимать буду 5 байт по 8 бит:)
{
for (z =8; z>0; z--)
{
while(!(PIND & (1<<PIND6)))   // датчик прижал вывод к земле , ждем логическую единицу на
//выходе датчика
{
}

_delay_us(45);                        // датчик выдал бит если 27 мс то 0 если 70 мс то 1, жду 45 мс
if (PIND & (1<<PIND6))             // если после 45 мс на входе 1 то и в бит записываем единицу
{
b[x] |= (1<<(z-1));
}
else
{
b[x] |= (0<<(z-1));              // в противном случае у нас 0  пауза между битами у нас 50 мс
}
while (PIND & (1<<PIND6))       // здесь если после 45 мс была единица ждем её окончания
{

}
}
массив b[] имеет 5 значений b[0] влажность целое b[1] влажность после запятой ,
b[2] и b[3] аналогично температура b[4] контрольная сумма
и ещё так как z может равняться нулю не делай его без знаковым

просто сам месяц назад спрашивал тоже самое здесь все только и могут отвечать: учи, читай, пойми, а на примерах все проще понимается.
Но я сам разобрался))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2014, 11:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Помогите со схемой.Нужен датчик удара и датчик прикосновения
Купил дешёвую сигнализацию, время попользовался, теперь хочется доработать. В электроники я так...

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

NCV1124 и датчик холла и индуктивный датчик
Добрый день! Есть такая замечательная микросхема NCV1124 (даташит тут и аппноут тут). Она...

Attiny2313
Прочитал документацию, там 4 шим порта(вывода), но вот не понял дальше, пишут что 1 какой-то для...

Attiny2313
пытаюсь подключить тиньку2313 к програматору, но не могу найти SCK вход в даташите кто знает?

ATTiny2313 + TC0
Здравствуйте. Помогите советом, есть ATTiny2313 с частотой кварца 10Мгц. По прерыванию Таймера T0...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.