Данный модуль выводит на дисплей данные в виде графика в реальном времени

C++
void graphic_draw_ir()
{
  sensor.check();
  ir = sensor.getRed();
  static uint32_t tmr_ir;
  if (millis() - tmr_ir >= random(10, 75))
  { // наполнение массива по таймеру, расчет мин макс амплитуды
    int min;
    int max;
    arr[i] = ir;
    tmr_ir = millis();
    min = arr[0];
    max = arr[0];
    for (int i = 1; i < SIZE; i++)
    {
      if (arr[i] < min)
      {
        min = arr[i];
      }
      if (arr[i] > max)
      {
        max = arr[i];
      }
    }
    i++;
    if (i > (SIZE - 1))
      i = 0;
    min_calc = min;
    max_calc = max;
    average = (max + min) / 2;
  }
  dwin_crv2_v = ir - average;
  dwin_crv2_v = (filt_ir.filteredTime(dwin_crv2_v));
  dwin_crv2_v = dwin_crv2_v + 280;
  dwin_crv2[12] = highByte(dwin_crv2_v);
  dwin_crv2[13] = lowByte(dwin_crv2_v);
  if (ir > 40000)
  {
    SerialDwin.write(dwin_crv2, 14);
  }
}