#include <CyberLib.h>
#define cFt 250 // Размер массива для считывания уровня топлива
byte bFUEL_LEVEL;
int iFuelTripArray = 0; // Колличество проходов для записи в массив показаний датчика, максимальное значение в cFt
uint16_t aFuelLevel[cFt + 1];
void setup() {
}
void loop() {
_fuel_level();
}
void _fuel_level() {
if (iFuelTripArray > cFt) {
iFuelTripArray = 0;
bFUEL_LEVEL = find_similar(aFuelLevel, cFt, 0);
}
iFuelTripArray ++;
int val = analogRead(3);
if (val > 1000) val = 1000; // ограничение уровня напряжения АЦП
aFuelLevel[iFuelTripArray] = map(val, 100, 800, 100, 0);
}