Страница 1 из 1

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 00:17
Revenger
Приветствую специалисты в программировании!
Я только начал изучать программу, в программировании вообще ноль. Сделал несложную схему электронного спидометра, но мучает вопрос: как сделать вывод данных на дисплей не так резко, как меняются данные на датчике скорости, а с неким замедлением? Ну +- какое-то значение.
Какими блоками это можно сделать (желательно поподробнее, уж извините за такую наглость)?

Спасибо.

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 02:53
Anydy
Спасибо за Правильное написание и изложение проблемы!
По теме:
Используйте таймеры (стандартные блоки)
Если не получается -  с вопросом нужно приложить проект программы!
Адекватным людям всегда помогут!

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 05:26
kulibinsvv
Revenger, используйте блоки фильтров:

http://flprog.ru/load....-1-0-75
http://flprog.ru/load/bloki_polzovatele ... /2-1-0-109

Попробуйте всё. Какой понравится - такой и оставьте. Но надо понимать,что с разными фильтрами вы будете получать разную систематическую погрешность и разное время реакции на изменение входного сигнала.

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 12:24
Revenger
Ребята, большое спасибо за ответы. Попробую понять то, о чём написали (пока слово фильтры, особенно с формулами, для меня почти как ругательство )) )
Для примера вставил кусок кода, где как раз берётся моя скорость (с функциями конвертации в кмч)

Изображение

Добавлено (05.12.2017, 12:24)
---------------------------------------------
Anydy писал(а):Используйте таймеры
к сожалению "нитка связи" не коннектится с преобразователем в строку, который выводит на экран скорость в цифрах.
Попробую как выше советовали с фильтами...

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 12:29
kulibinsvv
Ставьте фильтр в разрыв линии L1.

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 12:31
pan
еще есть такой блок среднего значения. не помню кто автор

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 12:32
Revenger
kulibinsvv писал(а):Ставьте фильтр в разрыв линии L1.
спасибо, сейчас переставлю, а то уже влепил в разрыв перед выводом переменной ))

Добавлено (05.12.2017, 12:32)
---------------------------------------------
pan писал(а):еще есть такой блок среднего значения. не помню кто автор
Если с первый не выйдет (хотя похоже мне подобный фильтр ранее советовали на другом коде) попробую вашу рекомендацию!
А не подскажете, какой параметр надо ставить во вход "замер" этого блока?

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 12:54
pan
в описании блока написано же.
это вход записи очередного значения. можно поставить на этот вход генератор и подавать импульсы например раз в секунду, ну или как вам надо, занося с этой частотой новые значения для расчета среденей величины

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 12:58
Revenger
pan писал(а):это вход записи очередного значения.
я потом прочитал, но всё равно не понял, пока ваше пояснение сейчас не прочитал. Т.е. нужно его "толкать" на подсчёт сравнения... Попробую разобраться теперь с генераторами. Жуть какая.

А фильтр с флоат (что чуть раньше по ссылке) не даёт нужного эффекта. Мало, даже при максимальном значении 0,1

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 13:00
pan
Revenger писал(а):"толкать" на подсчёт
 не на подсчет, а на запись очередного значения. при достижении некоторого количества записей (которое указывается в параметрах)
блок выдаст среднее

Замедление/усреднение данных. Как?

Добавлено: 05 дек 2017, 13:23
Revenger
pan писал(а):блок выдаст среднее
Извиняюсь... создал симметричный мультивибратор, задал генерировать 100 милисек. Подал это на вход "замер". верно? Там задал константу 10.
В общем получилось примерно так как хотел. Только сделал этот фильтр на датчик бензина (т.к. уж слишком тормозную реакцию можно настроить), а на спидометр оставил фильтр float.

Большое спасибо за подсказки!