Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Делимся опытом Наступив на грабли - сообщи другим! Обмен опытом разработки и ремонта электронных устройств.

 
Опции темы
Непрочитано 22.02.2011, 18:21  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Измерение и фильтрация температуры

Подключил к ПК через адаптер датчик DS1821. Показания температуры сохранял в текстовый файл, и вот что получилось, когда появились помехи:
Код:
18:28:55 -21
18:28:57 00
18:28:59 00
18:29:01 00
18:29:03 00
18:29:04 -22
18:29:06 -22
18:29:08 -22
18:29:10 00
18:29:12 00
18:29:14 -22
18:29:16 -21
18:29:18 00
18:29:20 00
18:29:21 -22
18:29:23 00
18:29:25 -22
18:29:27 -21
18:29:29 -21
18:29:31 -21
18:29:33 -21
18:29:34 -21
18:29:36 00
18:29:38 00
18:29:40 -01
18:29:42 00
18:29:44 00
18:29:46 00
18:29:48 00
18:29:49 -22
18:29:51 -22
18:29:53 00
18:29:55 00
18:29:57 00
18:29:59 -22
18:30:01 -22
18:30:03 -22
18:30:04 -22
18:30:06 -22
18:30:08 -22
18:30:10 -22
18:30:12 -22
18:30:14 -22
18:30:16 -22
18:30:18 -21
18:30:20 00
18:30:21 -22
18:30:23 -01
18:30:25 00
18:30:27 00
18:30:29 -22
18:30:31 -22
18:30:33 -22
18:30:35 -65
18:30:36 -22
18:30:38 -22
18:30:40 -21
18:30:42 -21
18:30:44 -21
18:30:46 -21
18:30:48 -21
18:30:50 -21
18:30:51 -21
18:30:53 -21
18:30:55 -21
В общем-то видно, что средняя температура = -21,5 теперь только надо отфильтровать ошибки.
Написал алгоритм для фильтрации 1 ошибки (при 2 и более ошибках подряд не работает).
Код:
For i3:=nacalo to konec do
  begin
   If (abs(MassivTemperatur[i3-1]-MassivTemperatur[i3]))‹=2 then
    begin
     OsibkaTemperatur:=MassivTemperatur[i3];
     SummaTemperatur:=SummaTemperatur+MassivTemperatur[i3];
    end else SummaTemperatur:=SummaTemperatur+OsibkaTemperatur;
  end;
 Temperatura:=SummaTemperatur/(konec-nacalo+1);
Может у кого будут оригинальные идеи по этому поводу?

Последний раз редактировалось Slava-martyn; 22.02.2011 в 18:23.
Slava-martyn вне форума  
Непрочитано 22.02.2011, 23:06  
chapa
Вид на жительство
 
Аватар для chapa
 
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
chapa на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

ИМХО, выяснить откуда идет ошибка, а не лечить заплаткой.
Что за адаптер? питание датчика прямое или паразитное?
кстати, частый опрос 1820 и 1821 приводит к их внутреннему разогреву. Я для себя нашел - оптимально 1 раз в 10секунд.
__________________
В технике главное - кувалда. (с)
chapa вне форума  
Сказали "Спасибо" chapa
Alex9797 (22.02.2011)
Непрочитано 22.02.2011, 23:35  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

Этот алгоритм не имеет возможности определить, какое значение верное. Он может только сравнивать с первым значением, и если следующее сильно отличается, то его отбраковывает. С таким же точно успехом могут казаться верными значения 00 и -01, а -20 отбраковываться.

Поэтому надо принимать меры для устранения влияния помех. Или хотя бы значительного их ослабления, чтобы ложные результаты были намного реже. Или взять другой термодатчик. Например, аналоговый. Его легко можно отфильтровать перед АЦП.
Alex9797 вне форума  
Непрочитано 23.02.2011, 00:14  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

Обычно ошибки приходят крайне редко (за сутки не более 5 при измерении 1 раз в 2 секунды) - мой алгоритм с этими ошибками справляется. А внешние помехи - сварка, молния, атомный взрыв, да мало ли что может быть... В данном случае импульсный блок питания от сканера расположен был рядом с адаптером.
1 раз в 10 сек. учту на будущее. Сейчас мысль появилась ввести ещё 1 переменную - тогда можно будет гораздо больше ложных значений отфильтровывать.
Slava-martyn вне форума  
Непрочитано 23.02.2011, 11:05  
chapa
Вид на жительство
 
Аватар для chapa
 
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
chapa на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

не, я все таки не понимаю, откуда берутся ошибки? Причем строго 0 или 1. Может у вас 1821 чем-то занят и не отвечает в эти моменты. Хорошо бы осциллом посмотреть шину 1wire. А может адаптер через себя не все пропускает... А вам именно термостат 1821 нужен?

У меня лично ds18b20 на 10 метрах провода при прямом питании 1раз в 10секунд измеряет температуру в теплице, отдает атмеге16 9 байт, в том числе и CRC, и у меня даже мысли не возникало на этапе написания прошивки, что нужно что-то отсеивать.

ИЩИТЕ ПРИЧИНУ ОШИБКИ, а клейте заплатки на не известно что.
__________________
В технике главное - кувалда. (с)
chapa вне форума  
Непрочитано 23.02.2011, 11:20  
igel_izh2126
Гражданин KAZUS.RU
 
Регистрация: 09.12.2007
Сообщений: 536
Сказал спасибо: 57
Сказали Спасибо 53 раз(а) в 45 сообщении(ях)
igel_izh2126 на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

действительно CRC не должно давать проскакивать неверным данным
проверка на код ошибки осуществляется в программе?
если в шине помехи или просто датчик не ответил по какой то причине, то кроме числового значения температуы возвращается код ошибки
igel_izh2126 вне форума  
Непрочитано 23.02.2011, 13:09  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

Вот скриншот и код, а есть ли там контроль CRC я не знаю (пока не разобрался).
Миниатюры:
Нажмите на изображение для увеличения
Название: рисунок_11.jpg
Просмотров: 53
Размер:	19.4 Кб
ID:	18823  
Вложения:
Тип файла: rar 1.rar (416.3 Кб, 75 просмотров)
Slava-martyn вне форума  
Непрочитано 23.02.2011, 16:47  
chapa
Вид на жительство
 
Аватар для chapa
 
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
chapa на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

igel_izh2126, у 1821 нет пакета данных. Там спрашивается только одно число. ...что и плохо.

Slava-martyn, да вы что... я в этом "ни бельмеса". повторяю, надо смотреть, что на шине реально творится.
__________________
В технике главное - кувалда. (с)

Последний раз редактировалось chapa; 23.02.2011 в 16:50.
chapa вне форума  
Непрочитано 23.02.2011, 19:48  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

Этот датчик не должен давать таких ошибок, когда я писал под него прогу на VB использую стандартную библиотеку производителя, то пришлось фильтровать только два значения температуры, это 127 градусов Цельсия и 85.
Причем фильтр просто не записывал в базу эти показания, но по хорошему нужно смотреть предыдущее значение и отсекать резкие скачки температуры до таких значений и не писать их в БД.

Вообщем не лечите следствие, лечите причину - адаптер и линию связи.
Вот мои опыты с датчиком : http://rn3aig.ru/phpBB3/viewtopic.php?f=3&t=5
TechMike вне форума  
Сказали "Спасибо" TechMike
Ustal (24.02.2011)
Непрочитано 24.02.2011, 00:42  
chapa
Вид на жительство
 
Аватар для chapa
 
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
chapa на пути к лучшему
По умолчанию Re: Измерение и фильтрация температуры

Сообщение от TechMike Посмотреть сообщение
Вообщем не лечите следствие, лечите причину - адаптер и линию связи.
Так и я про то же.
__________________
В технике главное - кувалда. (с)
chapa вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроль температуры жала паяльника (хоть какой-то) Sukhanov Делимся опытом 58 14.11.2013 11:45
Использование встроенного датчика температуры в ATTiny45 ish0 Микроконтроллеры, АЦП, память и т.д 19 25.08.2011 16:48
Измерение температуры Boramen Делимся опытом 5 21.08.2010 23:31
MCU и измерение температуры. Elf Микроконтроллеры, АЦП, память и т.д 18 11.11.2009 16:23
Измерение температуры AlexCAB_1234 Производственное оборудование 7 19.10.2009 16:15


Часовой пояс GMT +4, время: 10:16.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot