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

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

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

Сообщение Андрейка »

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

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

Сообщение pan »

блок не мой
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

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

Сообщение Boroda »

Андрейка, вот здесь много цифровых фильтров
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

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

Сообщение injener »

Все верно, только не возьму в толк зачем умножать? Три математики (плюс, минус, деление) далее преобразуем и подаем на дисплей. Ничего не прыгает. Лень клацать программой? Выводим в меню на дсплее изменение интежер в онлайн режиме с последующим сохранением в эпром. Получится (уменьшить на 10) в данных уменьшиться на еденицу, (делим на 20) в данных уменьшится на 10... Примерно так. Вы же получаете полный спектр (1023), а отправляете на дисплей деленные данные... Вернее не деленные, а преобразованные в сантиметры или метры... А это совсем иные данные...
Последний раз редактировалось injener 18 июн 2017, 22:30, всего редактировалось 1 раз.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2301
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир

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

Сообщение rw6cm »

Андрейка писал(а):Но показания постоянно прыгают и мерцают.
Если работа самой логики устраивает, мешают только мерцание цифр,
то можно так
[spoiler=Спойлер][/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08 сен 2015, 10:59
Откуда: Санкт Петербург

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

Сообщение Андрейка »

Всем спасибо за помощь.
Особенно rw6cm.
Я этот блок NumberChange раньше не видел. Сидел на старой версии программы.
Я просто с массивами никогда не работал. Не разобрался пока как организовывать загрузку данных в массив и выгрузку из него.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2301
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир

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

Сообщение rw6cm »

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

Массивы если ссылки найду выложу
Win10-64, FLProg (portable)
Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08 сен 2015, 10:59
Откуда: Санкт Петербург

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

Сообщение Андрейка »

Только что залил по вашему совету и прилепил медианный фильтр.
Работает круто.
Буду изучать массивы.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Андрейка 21 июн 2017, 20:44, всего редактировалось 1 раз.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2301
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир

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

Сообщение rw6cm »

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

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость