| Цифровой термометр | 
| 
				
			 | 
| 
| 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 |  |   Группа: Администраторы Сообщений: 720 
 Статус: 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 |  |   Группа: Администраторы Сообщений: 720 
 Статус: Offline | Ничего особенного в коде не нашел. Возможно что ацп датчика так шалит. Если поменять местами сенсоры, картина не меняется? Проверю код со своими датчиками отпишусь. 
 
 |  
 |  |  |  | 
| 
| 4ester | Дата: Вторник, 08.05.2012, 19:31 | Сообщение # 5 |  | Группа: Друзья Сообщений: 11 
 Статус: Offline | нет, причем если подключить второй датчик, та же картина только сразу с двумя датчиками. Также пробовал портировать прошивку под 16 мегу, там та же история.Quote (exersizze) Если поменять местами сенсоры, картина не меняется?Добавлено (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 |  |   Группа: Администраторы Сообщений: 720 
 Статус: 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 |  |   Группа: Администраторы Сообщений: 720 
 Статус: Offline | теперь показания не пляшут? 
 
 |  
 |  |  |  | 
| 
| 4ester | Дата: Пятница, 11.05.2012, 19:18 | Сообщение # 9 |  | Группа: Друзья Сообщений: 11 
 Статус: Offline | сейчас все отлично. 
 
 |  
 |  |  |  | 
| 
| exersizze | Дата: Суббота, 19.05.2012, 00:03 | Сообщение # 10 |  |   Группа: Администраторы Сообщений: 720 
 Статус: 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 |  |   Группа: Администраторы Сообщений: 720 
 Статус: 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 |  |   Группа: Администраторы Сообщений: 720 
 Статус: Offline | Выкладывай свой термометр в теме готовых проектов, интересно взглянуть. Может оформим потом на главной ;) Про серийный номер датчика так и подумал, что все ноги от него.
 
 
 |  
 |  |  |  |