Ich würde zum Testen des Lauflichts auch nicht gleich den PIR mit reinnehmen, sondern einfach stumpf nur die LichtAn() Funktion in der loop testen.
Zerlege Dein Problem in Teilproblem und löse jedes einzeln, erst dann alles zusammensetzen.
z.B.
void loop() {
richtung = 1;
LichtAn(richtung);
delay(5000);
LichtAus();
delay(2000);
richtung = 2;
LichtAn(richtung);
delay(5000);
LichtAus();
delay(5000);
}
Außerdem würde ich für den Anfang in die einzelnen Programmteile einfache Debug-Ausgaben per "Serial.println()" einbauen. Damit kannst Du im seriellen Monitor schauen was Dein Programm gerade macht.
Mario.