#include <LiquidCrystal_I2C.h>
#include <math.h>
LiquidCrystal_I2C lcd(0x27,20,4);
int Number_of_load,Hours,Nominal_capacity, no_of_parallel,no_of_series,no_of_Batteries;
float Nominal_voltage,Voltage,Current, total_amp_hour;
int price[4]={97,198,400,750};
int p;
void setup()
{
lcd.begin(20,4);
Serial.begin(9600);
}
void loop()
{
// Ask for input from Serial Monitor and assign values to variables
Serial.print("Enter the number of Motors:");
while (!Serial.available()) {} // Wait for input
Number_of_load = Serial.parseInt();
Serial.read();
Serial.println( Number_of_load);
Serial.print("Enter nominal voltage of 18650:");
while (!Serial.available()) {}
Nominal_voltage = Serial.parseFloat();
Serial.read();
Serial.println( Nominal_voltage);
Serial.print("Enter nominal capacity of 18650 in Amps:");
while (!Serial.available()) {}
Nominal_capacity = Serial.parseInt();
Serial.read();
Serial.println( Nominal_capacity);
Serial.print("Enter hours:");
while (!Serial.available()) {}
Hours = Serial.parseInt();
Serial.read();
Serial.println(Hours);
Serial.print("Enter voltage:");
while (!Serial.available()) {}
Voltage = Serial.parseFloat();
Serial.read();
Serial.println( Voltage);
Serial.print("Enter current:");
while (!Serial.available()) {}
Current = Serial.parseFloat();
Serial.read();
Serial.println( Current);
if (Nominal_capacity == 2) p=price[0];
if (Nominal_capacity == 3) p=price[1];
if (Nominal_capacity == 4) p=price[2];
if (Nominal_capacity == 5) p=price[3];
total_amp_hour = Number_of_load * Current * Hours;
lcd.clear();
lcd.setCursor(0,0);
no_of_parallel = ceil(total_amp_hour / Nominal_capacity);
lcd.print("Parallel_B:"+String(no_of_parallel ));
lcd.setCursor(0,1);
no_of_series = ceil(Voltage / Nominal_voltage);
lcd.print("Series_B:"+String(no_of_series ));
lcd.setCursor(0,2);
no_of_Batteries = no_of_parallel * no_of_series;
lcd.print("Total_B:"+String( no_of_Batteries));
lcd.setCursor(0,3);
lcd.print("Total_cost:"+String(p * no_of_Batteries));
}