Как физически работает программа в ардуине?

Здесь обсуждаем Arduino
Аватара пользователя
GhostX
Сообщения: 1112
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Как физически работает программа в ардуине?

Сообщение GhostX » 10 янв 2016, 08:20

Пишем код, вызываем функции...
И вот, нужно узнать какая температура пришла с датчика DHT 11, а так как чтение температуры или влажности занимает около 250 миллисекунд! возникает вопрос, а что же делать все это время контроллеру? тупо ждать? так, для него это же почти вечность.
Может он дальше выполнять свои циклы?
Как это вообще происходит?
Как он ответы получает?
Может ли он ответ проморгать?
Или ответы приходят по прерыванию, и в момент прихода данных с датчика, его за ногу дрынк, он останавливается, там, где он чем то занимался, обрабатывает ответ и продолжает дальше заниматься, чем он там занимался? -это догадка, не более... :)

Аватара пользователя
gurvinok
Сообщения: 1481
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Как физически работает программа в ардуине?

Сообщение gurvinok » 10 янв 2016, 10:25

А черт его знает. Это нужно спросить у автора библиотеки. Я когда писал библиотеку под далосовские датчики температуры, то я точно знал когда он отцифрует, так как у него есть прерывание. А как этот датчик работает я не знаю. Я его даже в руках не держал. Если он работает по однопроводной шине, то есть вероятность что тоже есть прерывание после отцифровки.
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1112
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Как физически работает программа в ардуине?

Сообщение GhostX » 10 янв 2016, 10:30

да, у него по 1 проводу: vcc,gnd,data
ладно буду библиотеку ковырять... :(

Аватара пользователя
gurvinok
Сообщения: 1481
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Как физически работает программа в ардуине?

Сообщение gurvinok » 10 янв 2016, 10:34

Лучше маны покурить.
Если долго мучиться, может быть получится.

Аватара пользователя
gurvinok
Сообщения: 1481
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Как физически работает программа в ардуине?

Сообщение gurvinok » 10 янв 2016, 10:49

Всего-то 30 секунд и мануал в кармане. Читаем и вникаем. Датчик туп как пробка. Работает по однопроводной шине. Кидаем на линию старт бит и ждем ответ. Если датчик откликнулся в период между 20-40мкс, то дальше после 80 мкс полезут 5 байт данных. Первый байт целые влажности, второй после запятой влажности, третий целые температуры, четвертый после запятой температура, пятый алгебраическая сумма первых четырех байт. Никаких прерываний РОМ кодов и иже подобных. Туп как пробка. В характеристиках написано что время отклика от 6с до 30с. Вот тут я в замешательстве.
DHT11.rar
(842.17 КБ) 256 скачиваний
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1112
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Как физически работает программа в ардуине?

Сообщение GhostX » 10 янв 2016, 12:32

четвертый после запятой температура.....?!?!?!?
Точность измерения температуры ± 2 ℃
какие еще после запятой?
Я вообще в недоумении как их заказать мог?!? У меня критично 0.1 ℃
хотел 22, но что то походу перепутал, и заказал 11,
а когда пришли, начал изучать, и ахренел, на сколько сильно я перепутал...
Да и в целом когда покупал, не совсем до конца понимание было, что именно мне нужно, для чего и что я буду с этим всем делать. По большому счету, это было за месяц, как я залил свой первый скетч в ардуину. Все делалось пальцем в небо. :)
Сейчас подумываю о DS18b20 они влажность хоть и не измеряют, но у них температура хотя бы не хромает.
Но сперва с этими потренируюсь. :)
и вопрос:
Как ардуина реагирует на этот ответ?
даже так, время отклика от 6с до 30с, что ардуина делать должна? тупо ждать на делей?
или это процессы не зависимые?
предполагаю, что и на других контроллерах, одинаково реализовано. НО КАК ИМЕННО? Я даже не знаю как вопрос правильно поставить, в поисковике...

Аватара пользователя
gurvinok
Сообщения: 1481
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Как физически работает программа в ардуине?

Сообщение gurvinok » 10 янв 2016, 16:47

Как ардуина реагирует на этот ответ?
Я в душе не чаю. Однопроводная шина за 6 секунд 158 раз беды получит. Там таймслоты в микросекундах, а тут 6 секунд. Это какой-то бред. или они перепутали секунды с миллисекундами))))
Если это не военная тайна, то зачем температура с точностью до 0,1 градуса?
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1112
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Как физически работает программа в ардуине?

Сообщение GhostX » 10 янв 2016, 17:13

158 раз беды получит.
беды, это ошибки?

Это конечно не караул как важно, но 0,1 близко с идеальному.))
вот так, но это не единственно верный рецепт.
Режим инкубации

Режим инкубации меняется несколько раз. В первые 7 дней нужно установить температуру 37,8 C°, влажность – 50-55%. Переворачивать через каждые 6 часов, охлаждать не нужно.

С 8 по 14 день следует соблюдать тот же температурный режим инкубации, но влажность необходимо понизить до 45%. Переворачивать яйца через каждые 4 часа и дважды в сутки проветривать инкубатор в течение 15-20 мин, чтобы они остыли. Эти меры необходимы для того, чтобы предотвратить прилипание зародыша к яичной скорлупе.

С 15 по 17 день режим инкубации следующий: температура снижается до отметки 37,5 С°, а уровень влажности должен быть повышен до 65-70%, охлаждать яйца не нужно.

Длительность инкубации перепелиных яиц – 17-18 дней, после чего птенцы должны ещё некоторое время находиться внутри инкубатора, пока не обсохнут.

Аватара пользователя
gurvinok
Сообщения: 1481
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Как физически работает программа в ардуине?

Сообщение gurvinok » 10 янв 2016, 19:11

Жесть. Тут нужны прецизионные датчики.
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1112
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Как физически работает программа в ардуине?

Сообщение GhostX » 10 янв 2016, 19:15

Эти чудо датчики, вообще не пойми что показывают... :(
2 шт DHT11 калибрую по третьему у которого точность якобы чуть выше. С одним знаком после запятой.
и так температура 26 °C на всех, одинаково на сколько это возможно...
показывает влажность на верхнем 26%, на нижнем 32%.
влажность сейчас не трогаю.
калибровки которые ранее делал, чтоб похоже на вменяемые были
на нижнем влажность -2 температура -2
на верхнем влажность 0 температура +2
вот такие разбросы.

закрываю ящик. Внутри 3 датчика, подогрев и вентилятор. включаю в коде 37-38°C держать, и наблюдаю.
набралось 38°C защелкало реле, держим t°. Подождал еще мин 10, чтоб наверняка вся температура и влажность, перемешалась и сравнялась.
Cмотрю.
верх 37°C и 15%
низ 39°C и 15%
третий датчик, который якобы точнее кажет
39,1°C и 13%
вставляю термопару от тестера в ящик по центру, закрываю, жду мин 10.
смотрю показания трех датчиков устаканились, тестер показывает вообще 36°C
есть еще метеостанция у которой 4 датчика 3 радио и 1 встроенный. Но думаю, если их по дому собрать и туда засунуть, это все особо не даст ничего...DHT 11 как показывали разброс при одной температуре и другой разброс при другой температуре, так и дальше будут так показывать.
среднее арифметическое по ящику, показывает температуру 38°C и 15%
Пока все это писал на тестере стало 36°C и иногда моргает 37°C
третий датчик 39,1°C и 11% остальные не поменялись.
Какие нибудь рекомендации, что делать, в такой ситуации возможны? (Кроме как выкинуть на помойку оба DHT 11)

Ответить