Пытаюсь внедрить панель приборов от другого автомобиля в свой.
В процессе испытаний выяснилось несоответствие показаний датчика температуры охлаждающей жидкости и датчика уровня топлива. В этой панели индикаторы ТОЖ и УТ сделаны на логометрах, которыми управляет микроконтроллер ШИМ-ом через мосфеты. Решил передать функцию управления логометрами своему контроллеру на ардуино. Он же управляет светодиодом недостаточного уровня топлива.
Все вроде как работает, и с ТОЖ видимых проблем нет, а вот стрелка уровня топлива постоянно скачет вместе с плесканием топлива в баке.
Понятно что надо сделать сглаживание, но знаний и умений не хватает.
На сколько я понимаю нужно делать несколько измерений в течение определенного времени, складывать их результаты и делить на количество измерений. Помогите написать такой скетч. Может у кого есть готовый алгоритм?

Вот то что пока есть:
PHP код:
int sensePin = 0;
int ledPin = 6;
int sensePin2 = 2;
int ledPin2 = 5;
int dut = 8;
 
void setup()
{
  
TCCR0B = TCCR0B & 0b11111000 | 2;
  
pinMode(ledPin, OUTPUT);
  
pinMode(ledPin2, OUTPUT);
  
pinMode(dut, OUTPUT);
  
int dut = LOW;
}
void loop()
{
  
int val = analogRead(sensePin);
  
val = constrain(val, 45, 540);
  
int val2 = analogRead(sensePin2);
  
val2 = constrain(val2, 150, 988);
  
int ledLevel = map(val, 45, 540, 0, 200);
  
int ledLevel2 = map(val2, 150, 988, 30, 230);
  
analogWrite(ledPin, ledLevel);
  
analogWrite(ledPin2, ledLevel2);
  if (
val > 435)
 {
  
digitalWrite(dut, HIGH);
 }
  else
 {
  
digitalWrite(dut, LOW);
  } 
 }