Регулятор температуры и влажности на ATmеga8 DHT-11

AVR версия программы

Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение rust777 (Rust) » 01 сен 2014, 15:05

помогите прикрутить DHT-22
Последний раз редактировалось Rust 04 сен 2014, 13:07, всего редактировалось 1 раз.
Аватар пользователя
Ник: rust777
Имя: Rust
(Анапа)
Новичок
Новичок
Информация о пользователе

Re: Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение mim (mim) » 02 сен 2014, 06:19

исходник для dht-11

Я не вижу динамическую индикацию...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение rust777 (Rust) » 02 сен 2014, 16:29

да в proteuse как то работает странно
в железе все нормально
Аватар пользователя
Ник: rust777
Имя: Rust
(Анапа)
Новичок
Новичок
Информация о пользователе
Вернуться наверх

Re: Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение mim (mim) » 03 сен 2014, 06:39

в железе все нормально
:o На форуме много примеров динамической индикации написанной правильно, с примерами, с объяснениями, с теорией... в каждой программе - таймеров, тахометров, термодатчиков, терморегуляторов, часов - есть динамическая индикация.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение rust777 (Rust) » 04 сен 2014, 10:09

динамическая индикация это проблема второго плана :oops:
больше задаче стоит
по даташиту на DHT22 протокол и тайминги 1 в 1 как и у DHT11
DHT-11 40 бит идущих в таком порядке: десятые части влажности и температуры не используются и их значение всегда равно нулю
первые 8 бит целая часть влажности + 8 бит десятая часть влажности + 8 бит целая часть температуры + 8 бит десятая часть температуры + 8 бит контрольной суммы
DHT-22 40 бит
Осталось выделить из этого числа два 16-битных числа: влажность (с 24 бита по 39) и температуру (с 8 бита по 23)
а вот как это сделать ума не преложу :shock:
Аватар пользователя
Ник: rust777
Имя: Rust
(Анапа)
Новичок
Новичок
Информация о пользователе
Вернуться наверх

Re: Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение mim (mim) » 04 сен 2014, 11:07

rust777 писал(а):1. динамическая индикация это проблема второго плана :oops:
2. по даташиту на DHT22 протокол и тайминги 1 в 1 как и у DHT11
3. DHT-11 десятые части влажности и температуры не используются и их значение всегда равно нулю
4. Осталось выделить из этого числа ...
5. два 16-битных числа: влажность (с 24 бита по 39) и температуру (с 8 бита по 23) а вот как это сделать ума не преложу

1. Дело хозяйское... тогда я скажу прямым текстом - программа полная чушь... Не хочешь написать правильно - твое дело. И уж тем более нет смысла в рассмотрении программы как таковой, достаточно решить задачу выделения данных из набора байт.
2. Правильно.
3. Правильно.
4. Из какого числа ????? Откуда ты дернул прием данных???
5. Обычно во время приема и происходит выделение данных - или ты не сам писал прием?. Что касаемо "целых" и "десятых", то у меня такая информация смотрим ДШ на 22.
AM2302_manual.pdf

Опираясь на первый пункт - нет желания лазить по программе, если ты хочешь, то придумай маленький пример имитации принятых данных, я покажу как что выделить, хотя примеры по выделению подобных данных на форуме есть.
У вас нет доступа для просмотра вложений в этом сообщении.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение rust777 (Rust) » 06 сен 2014, 16:30

подошёл к проблеме с нуля :)
1. полностью переделал всю динамическую индексацию
2. но датчик DHT-22 победить не как не получается :headbang:
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: rust777
Имя: Rust
(Анапа)
Новичок
Новичок
Информация о пользователе
Вернуться наверх

Re: Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение mim (mim) » 06 сен 2014, 18:27

Про этот пример можно сказать что подход к проблеме верный - на этапе понятийного процесса ничего лишнего, однако на этом все и закончилось.
В общем-то я запустил датчик в твоем примере.... но...
1. Почему так написана динамическая ИНДЕКСАЦИЯ ( :D я умер от этого), неужели так много времени, чтобы писать собственную (чушь) вместо того, чтобы взять готовые - хорошие и правильные проекты.
2. Постом выше - предложения с таким знаком "?" - носят вопросительный характер, надеюсь понятно.
3. Так что ты понял из ДШ который я выложил?

ЗЫ совет - поставь Протеус 7.9-7.10, чтобы мега8 могла читать elf файлы. И бат файл FC модернизируй для elf файлов.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

DHT-11 AVR пример кода с комментариями

Сообщение LEV-PRAV (LEV-PRAV) » 04 ноя 2014, 04:09

Игрался датчиком dht11.
Решил выложить как учебное пособие, а тут уже есть такая тема. Да не одна.
Тут и оставлю.
Изображение
Изображение
Описание датчика взял ТУТ. Там и картинки и написано по детски.

Купите себе Логический анализатор
У вас нет доступа для просмотра вложений в этом сообщении.
Давай на "ТЫ"
Аватар пользователя
Ник: LEV-PRAV
Имя: LEV-PRAV
(Санктум-Петербургум)
Модератор
Модератор
Информация о пользователе
Вернуться наверх

Re: Регулятор температуры и влажности на ATmеga8 DHT-11

Сообщение mim (mim) » 06 ноя 2014, 07:21

LEV-PRAV писал(а):1. Игрался датчиком dht11.
2. Решил выложить как учебное пособие...

1. Видать сильно заигрался на вольных хлебах - забив на форум, вот и выложил чушь... Пример-то не рабочий...
2. Всем кто скачал этот пример советую подумать над тем - мог ли этот пример работать в железе (при тех параметрах которые в исходнике) - как об этом утверждает автор. В программе есть комментарии, повеселило вот это выражение "а 1й элемент ХЗ откуда берётся"... Поэтому и берется что программа написана как ХЗ. С точки зрения алгоритма - так сяк, как говорят для начала сойдет, а вот с точки зрения расчетных параметров, не понятно... При такой частоте кварца и при таких значениях переменной "terminator=7" программа работать с датчиком не будет... Тем более что на картинках указано совсем другое значение, да и прерывание на картинке указано верно - по ниспадающему фронту (третья картинка, если стрелочки считать указание на фрон, хотя я думаю, что автор об этом и не подумал), а в программе по нарастающему, вот и ответ на "ХЗ откуда берётся"...
А вот цветные картинки - нужно удалить, они совсем не верно трактуют ДШ на датчик, и таким образом вводят в заблуждение!!! С точки зрения определения длительности отдельных импульсов (0 или 1) - это все равно, а с точки зрения начала сигнала - стартовых и преамбулы - возникает сдвиг... Поэтому периодически пропадает последний разряд в контрольной сумме... и выскакивает сбой.
Вот это верная картинка
CombinedTiming.jpg

Длительность terminator легко расчитывается из частоты прерывания. Теперь про частоту прерывания - очень плохо когда для работы выбирается такая высокая частота. Прерывание все время рвет программу, если программа ничего не делает, то на это можно наплевать, но когда мы начнем работать не только с датчиком, мы удивимся тому как медленно будут происходить вычисления. Нужно читать регистр таймера и прерывание при этом будет всего лишь чуть более 900 гц...
Повеселила пауза 40 мс... При таком подходе нет смысла в прерываниях, если все равно ждем, то проще написать программу, в основе которой будет непосредственное измерение времени импульсов в циклах, как это было выше...
Все остальное потом, после ответа автора. :) Ну, извини, Лев, ты сам попросил... Если в железе и работает, то только НЕ ЭТОТ вариант!!!

ЗЫ Вот на таком примере и ответ на вопрос - "почему одинаковые устройства работают поразному, но одно периодически сбоит, а другое работает как часы?" Подобрав параметры можно заставить эту программу работать в железе, но неверный алгоритм работы будет давать свои результаты.
У вас нет доступа для просмотра вложений в этом сообщении.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

След.

Вернуться в Flowcode AVR

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей