1

In my recent project, I have to create TPS/MAP table, which is provide value of LOAD.

Here, it is my table. You can see two value of LOAD which is separate by /. (TPS LOAD / MAP LOAD)

TPS/MAP Table

But now here as you can see, TPS provide different value of LOAD and MAP provide different value of LOAD. So, every cell has a two value of LOAD. So, I decide just add this both LOAD and divide it by 2.

I made program for this but it access only just LAST COLUMN and LAST ROW and it provide wrong value of LOAD. I don't understand why this happen.

Here, my code.

float TPS[] = {0, 0.4, 0.8, 1.2, 1.6, 2, 2.4, 2.8, 3.2, 3.6, 4, 4.4, 4.8, 5};
float MAP[] = {0.85, 0.95, 1.05, 1.15, 1.25, 1.35, 1.45, 1.55, 1.65, 1.75, 1.85, 1.9};

float TPS_MIN = 0.00;
float TPS_MAX = 5.00;

float MAP_MIN = 0.85;
float MAP_MAX = 1.90;

float LOAD_MIN_TPS[] = {2, 3.23, 4.49, 5.73, 6.97, 8.22, 9.44, 10.63, 11.87, 13.11, 14.33, 15.00};
float LOAD_MAX_TPS[] = {10.00, 17.08, 24.11, 31.67, 38.30, 45.73, 52.63, 60.19, 67.22, 74.52, 81.68, 85.00};

float LOAD_MIN_MAP[] = {2, 2.64, 3.28, 3.92, 4.56, 5.21, 5.85, 6.47, 7.11, 7.76, 8.40, 9.05, 9.69, 10.00};
float LOAD_MAX_MAP[] = {15.00, 20.62, 26.17, 31.79, 37.35, 42.97, 48.66, 54.14, 59.76, 65.38, 70.93, 76.63, 82.18, 85.00};

float m1[12] = {};
float m2[14] = {};

float y1[14] = {};
float y2[12] = {};

float y[168] = {};

int i, j, n;

void setup()
{
  Serial.begin(9600);
}

void loop()
{ 
  for(j = 0; j < 12; j++)
  {
    m1[j] = (LOAD_MAX_TPS[j] - LOAD_MIN_TPS[j]) / (TPS_MAX - TPS_MIN);

    Serial.print("m1 : ");
    Serial.println(m1[j]);

    for(i = 0; i < 14; i++)
    {
      y1[i] = m1[j] * (TPS[i] - TPS_MIN) + LOAD_MIN_TPS[j];

      Serial.print("TPS : ");
      Serial.print(TPS[i]);
      Serial.print("\t");
      Serial.print("LOAD : ");
      Serial.println(y1[i]);
   }
  }

  for(i = 0; i < 14; i++)
  {
    m2[i] = (LOAD_MAX_MAP[i] - LOAD_MIN_MAP[i]) / (MAP_MAX - MAP_MIN);

    Serial.print("m2 : ");
    Serial.println(m2[i]);

    for(j = 0; j < 12; j++)
    {
      y2[j] = m2[i] * (MAP[j] - MAP_MIN) + LOAD_MIN_MAP[i];

      Serial.print("MAP : ");
      Serial.print(MAP[j]);
      Serial.print("\t");
      Serial.print("LOAD : ");
      Serial.println(y2[j]);
    }
   }

  for(i = 0; i < 14; i++)
  {
    for(j = 0; j < 12; j++)
    {
      y[n] = (y1[i] + y2[j]) / 2;
      Serial.print("LOAD TPS : ");
      Serial.print(y1[i]);
      Serial.print("\t");
      Serial.print("LOAD MAP : ");
      Serial.print(y2[j]);
      Serial.print("\t");
      Serial.print("TPS : ");
      Serial.print(TPS[i]);
      Serial.print("\t");
      Serial.print("MAP : ");
      Serial.print(MAP[j]);
      Serial.print("\t");
      Serial.print("Final LOAD : ");
      Serial.println(y[n]);
    }
  }
  delay(1000000);
}

My serial monitor output :

LOAD TPS : 15.00    LOAD MAP : 10.00    TPS : 0.00  MAP : 0.85  Final LOAD : 12.50
LOAD TPS : 15.00    LOAD MAP : 17.14    TPS : 0.00  MAP : 0.95  Final LOAD : 16.07
LOAD TPS : 15.00    LOAD MAP : 24.29    TPS : 0.00  MAP : 1.05  Final LOAD : 19.64
LOAD TPS : 15.00    LOAD MAP : 31.43    TPS : 0.00  MAP : 1.15  Final LOAD : 23.21
LOAD TPS : 15.00    LOAD MAP : 38.57    TPS : 0.00  MAP : 1.25  Final LOAD : 26.79
LOAD TPS : 15.00    LOAD MAP : 45.71    TPS : 0.00  MAP : 1.35  Final LOAD : 30.36
LOAD TPS : 15.00    LOAD MAP : 52.86    TPS : 0.00  MAP : 1.45  Final LOAD : 33.93
LOAD TPS : 15.00    LOAD MAP : 60.00    TPS : 0.00  MAP : 1.55  Final LOAD : 37.50
LOAD TPS : 15.00    LOAD MAP : 67.14    TPS : 0.00  MAP : 1.65  Final LOAD : 41.07
LOAD TPS : 15.00    LOAD MAP : 74.29    TPS : 0.00  MAP : 1.75  Final LOAD : 44.64
LOAD TPS : 15.00    LOAD MAP : 81.43    TPS : 0.00  MAP : 1.85  Final LOAD : 48.21
LOAD TPS : 15.00    LOAD MAP : 85.00    TPS : 0.00  MAP : 1.90  Final LOAD : 50.00
LOAD TPS : 20.60    LOAD MAP : 10.00    TPS : 0.40  MAP : 0.85  Final LOAD : 15.30
LOAD TPS : 20.60    LOAD MAP : 17.14    TPS : 0.40  MAP : 0.95  Final LOAD : 18.87
LOAD TPS : 20.60    LOAD MAP : 24.29    TPS : 0.40  MAP : 1.05  Final LOAD : 22.44
LOAD TPS : 20.60    LOAD MAP : 31.43    TPS : 0.40  MAP : 1.15  Final LOAD : 26.01
LOAD TPS : 20.60    LOAD MAP : 38.57    TPS : 0.40  MAP : 1.25  Final LOAD : 29.59
LOAD TPS : 20.60    LOAD MAP : 45.71    TPS : 0.40  MAP : 1.35  Final LOAD : 33.16
LOAD TPS : 20.60    LOAD MAP : 52.86    TPS : 0.40  MAP : 1.45  Final LOAD : 36.73
LOAD TPS : 20.60    LOAD MAP : 60.00    TPS : 0.40  MAP : 1.55  Final LOAD : 40.30
LOAD TPS : 20.60    LOAD MAP : 67.14    TPS : 0.40  MAP : 1.65  Final LOAD : 43.87
LOAD TPS : 20.60    LOAD MAP : 74.29    TPS : 0.40  MAP : 1.75  Final LOAD : 47.44
LOAD TPS : 20.60    LOAD MAP : 81.43    TPS : 0.40  MAP : 1.85  Final LOAD : 51.01
LOAD TPS : 20.60    LOAD MAP : 85.00    TPS : 0.40  MAP : 1.90  Final LOAD : 52.80
LOAD TPS : 26.20    LOAD MAP : 10.00    TPS : 0.80  MAP : 0.85  Final LOAD : 18.10
LOAD TPS : 26.20    LOAD MAP : 17.14    TPS : 0.80  MAP : 0.95  Final LOAD : 21.67
LOAD TPS : 26.20    LOAD MAP : 24.29    TPS : 0.80  MAP : 1.05  Final LOAD : 25.24
LOAD TPS : 26.20    LOAD MAP : 31.43    TPS : 0.80  MAP : 1.15  Final LOAD : 28.81
LOAD TPS : 26.20    LOAD MAP : 38.57    TPS : 0.80  MAP : 1.25  Final LOAD : 32.39
LOAD TPS : 26.20    LOAD MAP : 45.71    TPS : 0.80  MAP : 1.35  Final LOAD : 35.96
LOAD TPS : 26.20    LOAD MAP : 52.86    TPS : 0.80  MAP : 1.45  Final LOAD : 39.53
LOAD TPS : 26.20    LOAD MAP : 60.00    TPS : 0.80  MAP : 1.55  Final LOAD : 43.10
LOAD TPS : 26.20    LOAD MAP : 67.14    TPS : 0.80  MAP : 1.65  Final LOAD : 46.67
LOAD TPS : 26.20    LOAD MAP : 74.29    TPS : 0.80  MAP : 1.75  Final LOAD : 50.24
LOAD TPS : 26.20    LOAD MAP : 81.43    TPS : 0.80  MAP : 1.85  Final LOAD : 53.81
LOAD TPS : 26.20    LOAD MAP : 85.00    TPS : 0.80  MAP : 1.90  Final LOAD : 55.60
LOAD TPS : 31.80    LOAD MAP : 10.00    TPS : 1.20  MAP : 0.85  Final LOAD : 20.90
LOAD TPS : 31.80    LOAD MAP : 17.14    TPS : 1.20  MAP : 0.95  Final LOAD : 24.47
LOAD TPS : 31.80    LOAD MAP : 24.29    TPS : 1.20  MAP : 1.05  Final LOAD : 28.04
LOAD TPS : 31.80    LOAD MAP : 31.43    TPS : 1.20  MAP : 1.15  Final LOAD : 31.61
LOAD TPS : 31.80    LOAD MAP : 38.57    TPS : 1.20  MAP : 1.25  Final LOAD : 35.19
LOAD TPS : 31.80    LOAD MAP : 45.71    TPS : 1.20  MAP : 1.35  Final LOAD : 38.76
LOAD TPS : 31.80    LOAD MAP : 52.86    TPS : 1.20  MAP : 1.45  Final LOAD : 42.33
LOAD TPS : 31.80    LOAD MAP : 60.00    TPS : 1.20  MAP : 1.55  Final LOAD : 45.90
LOAD TPS : 31.80    LOAD MAP : 67.14    TPS : 1.20  MAP : 1.65  Final LOAD : 49.47
LOAD TPS : 31.80    LOAD MAP : 74.29    TPS : 1.20  MAP : 1.75  Final LOAD : 53.04
LOAD TPS : 31.80    LOAD MAP : 81.43    TPS : 1.20  MAP : 1.85  Final LOAD : 56.61
LOAD TPS : 31.80    LOAD MAP : 85.00    TPS : 1.20  MAP : 1.90  Final LOAD : 58.40
LOAD TPS : 37.40    LOAD MAP : 10.00    TPS : 1.60  MAP : 0.85  Final LOAD : 23.70
LOAD TPS : 37.40    LOAD MAP : 17.14    TPS : 1.60  MAP : 0.95  Final LOAD : 27.27
LOAD TPS : 37.40    LOAD MAP : 24.29    TPS : 1.60  MAP : 1.05  Final LOAD : 30.84
LOAD TPS : 37.40    LOAD MAP : 31.43    TPS : 1.60  MAP : 1.15  Final LOAD : 34.41
LOAD TPS : 37.40    LOAD MAP : 38.57    TPS : 1.60  MAP : 1.25  Final LOAD : 37.99
LOAD TPS : 37.40    LOAD MAP : 45.71    TPS : 1.60  MAP : 1.35  Final LOAD : 41.56
LOAD TPS : 37.40    LOAD MAP : 52.86    TPS : 1.60  MAP : 1.45  Final LOAD : 45.13
LOAD TPS : 37.40    LOAD MAP : 60.00    TPS : 1.60  MAP : 1.55  Final LOAD : 48.70
LOAD TPS : 37.40    LOAD MAP : 67.14    TPS : 1.60  MAP : 1.65  Final LOAD : 52.27
LOAD TPS : 37.40    LOAD MAP : 74.29    TPS : 1.60  MAP : 1.75  Final LOAD : 55.84
LOAD TPS : 37.40    LOAD MAP : 81.43    TPS : 1.60  MAP : 1.85  Final LOAD : 59.41
LOAD TPS : 37.40    LOAD MAP : 85.00    TPS : 1.60  MAP : 1.90  Final LOAD : 61.20
LOAD TPS : 43.00    LOAD MAP : 10.00    TPS : 2.00  MAP : 0.85  Final LOAD : 26.50
LOAD TPS : 43.00    LOAD MAP : 17.14    TPS : 2.00  MAP : 0.95  Final LOAD : 30.07
LOAD TPS : 43.00    LOAD MAP : 24.29    TPS : 2.00  MAP : 1.05  Final LOAD : 33.64
LOAD TPS : 43.00    LOAD MAP : 31.43    TPS : 2.00  MAP : 1.15  Final LOAD : 37.21
LOAD TPS : 43.00    LOAD MAP : 38.57    TPS : 2.00  MAP : 1.25  Final LOAD : 40.79
LOAD TPS : 43.00    LOAD MAP : 45.71    TPS : 2.00  MAP : 1.35  Final LOAD : 44.36
LOAD TPS : 43.00    LOAD MAP : 52.86    TPS : 2.00  MAP : 1.45  Final LOAD : 47.93
LOAD TPS : 43.00    LOAD MAP : 60.00    TPS : 2.00  MAP : 1.55  Final LOAD : 51.50
LOAD TPS : 43.00    LOAD MAP : 67.14    TPS : 2.00  MAP : 1.65  Final LOAD : 55.07
LOAD TPS : 43.00    LOAD MAP : 74.29    TPS : 2.00  MAP : 1.75  Final LOAD : 58.64
LOAD TPS : 43.00    LOAD MAP : 81.43    TPS : 2.00  MAP : 1.85  Final LOAD : 62.21
LOAD TPS : 43.00    LOAD MAP : 85.00    TPS : 2.00  MAP : 1.90  Final LOAD : 64.00
LOAD TPS : 48.60    LOAD MAP : 10.00    TPS : 2.40  MAP : 0.85  Final LOAD : 29.30
LOAD TPS : 48.60    LOAD MAP : 17.14    TPS : 2.40  MAP : 0.95  Final LOAD : 32.87
LOAD TPS : 48.60    LOAD MAP : 24.29    TPS : 2.40  MAP : 1.05  Final LOAD : 36.44
LOAD TPS : 48.60    LOAD MAP : 31.43    TPS : 2.40  MAP : 1.15  Final LOAD : 40.01
LOAD TPS : 48.60    LOAD MAP : 38.57    TPS : 2.40  MAP : 1.25  Final LOAD : 43.59
LOAD TPS : 48.60    LOAD MAP : 45.71    TPS : 2.40  MAP : 1.35  Final LOAD : 47.16
LOAD TPS : 48.60    LOAD MAP : 52.86    TPS : 2.40  MAP : 1.45  Final LOAD : 50.73
LOAD TPS : 48.60    LOAD MAP : 60.00    TPS : 2.40  MAP : 1.55  Final LOAD : 54.30
LOAD TPS : 48.60    LOAD MAP : 67.14    TPS : 2.40  MAP : 1.65  Final LOAD : 57.87
LOAD TPS : 48.60    LOAD MAP : 74.29    TPS : 2.40  MAP : 1.75  Final LOAD : 61.44
LOAD TPS : 48.60    LOAD MAP : 81.43    TPS : 2.40  MAP : 1.85  Final LOAD : 65.01
LOAD TPS : 48.60    LOAD MAP : 85.00    TPS : 2.40  MAP : 1.90  Final LOAD : 66.80
LOAD TPS : 54.20    LOAD MAP : 10.00    TPS : 2.80  MAP : 0.85  Final LOAD : 32.10
LOAD TPS : 54.20    LOAD MAP : 17.14    TPS : 2.80  MAP : 0.95  Final LOAD : 35.67
LOAD TPS : 54.20    LOAD MAP : 24.29    TPS : 2.80  MAP : 1.05  Final LOAD : 39.24
LOAD TPS : 54.20    LOAD MAP : 31.43    TPS : 2.80  MAP : 1.15  Final LOAD : 42.81
LOAD TPS : 54.20    LOAD MAP : 38.57    TPS : 2.80  MAP : 1.25  Final LOAD : 46.39
LOAD TPS : 54.20    LOAD MAP : 45.71    TPS : 2.80  MAP : 1.35  Final LOAD : 49.96
LOAD TPS : 54.20    LOAD MAP : 52.86    TPS : 2.80  MAP : 1.45  Final LOAD : 53.53
LOAD TPS : 54.20    LOAD MAP : 60.00    TPS : 2.80  MAP : 1.55  Final LOAD : 57.10
LOAD TPS : 54.20    LOAD MAP : 67.14    TPS : 2.80  MAP : 1.65  Final LOAD : 60.67
LOAD TPS : 54.20    LOAD MAP : 74.29    TPS : 2.80  MAP : 1.75  Final LOAD : 64.24
LOAD TPS : 54.20    LOAD MAP : 81.43    TPS : 2.80  MAP : 1.85  Final LOAD : 67.81
LOAD TPS : 54.20    LOAD MAP : 85.00    TPS : 2.80  MAP : 1.90  Final LOAD : 69.60
LOAD TPS : 59.80    LOAD MAP : 10.00    TPS : 3.20  MAP : 0.85  Final LOAD : 34.90
LOAD TPS : 59.80    LOAD MAP : 17.14    TPS : 3.20  MAP : 0.95  Final LOAD : 38.47
LOAD TPS : 59.80    LOAD MAP : 24.29    TPS : 3.20  MAP : 1.05  Final LOAD : 42.04
LOAD TPS : 59.80    LOAD MAP : 31.43    TPS : 3.20  MAP : 1.15  Final LOAD : 45.61
LOAD TPS : 59.80    LOAD MAP : 38.57    TPS : 3.20  MAP : 1.25  Final LOAD : 49.19
LOAD TPS : 59.80    LOAD MAP : 45.71    TPS : 3.20  MAP : 1.35  Final LOAD : 52.76
LOAD TPS : 59.80    LOAD MAP : 52.86    TPS : 3.20  MAP : 1.45  Final LOAD : 56.33
LOAD TPS : 59.80    LOAD MAP : 60.00    TPS : 3.20  MAP : 1.55  Final LOAD : 59.90
LOAD TPS : 59.80    LOAD MAP : 67.14    TPS : 3.20  MAP : 1.65  Final LOAD : 63.47
LOAD TPS : 59.80    LOAD MAP : 74.29    TPS : 3.20  MAP : 1.75  Final LOAD : 67.04
LOAD TPS : 59.80    LOAD MAP : 81.43    TPS : 3.20  MAP : 1.85  Final LOAD : 70.61
LOAD TPS : 59.80    LOAD MAP : 85.00    TPS : 3.20  MAP : 1.90  Final LOAD : 72.40
LOAD TPS : 65.40    LOAD MAP : 10.00    TPS : 3.60  MAP : 0.85  Final LOAD : 37.70
LOAD TPS : 65.40    LOAD MAP : 17.14    TPS : 3.60  MAP : 0.95  Final LOAD : 41.27
LOAD TPS : 65.40    LOAD MAP : 24.29    TPS : 3.60  MAP : 1.05  Final LOAD : 44.84
LOAD TPS : 65.40    LOAD MAP : 31.43    TPS : 3.60  MAP : 1.15  Final LOAD : 48.41
LOAD TPS : 65.40    LOAD MAP : 38.57    TPS : 3.60  MAP : 1.25  Final LOAD : 51.99
LOAD TPS : 65.40    LOAD MAP : 45.71    TPS : 3.60  MAP : 1.35  Final LOAD : 55.56
LOAD TPS : 65.40    LOAD MAP : 52.86    TPS : 3.60  MAP : 1.45  Final LOAD : 59.13
LOAD TPS : 65.40    LOAD MAP : 60.00    TPS : 3.60  MAP : 1.55  Final LOAD : 62.70
LOAD TPS : 65.40    LOAD MAP : 67.14    TPS : 3.60  MAP : 1.65  Final LOAD : 66.27
LOAD TPS : 65.40    LOAD MAP : 74.29    TPS : 3.60  MAP : 1.75  Final LOAD : 69.84
LOAD TPS : 65.40    LOAD MAP : 81.43    TPS : 3.60  MAP : 1.85  Final LOAD : 73.41
LOAD TPS : 65.40    LOAD MAP : 85.00    TPS : 3.60  MAP : 1.90  Final LOAD : 75.20
LOAD TPS : 71.00    LOAD MAP : 10.00    TPS : 4.00  MAP : 0.85  Final LOAD : 40.50
LOAD TPS : 71.00    LOAD MAP : 17.14    TPS : 4.00  MAP : 0.95  Final LOAD : 44.07
LOAD TPS : 71.00    LOAD MAP : 24.29    TPS : 4.00  MAP : 1.05  Final LOAD : 47.64
LOAD TPS : 71.00    LOAD MAP : 31.43    TPS : 4.00  MAP : 1.15  Final LOAD : 51.21
LOAD TPS : 71.00    LOAD MAP : 38.57    TPS : 4.00  MAP : 1.25  Final LOAD : 54.79
LOAD TPS : 71.00    LOAD MAP : 45.71    TPS : 4.00  MAP : 1.35  Final LOAD : 58.36
LOAD TPS : 71.00    LOAD MAP : 52.86    TPS : 4.00  MAP : 1.45  Final LOAD : 61.93
LOAD TPS : 71.00    LOAD MAP : 60.00    TPS : 4.00  MAP : 1.55  Final LOAD : 65.50
LOAD TPS : 71.00    LOAD MAP : 67.14    TPS : 4.00  MAP : 1.65  Final LOAD : 69.07
LOAD TPS : 71.00    LOAD MAP : 74.29    TPS : 4.00  MAP : 1.75  Final LOAD : 72.64
LOAD TPS : 71.00    LOAD MAP : 81.43    TPS : 4.00  MAP : 1.85  Final LOAD : 76.21
LOAD TPS : 71.00    LOAD MAP : 85.00    TPS : 4.00  MAP : 1.90  Final LOAD : 78.00
LOAD TPS : 76.60    LOAD MAP : 10.00    TPS : 4.40  MAP : 0.85  Final LOAD : 43.30
LOAD TPS : 76.60    LOAD MAP : 17.14    TPS : 4.40  MAP : 0.95  Final LOAD : 46.87
LOAD TPS : 76.60    LOAD MAP : 24.29    TPS : 4.40  MAP : 1.05  Final LOAD : 50.44
LOAD TPS : 76.60    LOAD MAP : 31.43    TPS : 4.40  MAP : 1.15  Final LOAD : 54.01
LOAD TPS : 76.60    LOAD MAP : 38.57    TPS : 4.40  MAP : 1.25  Final LOAD : 57.59
LOAD TPS : 76.60    LOAD MAP : 45.71    TPS : 4.40  MAP : 1.35  Final LOAD : 61.16
LOAD TPS : 76.60    LOAD MAP : 52.86    TPS : 4.40  MAP : 1.45  Final LOAD : 64.73
LOAD TPS : 76.60    LOAD MAP : 60.00    TPS : 4.40  MAP : 1.55  Final LOAD : 68.30
LOAD TPS : 76.60    LOAD MAP : 67.14    TPS : 4.40  MAP : 1.65  Final LOAD : 71.87
LOAD TPS : 76.60    LOAD MAP : 74.29    TPS : 4.40  MAP : 1.75  Final LOAD : 75.44
LOAD TPS : 76.60    LOAD MAP : 81.43    TPS : 4.40  MAP : 1.85  Final LOAD : 79.01
LOAD TPS : 76.60    LOAD MAP : 85.00    TPS : 4.40  MAP : 1.90  Final LOAD : 80.80
LOAD TPS : 82.20    LOAD MAP : 10.00    TPS : 4.80  MAP : 0.85  Final LOAD : 46.10
LOAD TPS : 82.20    LOAD MAP : 17.14    TPS : 4.80  MAP : 0.95  Final LOAD : 49.67
LOAD TPS : 82.20    LOAD MAP : 24.29    TPS : 4.80  MAP : 1.05  Final LOAD : 53.24
LOAD TPS : 82.20    LOAD MAP : 31.43    TPS : 4.80  MAP : 1.15  Final LOAD : 56.81
LOAD TPS : 82.20    LOAD MAP : 38.57    TPS : 4.80  MAP : 1.25  Final LOAD : 60.39
LOAD TPS : 82.20    LOAD MAP : 45.71    TPS : 4.80  MAP : 1.35  Final LOAD : 63.96
LOAD TPS : 82.20    LOAD MAP : 52.86    TPS : 4.80  MAP : 1.45  Final LOAD : 67.53
LOAD TPS : 82.20    LOAD MAP : 60.00    TPS : 4.80  MAP : 1.55  Final LOAD : 71.10
LOAD TPS : 82.20    LOAD MAP : 67.14    TPS : 4.80  MAP : 1.65  Final LOAD : 74.67
LOAD TPS : 82.20    LOAD MAP : 74.29    TPS : 4.80  MAP : 1.75  Final LOAD : 78.24
LOAD TPS : 82.20    LOAD MAP : 81.43    TPS : 4.80  MAP : 1.85  Final LOAD : 81.81
LOAD TPS : 82.20    LOAD MAP : 85.00    TPS : 4.80  MAP : 1.90  Final LOAD : 83.60
LOAD TPS : 85.00    LOAD MAP : 10.00    TPS : 5.00  MAP : 0.85  Final LOAD : 47.50
LOAD TPS : 85.00    LOAD MAP : 17.14    TPS : 5.00  MAP : 0.95  Final LOAD : 51.07
LOAD TPS : 85.00    LOAD MAP : 24.29    TPS : 5.00  MAP : 1.05  Final LOAD : 54.64
LOAD TPS : 85.00    LOAD MAP : 31.43    TPS : 5.00  MAP : 1.15  Final LOAD : 58.21
LOAD TPS : 85.00    LOAD MAP : 38.57    TPS : 5.00  MAP : 1.25  Final LOAD : 61.79
LOAD TPS : 85.00    LOAD MAP : 45.71    TPS : 5.00  MAP : 1.35  Final LOAD : 65.36
LOAD TPS : 85.00    LOAD MAP : 52.86    TPS : 5.00  MAP : 1.45  Final LOAD : 68.93
LOAD TPS : 85.00    LOAD MAP : 60.00    TPS : 5.00  MAP : 1.55  Final LOAD : 72.50
LOAD TPS : 85.00    LOAD MAP : 67.14    TPS : 5.00  MAP : 1.65  Final LOAD : 76.07
LOAD TPS : 85.00    LOAD MAP : 74.29    TPS : 5.00  MAP : 1.75  Final LOAD : 79.64
LOAD TPS : 85.00    LOAD MAP : 81.43    TPS : 5.00  MAP : 1.85  Final LOAD : 83.21
LOAD TPS : 85.00    LOAD MAP : 85.00    TPS : 5.00  MAP : 1.90  Final LOAD : 85.00

NOTE : Here, I'm not providing all serial monitor output. Just needed part of OUTPUT here displayed.

1

Here, this is modified code which provide result which I want.

float TPS_MIN = 0.00;
float TPS_MAX = 5.00;

float MAP_MIN = 0.85;
float MAP_MAX = 1.90;

int LOAD_MIN = 2;
int LOAD_MAX = 100;

int RPM_MIN = 400;
int RPM_MAX = 6000;

float LOAD_MIN_TPS_MIN = 2.00;
float LOAD_MAX_TPS_MIN = 10.00;

float LOAD_MIN_TPS_MAX = 15.00;
float LOAD_MAX_TPS_MAX = 85.00;

float LOAD_MIN_MAP_MIN = 2.00;
float LOAD_MAX_MAP_MIN = 15.00;

float LOAD_MIN_MAP_MAX = 10.00;
float LOAD_MAX_MAP_MAX = 85.00;

float injTime_MIN_LOAD_MIN = 4.00;
float injTime_MAX_LOAD_MIN = 4.60;

float injTime_MIN_LOAD_MAX = 8.06;
float injTime_MAX_LOAD_MAX = 14.86;

float injTime_MIN_RPM_MIN = 4.00;
float injTime_MAX_RPM_MIN = 8.06;

float injTime_MIN_RPM_MAX = 4.60;
float injTime_MAX_RPM_MAX = 14.86;


float mTPSmin;
float mTPSmax;
float mMAPmin;
float mMAPmax;

float yTPSmin;
float yTPSmax;
float yMAPmin;
float yMAPmax;

float mTPS;
float mMAP;

float yTPS;
float yMAP;

float LOAD;

float TPS, MAP;

float mLOADmin;
float mLOADmax;
float mRPMmin;
float mRPMmax;

float yLOADmin;
float yLOADmax;
float yRPMmin;
float yRPMmax;

float mLOAD;
float mRPM;

float yLOAD;
float yRPM;

float yInjTime;

int RPM;

void setup()
{
  Serial.begin(9600);
}

void loop()
{   
    TPS = analogRead(A0) * (5.0 / 1023.0);
    MAP = analogRead(A1) * (1.90 / 1023.0);
    RPM = analogRead(A2) * (6000 / 1023.0);

    mTPSmin = (LOAD_MAX_TPS_MIN - LOAD_MIN_TPS_MIN) / (TPS_MAX - TPS_MIN);

    Serial.print("mTPSmin : ");
    Serial.println(mTPSmin);

    yTPSmin = mTPSmin * (TPS - TPS_MIN) + LOAD_MIN_TPS_MIN;

    Serial.print("TPS : ");
    Serial.print(TPS);
    Serial.print("\t");
    Serial.print("LOAD : ");
    Serial.println(yTPSmin);

    mTPSmax = (LOAD_MAX_TPS_MAX - LOAD_MIN_TPS_MAX) / (TPS_MAX - TPS_MIN);

    Serial.print("mTPSmax : ");
    Serial.println(mTPSmax);

    yTPSmax = mTPSmax * (TPS - TPS_MIN) + LOAD_MIN_TPS_MAX;

    Serial.print("TPS : ");
    Serial.print(TPS);
    Serial.print("\t");
    Serial.print("LOAD : ");
    Serial.println(yTPSmax);

    mMAPmin = (LOAD_MAX_MAP_MIN - LOAD_MIN_MAP_MIN) / (MAP_MAX - MAP_MIN);

    Serial.print("mMAPmin : ");
    Serial.println(mMAPmin);

    yMAPmin = mMAPmin * (MAP - MAP_MIN) + LOAD_MIN_MAP_MIN;

    Serial.print("MAP : ");
    Serial.print(MAP);
    Serial.print("\t");
    Serial.print("LOAD : ");
    Serial.println(yMAPmin);

    mMAPmax = (LOAD_MAX_MAP_MAX - LOAD_MIN_MAP_MAX) / (MAP_MAX - MAP_MIN);

    Serial.print("mMAPmax : ");
    Serial.println(mMAPmax);

    yMAPmax = mMAPmax * (MAP - MAP_MIN) + LOAD_MIN_MAP_MAX;

    Serial.print("MAP : ");
    Serial.print(MAP);
    Serial.print("\t");
    Serial.print("LOAD : ");
    Serial.println(yMAPmax);

    mTPS = (yMAPmax - yMAPmin) / (TPS_MAX - TPS_MIN);

    Serial.print("mTPS : ");
    Serial.println(mTPS);

    yTPS = mTPS * (TPS - TPS_MIN) + yMAPmin;

    Serial.print("TPS : ");
    Serial.print(TPS);
    Serial.print("\t");
    Serial.print("LOAD : ");
    Serial.println(yTPS);

    mMAP = (yTPSmax - yTPSmin) / (MAP_MAX - MAP_MIN);

    Serial.print("mMAP : ");
    Serial.println(mMAP);

    yMAP = mMAP * (MAP - MAP_MIN) + yTPSmin;

    Serial.print("MAP : ");
    Serial.print(MAP);
    Serial.print("\t");
    Serial.print("LOAD : ");
    Serial.println(yMAP);

    LOAD = (yTPS + yMAP) / 2;
    Serial.print("Final LOAD : ");
    Serial.println(LOAD);

    mLOADmin = (injTime_MAX_LOAD_MIN - injTime_MIN_LOAD_MIN) / (LOAD_MAX - LOAD_MIN);

    Serial.print("mLOADmin : ");
    Serial.println(mLOADmin);

    yLOADmin = mLOADmin * (LOAD - LOAD_MIN) + injTime_MIN_LOAD_MIN;

    Serial.print("LOAD : ");
    Serial.print(LOAD);
    Serial.print("\t");
    Serial.print("injTime : ");
    Serial.println(yLOADmin);

    mLOADmax = (injTime_MAX_LOAD_MAX - injTime_MIN_LOAD_MAX) / (LOAD_MAX - LOAD_MIN);

    Serial.print("mLOADmax : ");
    Serial.println(mLOADmax);

    yLOADmax = mLOADmax * (LOAD - LOAD_MIN) + injTime_MIN_LOAD_MAX;

    Serial.print("LOAD : ");
    Serial.print(LOAD);
    Serial.print("\t");
    Serial.print("injTime : ");
    Serial.println(yLOADmax);

    mRPMmin = (injTime_MAX_RPM_MIN - injTime_MIN_RPM_MIN) / (RPM_MAX - RPM_MIN);

    Serial.print("mRPMmin : ");
    Serial.println(mRPMmin);

    yRPMmin = mRPMmin * (RPM - RPM_MIN) + injTime_MIN_RPM_MIN;

    Serial.print("RPM : ");
    Serial.print(RPM);
    Serial.print("\t");
    Serial.print("injTime : ");
    Serial.println(yRPMmin);

    mRPMmax = (injTime_MAX_RPM_MAX - injTime_MIN_RPM_MAX) / (RPM_MAX - RPM_MIN);

    Serial.print("mRPMmax : ");
    Serial.println(mRPMmax);

    yRPMmax = mRPMmax * (RPM - RPM_MIN) + injTime_MIN_RPM_MAX;

    Serial.print("RPM : ");
    Serial.print(RPM);
    Serial.print("\t");
    Serial.print("injTime : ");
    Serial.println(yRPMmax);

    mLOAD = (yRPMmax - yRPMmin) / (LOAD_MAX - LOAD_MIN);

    Serial.print("mLOAD : ");
    Serial.println(mLOAD);

    yLOAD = mLOAD * (LOAD - LOAD_MIN) + yRPMmin;

    Serial.print("LOAD : ");
    Serial.print(LOAD);
    Serial.print("\t");
    Serial.print("injTime : ");
    Serial.println(yLOAD);

    mRPM = (yLOADmax - yLOADmin) / (RPM_MAX - RPM_MIN);

    Serial.print("mRPM : ");
    Serial.println(mRPM);

    yRPM = mRPM * (RPM - RPM_MIN) + yLOADmin;

    Serial.print("RPM : ");
    Serial.print(RPM);
    Serial.print("\t");
    Serial.print("injTime : ");
    Serial.println(yRPM);

    yInjTime = (yLOAD + yRPM) / 2;
    Serial.print("Final injTime : ");
    Serial.println(yInjTime);

    delay(1000000);
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.