Hi, I am using ESP32 controller. I'm not very good at arduino. According to the code I shared, gr2 information should be displayed on the screen. However, the code finds the gr1 info every time. I could never understand this. Can you help?
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f, 16,2);
float frequency = 100;
float PotV=50 ;
float k1=1, k2=2, k3=10, k4=8, k5=3, k6=5;
float f1, f2, f3, f4, f5, f6 ;
float fa1, fa2, fa3, fa4, fa5, fa6 ;
float fb1, fb2, fb3, fb4, fb5, fb6 ;
void setup()
{
Serial.begin(115200);
lcd.begin();
lcd.clear();
lcd.backlight();
}
void loop()
{
f1 = k1 * PotV; f2 = k2 * PotV; f3 = k3 * PotV;
f4 = k4 * PotV; f5 = k5 * PotV; f6 = k6 * PotV;
fa1 = f1 * 0.9; fb1 = f1 * 1.1;
fa2 = f2 * 0.9; fb2 = f2 * 1.1;
fa3 = f3 * 0.9; fb3 = f3 * 1.1;
fa4 = f4 * 0.9; fb4 = f4 * 1.1;
fa5 = f5 * 0.9; fb5 = f5 * 1.1;
fa6 = f6 * 0.9; fb6 = f6 * 1.1;
if (fa1<=frequency<fb1)
{
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print("Gr:1" );
}
else if (fa2<=frequency<fb2)
{
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print("Gr:2" );
}
else if (fa3<=frequency<fb3)
{
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print("Gr:3" );
}
else if (fa4<=frequency<fb4)
{
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print("Gr:4" );
}
else if (fa5<=frequency<fb5)
{
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print("Gr:5" );
}
else if (fa6<=frequency<fb6)
{
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print("Gr:6" );
}
else
{
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print("Gr:7" );
}
}