Страница 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.
Большое спасибо за подсказки!