Hallo,

ich war das WE nicht daheim, deshalb schreib ich erst jetzt.

Hab den Code geändert und ein wenig erweitert:

Der letzte Abschnitt
digitalWrite(sv, LOW);
delay(10000);
digitalWrite(sv, HIGH);
delay(2000);
regelt die Nachführung bzw. die Stromversorgung der Motoren,

diese sollen später immer nur jede 1/4 Stunde ca. 30 sec. nachführen.

Die abfragen der LDRs soll im 1 Sekundentakt weiter laufen.

Und hier ist mein nächstes Problem.

Die if Abfrage (1000)
}
Serial.println(ldr1);
Serial.print(ldr2);
delay(1000);


digitalWrite(sv, LOW);
delay(10000);
nimmt die 10000ms der sv, LOW an.

Habe ich da etwas falsch geschrieben?


int ledPin1 = 13;
int ledPin2 = 12;
int sv = 11;

void setup(){
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(sv, OUTPUT);
Serial.begin(9600);}
void loop(){
int ldr1 = analogRead(0);
int ldr2 = analogRead(1);

if (abs(ldr1-ldr2) < 10){
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
}
else if (ldr1 > ldr2){
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
}
else if (ldr1 < ldr2){
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
}
Serial.println(ldr1);
Serial.print(ldr2);
delay(1000);


digitalWrite(sv, LOW);
delay(10000);
digitalWrite(sv, HIGH);
delay(2000);
}


Calis007

Ja. ich seh das genau wie Felix. Speziell wenn Spulen (in Motor oder Relais) geschaltet werden, kann es da recht fette Induktionsimpulse geben, die Du sicher nicht haben willst. Also unbedingt anpassen!

Auch wenn ich Dioden umgekehrt, parrallel zum Relais schalte?


Danke Gruß Fischy