Усреднение показаний аналоговых датчиков

Использование датчиков и обсуждение пользовательских блоков к ним
Ответить
Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08.09.2015{, 10:59}
Репутация: 0
Откуда: Санкт Петербург

Усреднение показаний аналоговых датчиков

#1

Сообщение Андрейка » 18.06.2017{, 19:44}

Добрый день.
Я подключил ИК-дальномер Sharp 2YOA21 на аналоговый вход к Ардуине Мега.
Его показания конвертировал в строку и вывел на ЖК дисплей  HD44780.
Дисплей подключен по четырехпроводной схеме I2C.
Но показания постоянно прыгают и мерцают.
Я так понимаю, что нужно реже опрашивать датчик или лучше как-то усреднять показания, чтобы они реже менялись и были более точными.
Теоретически я понимаю, что нужно как-то заполнять массив, вычислять его сумму и делить ее на количество элементов в массиве. Это будет среднее арифметическое показаний. Про отбрасывание случайных величин, которые резко выбиваются из ряда я пока не думаю (образования не хватает)  .
Я не могу понять как практически осуществить загрузку допустим 5 измерений в массив, обработку, вывод на дисплей и снова по кругу. Это нужно делать быстро, чтобы предыдущие значения не пропадали с дисплея
 Я посмотрел в интернете примеры для обработки показний переменного резистора на С+,
но ничего не понял.
Там организован цикл и видна формула для среднего арифметического между прошлыми показаниями и последующими.
Помогите пожалуйста !
 PS. Я думаю эта тема важная и многим будет интересна. Аналоговых датчиков очень много и в промышленности их показания обрабатывают ( те же Овены )

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Усреднение показаний аналоговых датчиков

#2

Сообщение pan » 18.06.2017{, 19:52}

блок не мой
Вложения
5938105.ubi
(17.39 КБ) 145 скачиваний

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Усреднение показаний аналоговых датчиков

#3

Сообщение Boroda » 18.06.2017{, 21:09}

Андрейка, вот здесь много цифровых фильтров

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Усреднение показаний аналоговых датчиков

#4

Сообщение injener » 18.06.2017{, 22:28}

Все верно, только не возьму в толк зачем умножать? Три математики (плюс, минус, деление) далее преобразуем и подаем на дисплей. Ничего не прыгает. Лень клацать программой? Выводим в меню на дсплее изменение интежер в онлайн режиме с последующим сохранением в эпром. Получится (уменьшить на 10) в данных уменьшиться на еденицу, (делим на 20) в данных уменьшится на 10... Примерно так. Вы же получаете полный спектр (1023), а отправляете на дисплей деленные данные... Вернее не деленные, а преобразованные в сантиметры или метры... А это совсем иные данные...
Последний раз редактировалось injener 18.06.2017{, 22:30}, всего редактировалось 1 раз.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

Усреднение показаний аналоговых датчиков

#5

Сообщение rw6cm » 19.06.2017{, 09:08}

Андрейка писал(а):Но показания постоянно прыгают и мерцают.
Если работа самой логики устраивает, мешают только мерцание цифр,
то можно так

СпойлерПоказать
Вложения
1057743.png
Win10-64, FLProg (portable)

Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08.09.2015{, 10:59}
Репутация: 0
Откуда: Санкт Петербург

Усреднение показаний аналоговых датчиков

#6

Сообщение Андрейка » 21.06.2017{, 19:46}

Всем спасибо за помощь.
Особенно rw6cm.
Я этот блок NumberChange раньше не видел. Сидел на старой версии программы.
Я просто с массивами никогда не работал. Не разобрался пока как организовывать загрузку данных в массив и выгрузку из него.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

Усреднение показаний аналоговых датчиков

#7

Сообщение rw6cm » 21.06.2017{, 20:02}

Андрейка писал(а):Я этот блок NumberChange раньше не видел
Можно без таймера, прям в нем настроить гистерезис,
но для дисплея мне с таймером больше нравится.

Массивы если ссылки найду выложу
Win10-64, FLProg (portable)

Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08.09.2015{, 10:59}
Репутация: 0
Откуда: Санкт Петербург

Усреднение показаний аналоговых датчиков

#8

Сообщение Андрейка » 21.06.2017{, 20:38}

Только что залил по вашему совету и прилепил медианный фильтр.
Работает круто.
Буду изучать массивы.
Вложения
0918202.png
Последний раз редактировалось Андрейка 21.06.2017{, 20:44}, всего редактировалось 1 раз.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

Усреднение показаний аналоговых датчиков

#9

Сообщение rw6cm » 21.06.2017{, 20:50}

Сразу все и не вспомнить, наверно подходящее к вашей теме можно посмотреть здесь, и здесь.
Если вспомню еще выложу.

п/с в проектах более старых версий возможно нужно будет переместить блоки,
 или собрать заново в новой версии.
Последний раз редактировалось rw6cm 22.06.2017{, 12:44}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Ответить

Вернуться в «Датчики температуры, влажности и давления»