// Laderegler 1 U13 Workshop HHC 18.6.17 // Halbiert bei 1V den Ladestrom, schaltet bei 1,2 V ab. int U0; int U1; int U2; float UBat; // Batteriespannung float ILade; // Ladestrom float SollLade = 1.0; // Ladestrom Sollwert float UEin; // Eingangsspannung int Ladestrom = 100; int Ladaus; //Ladung long Zeit; void setup() { pinMode (3, OUTPUT); // Ladestrom PWM pinMode (5, OUTPUT); // Entladung bei LOW digitalWrite (5, HIGH); // Entladung aus! Serial.begin(9600); // 9600 Baud Serial.println("Laderegler Reg1"); Zeit=millis()+1000; Ladaus=0; } void loop() { U0 = analogRead(0); // Ladestrom an 100 Ohm ILade=U0/20.0; U1 = analogRead(1); // Spannung +Pol Batterie UBat=(U1-U0)/200.0; U2 = analogRead(2); // Speisespannung/3 UEin = U2/66.0; if (UBat > 1.0) SollLade=0.5; if (UBat > 1.2) { SollLade=0.0; Ladaus=1; Ladestrom=0; digitalWrite (5, LOW); // Entladung ein! analogWrite(3,0); } if (Ladaus==0) { if (ILade < SollLade) Ladestrom=Ladestrom+1; else Ladestrom=Ladestrom-1; analogWrite(3,Ladestrom); } if (millis()>Zeit) // Drucken alle Sekunde { Serial.print("UBat = "); Serial.print(UBat); Serial.print(" Volt // ILade= "); Serial.print(ILade); Serial.print(" mA // UEin = "); Serial.print(UEin); Serial.println(" Volt "); Zeit=Zeit+1000; } delay(50); }