Flugzeug Lichtschaltung (Tag/Nacht) mit Fotowiderstand

Hmmm, mit dem Taster schaltest du ja deine "Beleuchtungssequenz" in der LOOP immer eine Pos. weiter (prgNr++;)
Den Taster kannst du logo nicht mit dem LDR ersetzen.

Wenn ich das so richtig erkenne, sind deine Programme 1-4 die gleichen wie 5-6, mit dem Unterschied, das bei 5-8 Logo + Innenbeleuchtung dazu kommen.
#0 macht gar nix ?
Eigentlich müsstet du mit der folgenden Änderung nur noch von 0 bis 4 schalten ?!

Allerdings blicke ich nicht wirlich durch die Beschreibung deiner Programmliste mit zugehöriger Auflistung der Lampen und der Schaltfolge in deinem Array - wann wird was denn nun wann hell ?
Das passt irgendwie nicht zusammen ..... oder ?!

Lampe 8 ist Kabine und 9+10 ist Logo ? Die gehen nur bei Programm 5-8 an ? (Also wenn dunkel ?!)

Du müsstest jetzt einfach nur in prgwechsel(byte nr) zusätzliche Abfragen einbauen, ob Programm 5-8 gewählt ist, ob grade Lampe 8, 9 oder 10 abgefragt/geschaltet wird und ob es dunkel oder hell ist.

Um deine "Programmstruktur" beizubehalten, müsste prgwechsel(byte nr) in etwa so aussehen:

void prgwechsel(byte nr) 
{
  Serial.print("prgNr: ");
  Serial.print(prgNr);
  Serial.print("  IOs:");
  for (byte j = 0; j < anzahlLeds; j++) 
  { 
    byte val = programme[nr][j];   // Wert HIER holen
    if ((nr >= 5) && (nr <= 8))    // Programm 5 - 8 ?
    { 
      if ((j <= 8) && (j <= 10))    // Lampe 8 - 10 ?
      {
        val = istDunkel;           // true/1, sonst false/0
      }
    } 
    digitalWrite(LED_AUSGAENGE[j], val);  // LED schalten
    Serial.print("  ");
    Serial.print(programme[nr][j]);
  }
  Serial.println();
}

In der LOOP() brauchst dun noch eine Abfrage des LDR-Spannungsteilers.
Dazu noch 2 Konstanten für Tag / Nacht und die globalen var "istDunkel" und "lux".
In etwa so:

word lux = 0;
boolean istDunkel = false;
const   wirdDunkel = 400: 
const   wirdHell  = 500;
void loop() 
{
  lux = analogRead(0);     // LDR-Teiler abfragen
  if (lux <= wirdDunkel)   // Vergleichen 1.
  { istDunkel = true);     // ... Licht an
  if (lux >= wirdHell)     // Vergleichen 2.  
  { istDunkel = false);    // ... Licht aus
  // ggf. hier Ausgabe der Daten via SERIELL zu testen
  ....
}

Die Werte für "wirdDunkel" und "wirdHell" hängen von den Spannungsteiler-Werten und der Beleuchtungsstärke am LDR ab und müssen experimentell ermittel werden.
Könnte passen bei LDR-07 mit 4K7
Das doppelte IF deswegen, damit es eine Hyterese gibt - sonst flackerts im Rumpf an der Lichtschwelle.

Das ist nicht getestet, nur so nach Gefühl -> ausprobieren !