int total_lookup_array_num = 16;
double batt_volt_array[] = {30,45,45.5,46,46.5,47,47.5,48,48.5,49,49.5,50,50.5,51,51.5};
double batt_mult_array[] = {0,0.07,0.13,0.20,0.27,0.33,0.40,0.47,0.53,0.60,0.67,0.73,0.8,0.87,0.93,1};
double batt_socs_array[] = {0,6.7,13.3,20,26.7,33.3,40,46,53.3,60,66.7,73.3,80,86.7,93.3,100};
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("\nHello, ESP32!");
  double batt_soc = 50;
  double batt_volt = 0, batt_mult = 0;
  for ( int x = 0; x < total_lookup_array_num; x++ ) {
    if( batt_soc == batt_socs_array[x] ) {
      batt_volt = batt_volt_array[x];
      break;
    }
   double min_ = batt_socs_array[x];
   double max_ = batt_socs_array[x+1];
    if( batt_soc > min_ && batt_soc < max_  ) {
      batt_volt = (batt_volt_array[x]+batt_volt_array[x+1])/2.0;
      break;
    }
  }  // end loop
  for ( int x = 0; x < total_lookup_array_num; x++ ) {
    if( batt_volt == batt_volt_array[x] ) {
      batt_mult = batt_mult_array[x];
      break;
    }
   double min_ = batt_volt_array[x];
   double max_ = batt_volt_array[x+1];
    if( batt_volt > min_ && batt_volt < max_  ) {
      batt_mult = (batt_mult_array[x]+batt_mult_array[x+1])/2.0;
      break;
    }
  }  // end loop
  Serial.print("batt volt: ");
  Serial.println(batt_volt);
  Serial.print("batt mult: ");
  Serial.println(batt_mult);
}
void loop() {
  // put your main code here, to run repeatedly:
  delay(10); // this speeds up the simulation
}