Hi BoondockDuck,

"wenn Du interesse hast" Damit meine ich, dass ich erst meine alten Unterlagen mal sortieren muss um Das hier rein zu setzen!

Hier mal ein stück für den Anfang.

Ich habe mit dem Projekt mit µC Programmierung angefangen.

Code:
'******************************************************************************
'Name                : Lauflicht5x.bas
'Purpose             : Lauflicht für Weihnachtsbaum
'Version              : V0.02
'Compiler            : Bascom AVR 1.11.7.4
'
'Hardware             (1) LED's bzw. Schaltverstärker
'                         an PB0 bis PB5
'                     (2) Schalttaster zur Hand/Auto- Steuerung
'                         an PD0 und PD1
'
'Chiptyp             : AT90S2313
'******************************************************************************

$regfile = "2313def.dat"                                    'AT90S2313
$crystal = 4000000                                          'Quarz-Frequenz



Config Portb = Output                                       'PBx als Ausgänge
Config Portd = Input                                        'PDx als Eingänge

Dim W As Byte                                               'W= Werte in Lauflicht lesen
Dim I As Byte                                               'I= Schleife für 1 Durchgang
Dim J As Byte                                               'J= Vieviel mal Schleife

Dim Z As Byte                                               'Z= Zählerwert
Z = 1

Dim D As Byte
D = 20                                                      'D= Anzahl der Schleifen

Dim T As Integer                                            'T= Taktzeit
T = 200

Portb = 63                                                  ' alle Ports EIN
Wait 60                                                     ' 60 sec Vorheizen

Auto:

Do

For J = 1 To D
    If Pind.1 = 1 Then
    Goto Hand:                                              'Hand/Auto- Ebene
    End If
  Restore Vor1
  For I = 1 To 5
    Read W
    Portb = W
    Waitms T
  Next I
Next J

For J = 1 To D
    If Pind.1 = 1 Then
    Goto Hand:                                              'Hand/Auto- Ebene
    End If
  Restore Rueck1                                            'Zeiger auf Beginn der Daten setzen
  For I = 1 To 5                                            'Lese nächsten Wert
    Read W                                                  'Setze Port
    Portb = W
    Waitms T
  Next I
Next J

For J = 1 To D
    If Pind.1 = 1 Then
    Goto Hand:                                              'Hand/Auto- Ebene
    End If
  Restore Neg1                                              'Zeiger auf Beginn der Daten setzen
  For I = 1 To 5                                            'Lese nächsten Wert
    Read W                                                  'Setze Port
    Portb = W
    Waitms T
  Next I
Next J

For J = 1 To D
    If Pind.1 = 1 Then
    Goto Hand:                                              'Hand/Auto- Ebene
    End If
  Restore Neg2                                              'Zeiger auf Beginn der Daten setzen
  For I = 1 To 5                                            'Lese nächsten Wert
    Read W                                                  'Setze Port
    Portb = W
    Waitms T
  Next I
Next J

For J = 1 To D
    If Pind.1 = 1 Then
    Goto Hand:                                              'Hand/Auto- Ebene
    End If
  Restore Add1                                              'Zeiger auf Beginn der Daten setzen
  For I = 1 To 10                                           'Lese nächsten Wert
    Read W                                                  'Setze Port
    Portb = W
    Waitms T
  Next I
Next J

For J = 1 To D
    If Pind.1 = 1 Then
    Goto Hand:                                              'Hand/Auto- Ebene
    End If
  Restore Wechs1                                            'Zeiger auf Beginn der Daten setzen
  For I = 1 To 12                                           'Lese nächsten Wert
    Read W                                                  'Setze Port
    Portb = W
    Waitms T
  Next I
Next J

For J = 1 To D
    If Pind.1 = 1 Then
    Goto Hand:                                              'Hand/Auto- Ebene
    End If
  Restore Kllauf1                                           'Zeiger auf Beginn der Daten setzen
  For I = 1 To 3                                            'Lese nächsten Wert
    Read W                                                  'Setze Port
    Portb = W
    Waitms T
  Next I
Next J

For J = 1 To D
    If Pind.1 = 1 Then
    Goto Hand:                                              'Hand/Auto- Ebene
    End If
  Restore Ende                                              'Zeiger auf Beginn der Daten setzen
  For I = 1 To 2                                            'Lese nächsten Wert
    Read W                                                  'Setze Port
    Portb = W
    Wait 1
  Next I
Next J

Loop

End




'+++++++++++++++++++++++++++++++++++++++++++
' Daten für verschiedene Lauflichtfunktionen
'+++++++++++++++++++++++++++++++++++++++++++


Vor1:
Data 33 , 34 , 36 , 40 , 48,                                '6  12345 einzenl vorwärts

Rueck1:
Data 48 , 40 , 36 , 34 , 33,                                '6  54321 einzeln rückwärts

Neg1:
Data 62 , 61 , 59 , 55 , 47,                                '6  12345 negiert einzeln

Neg2:
Data 47 , 55 , 59 , 61 , 62,                                '6  54321 negiert einzeln

Add1:
Data 32 , 33 , 35 , 39 , 47 , 63,                           '6  12345 addierend
Data 62 , 60 , 56 , 48 ,                                    '6  12345 subtrahierend

Wechs1:
Data 32 , 33 , 49 , 51 , 59 , 63,                           '6  1-15-152-1524-15243
Data 32 , 63 , 32 , 63 , 32 , 63,                           '6  3xalle

Kllauf1:
Data 37 , 42 , 52,                                          '6  13-24-35

Ende:
Data 31 , 32,                                               '6  12345 im Wechsel



Hand:

If Pind.1 = 0 Then
   Goto Auto:
End If

If Pind.0 = 0 Then
   Z = Z * 2
End If

If Z > 32 Then
   Z = 1
End If

Portb = Z

Wait 1

Goto Hand:
Das ist der fertige Code, der bei mir im Steuergerät läuft.
Im Code ist eigentlich schon alles beschrieben.

Ich habe eine Doppelstockplatine gebaut.
Auf einer Platine ist der Prozessor und das 5V- Netzteil.

Auf der Anderen Platine ist das 230V Leistungsteil mit Solid State Relais. Damit habe ich die Kiste auf ein Minimum reduzieren können und die Verlustwärme hält sich in Grenzen.
Betrieben wird hiermit ein ca. 20m langer Lauflichtschlauch, der Weihnachten immer um den Weihnachtsbaum vorm Haus gehängt wird

Lass dich nicht vom Code schrecken!
Als ich anfing war der Code vielleicht 10 Zeilen lang!

Das meinte ich mit Spieltrieb!!