Есть RC-пульт, регулятор и бесколлекторный мотор. с RC-пульта завожу канал газа и на выходе выдаю сигнал на регулятор. пульт дает сигнал от 1000 до 2000 едениц, где 1500 это нейтраль, 1000 макс скорость назад, 2000 макс вперед. Задача - плавно рулить мотором, несмотря на резки колебания стика пульта, т.е. допустим резко дали газ, а двигатель раскручивается плавно. Грубо говоря за 1 секунду дали газ вполовину вверх, т.е. с 1500 дали 1750, и надо это плавно растянуть на 3 секунды. Плюс есть дребезг курка и колебания могут скакать, поэтому изменения до 5 едениц нужно не учитывать. Возможно есть какие то фильтры алгоритмы о чем я не знаю) ткните куда копать)
Алгоритм таков: - создаете объект, который имеет: текущее значение PWM, целевое PWM, способ изменения (например шаг: +/- 10 единиц и проверка - если новое целевое значение отличается от старого на 5 то оно не меняется) и скорость изменения;- при проверке положения стика - просто меняете целевое значение PWM, а затем постоянно вызываете объектную функцию его достижения.