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

Датчик DHT21 + AtTiny2313.

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

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

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

Заранее спасибо всем откликнувшимся :)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2014, 01:20
Ответы с готовыми решениями:

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

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

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

Часики на attiny2313
Здравствуйте, собрал часики http://licrym.org/index.php/Простые_часы Откомпилировал в CodeVision...

UART на ATtiny2313
Сейчас начинаю работать с UART и RS-485. Нужно-ли как-то настраивать Выходы PD0 и PD1 (RXD и TXD...

7
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
08.04.2014, 01:30 2
Мда, подпись примечательная... Если у вас опыт только на этом строится, остается только посочувствовать...
0
BORS_
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
08.04.2014, 01:50 3
Да, очень смешно, ха-ха. Лишь бы что-то написать. А может кто-то по делу может что-то сказать? Заметьте, я не так часто тут что-то спрашиваю, только в самом крайней случае. А по AVR - так вообще первый раз.
0
dsshooozzzi
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 250
08.04.2014, 02:20 4
На чем пишешь С или asm?
0
08.04.2014, 02:20
BORS_
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
08.04.2014, 02:26 5
C, Eclipse
0
dsshooozzzi
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
Kymo
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
vordrokir
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
15.04.2014, 11:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 11:34

Таймер на attiny2313
Приветствую всех. Как на 2313 рассчитать значение для записи в эти регистры, если я хочу получить...

MiniPro && attiny2313
Всем привет, кто-нибудь пробовал читать/писать tiny2313 с помощью minipro? У меня он почему-то...

ATtiny2313 - Atmel
Здравствуйте. Подскажите пожалуйста, можно ли как-нибудь проверять работу программы написанную на...


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

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

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