Цифровой термометр
|
|
4ester | Дата: Воскресенье, 06.05.2012, 14:59 | Сообщение # 1 |
Группа: Друзья
Сообщений: 11
Статус: Offline
| Вообщем давно уже делаю этот термометр, и тут возникла такая проблема в измерении, и не могу найти в чем проблема. Чтоб долго не объяснять проблему снял видео. http://www.youtube.com/watch?v....h_lolz. видно сто как то некорректно измеряет.
Сообщение отредактировал 4ester - Воскресенье, 06.05.2012, 17:52 |
|
| |
exersizze | Дата: Понедельник, 07.05.2012, 07:41 | Сообщение # 2 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| что именно не корректно? на втором датчике растет температура, а на первом нет?
|
|
| |
4ester | Дата: Понедельник, 07.05.2012, 08:08 | Сообщение # 3 |
Группа: Друзья
Сообщений: 11
Статус: Offline
| нет именно как он ее отображает, на видео видно как поднимается температура если присмотреться, к примеру 31,9 -31,0 - 31,1 -31,2 -, 31,3 -32,4 и т.д.
|
|
| |
exersizze | Дата: Понедельник, 07.05.2012, 10:17 | Сообщение # 4 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Ничего особенного в коде не нашел. Возможно что ацп датчика так шалит. Если поменять местами сенсоры, картина не меняется? Проверю код со своими датчиками отпишусь.
|
|
| |
4ester | Дата: Вторник, 08.05.2012, 19:31 | Сообщение # 5 |
Группа: Друзья
Сообщений: 11
Статус: Offline
| Quote (exersizze) Если поменять местами сенсоры, картина не меняется? нет, причем если подключить второй датчик, та же картина только сразу с двумя датчиками. Также пробовал портировать прошивку под 16 мегу, там та же история.Добавлено (08.05.2012, 19:31) --------------------------------------------- что то не понял как вставлять код, вообщем поэкспериментировав выяснил возможную причину этой ошибки, Hh = Fix(t1) 'отсекаем от температуры все после запятой Ttemp = T1 * 10 ' Mm = Ttemp Mod 10 'берем десятичную часть температуры после этих строк начинается все безобразие, причем заметил особенность к примеру последовательность роста температуры, вместо того чтоб показать 31,0 и т.д показывает 30,0-30,1-30,2-30,3-30,4-31,5 только когда десятичная часть температуры становится больше 4 целое число увеличивается на 1, с чем это связанно не пойму.
|
|
| |
exersizze | Дата: Среда, 09.05.2012, 11:08 | Сообщение # 6 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Проверил со своими, такаяже петрушка. Вот еще что заметил, что первый датчик в десятых долях отображает только кратно 0,5. Т.е. 28,4-28,9-29,4 и тд. нехватает 9-и битного разрешения?
|
|
| |
4ester | Дата: Четверг, 10.05.2012, 20:00 | Сообщение # 7 |
Группа: Друзья
Сообщений: 11
Статус: Offline
| пробовал такой способ измерения Dim I1 As Integer , Ss As String * 6 вместо Byte0 = 1wread() Byte1 = 1wread() пишем- I1 = 1wread(2) и преобразуем I1 = I1 * 10 I1 = I1 \ 16 Ss = Str(i1) Ss = Format(ss , " 0.0") он вообще не работает. Quote (exersizze) нехватает 9-и битного разрешения? весь беспредел начинается после строчек Hh = Fix(t1) 'отсекаем от температуры все после запятой Ttemp = T1 * 10 ' Mm = Ttemp Mod 10 'берем десятичную часть температуры чем их заменить, пока не придумал.Добавлено (10.05.2012, 20:00) --------------------------------------------- в общем если кому то понадобится, проблему с измерением десятых градуса я решил таким образом:
Code 1wwrite &HBE Byte0 = 1wread() ' читаем нулевой байт Byte1 = 1wread() 'читаем первый байт
If Byte1 >= 248 Then 'проверяем на отрицательную температуру Byte0 = &HFF - Byte0 Byte1 = &HFF - Byte1 Znak = "-" Else Znak = "+" End If I1 = Makeint(byte0 , Byte1) ' делаем из 2х однобайтовых переменных 1 двухбайтовую I1 = I1 * 10 ' сдвигаем для выделения десятых долей градуса I1 = I1 / 16 ' сдвигаем вправо на 4 разряда Ss = Str(i1) ' преобразуем Ss = Format(ss , "0.0")
|
|
| |
exersizze | Дата: Пятница, 11.05.2012, 15:21 | Сообщение # 8 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| теперь показания не пляшут?
|
|
| |
4ester | Дата: Пятница, 11.05.2012, 19:18 | Сообщение # 9 |
Группа: Друзья
Сообщений: 11
Статус: Offline
| сейчас все отлично.
|
|
| |
exersizze | Дата: Суббота, 19.05.2012, 00:03 | Сообщение # 10 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| 2 4ester, еще такой вопрос, как определяются датчики. Тоесть как определяется какой первый, а какой второй? Есть мысли сделать терморегулятор вот для этого http://avrproject.ru/publ/reguljator_temperatury_i_vlazhnosti/1-1-0-84 там как раз два канала
|
|
| |
kip96 | Дата: Суббота, 19.05.2012, 17:13 | Сообщение # 11 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Quote (4ester) пробовал такой способ измерения Dim I1 As Integer , Ss As String * 6 вместо Byte0 = 1wread() Byte1 = 1wread() пишем- I1 = 1wread(2) и преобразуем I1 = I1 * 10 I1 = I1 \ 16 Ss = Str(i1) Ss = Format(ss , " 0.0") он вообще не работает. в архиве файл протеуса и баском . Всё отлично работает. ....Блин, а как архив добавить, пишет не тот формат изображения
Сообщение отредактировал kip96 - Суббота, 19.05.2012, 17:14 |
|
| |
exersizze | Дата: Суббота, 19.05.2012, 20:15 | Сообщение # 12 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| попробуй еще разок, сейчас должно получиться
|
|
| |
kip96 | Дата: Суббота, 19.05.2012, 23:08 | Сообщение # 13 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Ага,спасибо! Архив.
|
|
| |
4ester | Дата: Воскресенье, 20.05.2012, 20:51 | Сообщение # 14 |
Группа: Друзья
Сообщений: 11
Статус: Offline
| датчики определяется так: у какого семейный код который мы считали меньше тот и первый, для этого я набросал небольшую программку чтоб считывать с датчика семейник и выводить на дисплей чтоб определится с первым датчиком, если надо могу выложить. kip96 да с этим кодом я тоже разобрался на стадии поняти принципа считывания показаний с датчиков. Кстати может если кому нужно могу выложить схему. печатку и прошивку 2х канального термометра с фиксацией макс и мин температур, правда я ее не сохраняю в еепром, мне без надобности,также есть связь с ПК и вывода в порт показания измерений.
Сообщение отредактировал 4ester - Воскресенье, 20.05.2012, 20:52 |
|
| |
exersizze | Дата: Понедельник, 21.05.2012, 00:01 | Сообщение # 15 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Выкладывай свой термометр в теме готовых проектов, интересно взглянуть. Может оформим потом на главной ;) Про серийный номер датчика так и подумал, что все ноги от него.
|
|
| |