Smooth_on: 'dimmt HGB an
X = 0
Do
Ocr2 = X
Incr X
Waitms 2
Loop Until X = 255
Hgb = 1 'übergibt aktuellen Status der HGB
Return


Smooth_off: 'dimmt HGB aus
X = 255
Do
Ocr2 = X
Decr X
Waitms 2
Loop Until X = 0
Hgb = 0 'übergibt aktuellen Status der HGB
Return

Das wäre schonmal ein nettes Feature, wenn die Schaltung ein-/ausgeschaltet wird. Damit geht die Bel. nicht schlaghaft an bzw. aus.

Hgb_dimmen:


A = Getadc(0)
If A < Minhell Then
Ocr2 = Pwmmin
End If

If A > Maxhell Then
Ocr2 = Pwmmax
End If

If A > Minhell Then
If A < Maxhell Then
B = Maxhell - Minhell
C = Pwmmax - Pwmmin
D = C / B
Ocr2 = D
End If
End If

Und das der Code zum dimmen in Abhänigkeit eines LDR an ADC. Einige Variablen kannst du weglassen, wenn es keine Grundhelligkeit geben soll usw.
Du musst ggf. einen Faktor einbauen um den LDR anzupassen.
Die HGB hat 4,etwas Volt. Angeschlossen ist sie über einen BC-Transistor direkt an 5V. So spart man sich noch die Vorwiderstand.