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
}