FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Суббота, 19.08.2017, 18:01
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Усреднение показаний аналоговых датчиков
Усреднение показаний аналоговых датчиков
Андрейка Дата: Воскресенье, 18.06.2017, 19:44 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 23
Награды: 0
Репутация: 0
Статус: Offline
Добрый день.
Я подключил ИК-дальномер Sharp 2YOA21 на аналоговый вход к Ардуине Мега.
Его показания конвертировал в строку и вывел на ЖК дисплей  HD44780.
Дисплей подключен по четырехпроводной схеме I2C.
Но показания постоянно прыгают и мерцают.
Я так понимаю, что нужно реже опрашивать датчик или лучше как-то усреднять показания, чтобы они реже менялись и были более точными.
Теоретически я понимаю, что нужно как-то заполнять массив, вычислять его сумму и делить ее на количество элементов в массиве. Это будет среднее арифметическое показаний. Про отбрасывание случайных величин, которые резко выбиваются из ряда я пока не думаю (образования не хватает) smile .
Я не могу понять как практически осуществить загрузку допустим 5 измерений в массив, обработку, вывод на дисплей и снова по кругу. Это нужно делать быстро, чтобы предыдущие значения не пропадали с дисплея
 Я посмотрел в интернете примеры для обработки показний переменного резистора на С+,
но ничего не понял.
Там организован цикл и видна формула для среднего арифметического между прошлыми показаниями и последующими.
Помогите пожалуйста !
 PS. Я думаю эта тема важная и многим будет интересна. Аналоговых датчиков очень много и в промышленности их показания обрабатывают ( те же Овены )
 
pan Дата: Воскресенье, 18.06.2017, 19:52 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 723
Награды: 30
Репутация: 29
Статус: Offline
блок не мой
Прикрепления: 5938105.ubi(17Kb)
 
Boroda Дата: Воскресенье, 18.06.2017, 21:09 | Сообщение # 3
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Андрейка, вот здесь много цифровых фильтров
 
injener Дата: Воскресенье, 18.06.2017, 22:28 | Сообщение # 4
Сержант
Группа: Проверенные
Сообщений: 51
Награды: 0
Репутация: -1
Статус: Offline
Все верно, только не возьму в толк зачем умножать? Три математики (плюс, минус, деление) далее преобразуем и подаем на дисплей. Ничего не прыгает. Лень клацать программой? Выводим в меню на дсплее изменение интежер в онлайн режиме с последующим сохранением в эпром. Получится (уменьшить на 10) в данных уменьшиться на еденицу, (делим на 20) в данных уменьшится на 10... Примерно так. Вы же получаете полный спектр (1023), а отправляете на дисплей деленные данные... Вернее не деленные, а преобразованные в сантиметры или метры... А это совсем иные данные...

Сообщение отредактировал injener - Воскресенье, 18.06.2017, 22:30
 
rw6cm Дата: Понедельник, 19.06.2017, 09:08 | Сообщение # 5
Генерал-лейтенант
Группа: Проверенные
Сообщений: 878
Награды: 79
Репутация: 59
Статус: Offline
Цитата Андрейка ()
Но показания постоянно прыгают и мерцают.
Если работа самой логики устраивает, мешают только мерцание цифр,
то можно так

Прикрепления: 1057743.png(6Kb)


Win7-32, FLProg (portable)
 
Андрейка Дата: Среда, 21.06.2017, 19:46 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 23
Награды: 0
Репутация: 0
Статус: Offline
Всем спасибо за помощь.
Особенно rw6cm.
Я этот блок NumberChange раньше не видел. Сидел на старой версии программы.
Я просто с массивами никогда не работал. Не разобрался пока как организовывать загрузку данных в массив и выгрузку из него.
 
rw6cm Дата: Среда, 21.06.2017, 20:02 | Сообщение # 7
Генерал-лейтенант
Группа: Проверенные
Сообщений: 878
Награды: 79
Репутация: 59
Статус: Offline
Цитата Андрейка ()
Я этот блок NumberChange раньше не видел
Можно без таймера, прям в нем настроить гистерезис,
но для дисплея мне с таймером больше нравится.

Массивы если ссылки найду выложу


Win7-32, FLProg (portable)
 
Андрейка Дата: Среда, 21.06.2017, 20:38 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 23
Награды: 0
Репутация: 0
Статус: Offline
Только что залил по вашему совету и прилепил медианный фильтр.
Работает круто.
Буду изучать массивы.
Прикрепления: 0918202.png(69Kb)


Сообщение отредактировал Андрейка - Среда, 21.06.2017, 20:44
 
rw6cm Дата: Среда, 21.06.2017, 20:50 | Сообщение # 9
Генерал-лейтенант
Группа: Проверенные
Сообщений: 878
Награды: 79
Репутация: 59
Статус: Offline
Сразу все и не вспомнить, наверно подходящее к вашей теме можно посмотреть здесь, и здесь.
Если вспомню еще выложу.

п/с в проектах более старых версий возможно нужно будет переместить блоки,
 или собрать заново в новой версии.


Win7-32, FLProg (portable)

Сообщение отредактировал rw6cm - Четверг, 22.06.2017, 12:44
 
Форум » Основной » Спросить у знатоков » Усреднение показаний аналоговых датчиков
Страница 1 из 11
Поиск:

FLProg © 2017
Яндекс.Метрика