Hmm.. ich seh da kein if.

Was ich sehe:
Serial.println(ldr1);
Serial.print(ldr2);

Warum nur beim ersten das 'ln' (linefeed) dran? Ich wuerd's beim 2. oder bei beiden machen

'Die abfragen der LDRs soll im 1 Sekundentakt weiter laufen.'
Dann sollten keine weiteren delay-Befehle in derselben Schleife vorkommen ausser dem einen delay(1000).
Sonst macht das Ding ja fuer laenger nichts.
Mit:
digitalWrite(sv, LOW);
delay(10000);
schaltest Du ja nicht nur die sv auf low fuer 10 sec, sondern auch das Programm steht 10 sec. an der Stelle still...

Schau Dir mal http://arduino.cc/en/Reference/Millis an (ACHTUNG, auf die 50 Tage aufpassen!), damit kannst Du Dir eine Zeit merken und jede Sekunde (mit dem vorhandenen delay(1000)) checken, ob schon 10 sek vergangen sind seit dem digitalWrite(sv, LOW) ..
also etwa if (millis() >= zeitvorher+10000) { /* 10 sec vorbei */ zeitvorher = millis(); digitalWrite(sv, HIGH); }
aber irgendwie kommt mir das mit sv auch noch sonderbar und kompliziert vor, schreib mal klar nieder, was wann genau passieren soll (exakt, in Umgangssprache) und dann mach einen klaren Programmfluss draus (Du wolltest ja wohl auch kaum, dass sich das Ding jede 1.5 Sekunden einschaltet und dann sofort wieder ausschaltet, wenn eh alles innerhalb einer Toleranz liegt, oder? Programmiert hast Du's dann aber so
Also lass mal hoeren, was eigentlich passieren soll. Ich kann mir nicht vorstellen, dass Du einfach mal fuer 10 s sv abschalten willst und dann wieder fuer 2 s an, egal was fuer Werte gemessen werden..

Die Schutzdioden verhindern nur, dass der Induktionsimpuls beim Ausschalten nicht durch die Schaltung faehrt, sondern eben durch die Dioden abgeleitet wird. Ist wichtig und gut so.
Aber warum willst Du die Dioden elektroschocken, wenns nicht sein muss? Und der Einschaltstrom faehrt jedesmal kurz durch die Bauteile, auch nicht noetig