[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Цифровой термометр
4esterДата: Воскресенье, 06.05.2012, 14:59 | Сообщение # 1
Группа: Друзья
Сообщений: 11

Статус: Offline
Вообщем давно уже делаю этот термометр, и тут возникла такая проблема в измерении, и не могу найти в чем проблема. Чтоб долго не объяснять проблему снял видео. http://www.youtube.com/watch?v....h_lolz. видно сто как то некорректно измеряет.
Прикрепления: termom.bas (11.7 Kb)




Сообщение отредактировал 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")
он вообще не работает.

в архиве файл протеуса и баском . Всё отлично работает.
....Блин, а как архив добавить, пишет не тот формат изображения angry




Сообщение отредактировал kip96 - Суббота, 19.05.2012, 17:14
 
exersizzeДата: Суббота, 19.05.2012, 20:15 | Сообщение # 12
Группа: Администраторы
Сообщений: 723

Статус: Offline
попробуй еще разок, сейчас должно получиться

 
kip96Дата: Суббота, 19.05.2012, 23:08 | Сообщение # 13
Группа: Свой человек
Сообщений: 170

Статус: Offline
Ага,спасибо!
Архив.
Прикрепления: ___.rar (38.5 Kb)


 
4esterДата: Воскресенье, 20.05.2012, 20:51 | Сообщение # 14
Группа: Друзья
Сообщений: 11

Статус: Offline
Quote (exersizze)
2 4ester, еще такой вопрос, как определяются датчики. Тоесть как определяется какой первый, а какой второй?
Есть мысли сделать терморегулятор вот для этого http://avrproject.ru/publ/reguljator_temperatury_i_vlazhnosti/1-1-0-84
там как раз два канала

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




Сообщение отредактировал 4ester - Воскресенье, 20.05.2012, 20:52
 
exersizzeДата: Понедельник, 21.05.2012, 00:01 | Сообщение # 15
Группа: Администраторы
Сообщений: 723

Статус: Offline
Выкладывай свой термометр в теме готовых проектов, интересно взглянуть. Может оформим потом на главной ;)
Про серийный номер датчика так и подумал, что все ноги от него.


 
  • Страница 1 из 1
  • 1
Поиск: