2 Sachen:
Das Erreichen der beiden Endposition würde ich über Endschalter realisieren, nicht durch die Strommessung. Zur Sicherheit 2 Endschalter: einen für die Positionsmeldung an die Elektronik und einen 2. der später betätigt wird, um die Stromversorgung des Motors zu unterbrechen (Nothalt der manuell resetiert werden muß).
Nach der Kontrolle des Kodes hier ein bißchen ein "Flußdiagramm"
Temperatur hoch und Motor erreicht endposition un bleibt stehen:
float temperatur = (5.0 * sensorLesen0 * 100 / 1024-35);
int strom = analogRead(klappenmotorSensor);
...
if (strom >= 250) // Motor steht Strom größer 250( nicht A sondern wert!)
{
digitalWrite (klappenSteuerung1, LOW); //Motor steht
digitalWrite (klappenSteuerung2, LOW); //wieder
int statusKlappe = 0; // Status der Klappe
}
...
if (strom >= 250)
{
digitalWrite (klappenSteuerung2, LOW);
digitalWrite (klappenSteuerung1, LOW);
int statusKlappe = 1;
}
um dann beim nächsten loop() -Durchlauf:
float temperatur = (5.0 * sensorLesen0 * 100 / 1024-35);
int strom = analogRead(klappenmotorSensor);
...
//Steuerung Klappenmotor nach Abgastemperatur
if (temperatur >= 250 && statusKlappe == 1)
{
digitalWrite (klappenSteuerung1, HIGH); // Temperatur >250 Motor läuft
}
den Motor wieder zu starten un dann im nächsten Loop() Durchlauf wieder zu stoppen ...
Grüße Uwe