Jestli mě teda rozumíte. Tady je můj výtvor.
int voltagepb = A0; //mereni napeti Li baterie
int voltageli = A1; //mereni napeti Pb baterie
int voltagefv = A2; //mereni napeti panelu
int currentli = A3; //mereni proudu pro Li baterie
int IRFli = 3; //MOSFET nabijeni Li
int IRFpb = 6; //spinac nabijeni Pb
int IRFliv = 7; //MOSFET zateze Li
int IRFpbv = 8; //MOSFET zateze Pb
int Vpb = 0;
int Vli = 0;
int Vfv = 0;
int Ili = 0;
void setup()
{
Serial.begin(9600);
pinMode(IRFpb, OUTPUT); //vystupy pro ULM2003 spinac P-MOSFET
pinMode(IRFli, OUTPUT);
pinMode(IRFliv, OUTPUT);
pinMode(IRFpbv, OUTPUT);
}
void loop()
{
int Vpb=analogRead(voltagepb); //napeti Pb baterie
int Vli=analogRead(voltageli); //napeti Li baterie
int Vfv=analogRead(voltagefv); //napeti FV panelu
int Ili=analogRead(currentli); //proud do Li baterie
float voltpb = Vpb * ((5.0/1023.0)*6.
float voltli = Vli * ((5.0/1023.0)*6.
float voltfv = Vfv * ((5.0/1023.0)*6.
float ampli = (.19 * (Ili) -25) / 1000; //pro ACS712 20A ???
Serial.println(voltli);
Serial.println(voltpb);
Serial.println(voltfv);
Serial.println(ampli);
if((voltfv > 14.40)&&(voltli < 12.40))
{
digitalWrite(IRFli, HIGH);
}
if((voltfv > 14.40)&&(voltpb < 12.60))
{
digitalWrite(IRFpb, HIGH);
}
if((voltli > 12.55)||(voltfv < 14.00))
{
digitalWrite(IRFli, LOW);
}
if((voltpb > 13.60)||(voltfv < 14.00))
{
digitalWrite(IRFpb, LOW);
}
if(voltpb > 12.10)
{
digitalWrite(IRFpbv, HIGH);
}
if(voltli > 11.60)
{
digitalWrite(IRFliv, HIGH);
}
if(voltpb < 11.50)
{
digitalWrite(IRFpbv, LOW);
}
if(voltli < 11.10);
{
digitalWrite(IRFliv, LOW);
}
delay(1000);
}