' ******************************************************
' *** ***
' *** Reaktiv-Tiny mit Watchdog-Abschaltung und LDR ***
' *** ***
' ******************************************************
$regfile = "ATtiny13.DAT"
$crystal = 113000 'Frequenz des internen Oszillators
Config Portb = &B00000111 'Pinb.0 1 2 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = 0
Stop Adc 'A/D-Wandler abschalten, um Strom zu sparen
Stop Ac 'Analog-Komparator abschalten, um Strom zu sparen
Wdtcr = &B11010011 'Watchdog definieren: 0.125 Sekunden, Interrupt auslÄosen, kein Reset
Enable Interrupts 'Interrupts freigeben
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte 'Daten1
Dim Ldr As Bit
Dim Hell As Bit
Dim Hell_2 As Byte
Dim Schlafzaehler As Byte
Const Zwangsimpuls = 10 'anzahl der Schlafzyklen 8s vor zwangsblinken
Portb.3 = 1 ' Hallo Flashen + Blinksequenz 1x
Portb.2 = 1
Waitms 900
Portb.3 = 0
Portb.2 = 0
Waitms 900
Gosub Blinken
Do
Gosub Ldr_abfrage
If Ldr = 1 Then
Hell = 1 'Bei Licht Merker setzen
End If
If Hell = 1 And B < 255 Then
B = B + 1 'Wenn Merker gesetzt wurde, ZÄahler fÄur Lichtdauer erhÄohen (bis max. 255)
End If
If B > 150 Then
Gosub Abschalten 'Schlafmodus wenn es zu lange am StÄuck hell ist
End If
If Ldr = 0 And Hell = 1 And B < 30 Then 'Wenn es wieder dunkel ist und der Lichtimpuls nur kurz war
Hell_2 = 0 'zweiten Hell-Merker setzen
For C = 0 To 5 'und 5 mal abfragen
Gosub Ldr_abfrage
If Ldr = 1 Then
Hell_2 = Hell_2 + 1 'ob es auch wieder dunkel ist
End If
Next C
If Hell_2 = 0 Then 'erst dann blinken
Gosub Blinken
End If
Hell = 0
B = 0
End If
If Ldr = 0 Then 'Bei Dunkelheit Merker und ZÄahler fÄur Lichtdauer lÄoschen
Hell = 0 'damit sich das Programm nicht aufhÄangt
B = 0
End If
Loop
Ldr_abfrage:
Portb.0 = 1 'Spannung auf LDR geben
Reset Watchdog 'Kurz warten bis sich alles eingeschwungen hat
Powerdown
Ldr = Pinb.4 'LDR abfragen
Portb.0 = 0 'Spannung von LDR wieder wegnehmen
Return
Blinken:
For D = 1 To 5
Portb.3 = 1
Waitms 50
Portb.3 = 0
Waitms 500
Next D
Waitms 1000
For D = 1 To 2
Portb.3 = 1
Waitms 50
Portb.3 = 0
Waitms 500
Next D
Waitms 1000
For D = 1 To 3
Portb.3 = 1
Waitms 50
Portb.3 = 0
Waitms 500
Next D
Waitms 2000
For D = 1 To 4
Portb.2 = 1
Waitms 50
Portb.2 = 0
Waitms 500
Next D
Waitms 1000
For D = 1 To 8
Portb.2 = 1
Waitms 50
Portb.2 = 0
Waitms 500
Next D
Waitms 1000
For D = 1 To 6
Portb.2 = 1
Waitms 50
Portb.2 = 0
Waitms 500
Next D
Return
Abschalten: 'Prozessor fÄur 8 Sekunden schlafen lassen
Wdtcr = &B11110001
Reset Watchdog
Powerdown
Wdtcr = &B11010011
Return
End
Das mag Deine Erfahrung sein, ist ja auch gut so. Ich weiß nicht, wie tief Du in der Sache drin steckst. Wenn man jedoch weiß, wo und wie man den, gerade mal einen, Wert ändern muß, dann läßt sich die Empfindlichkeit sehr einfach und komfortabel einstellen. Ich benutze seit Jahren blaue, grüne, weiße, gelbe, orange und rote LED's, alle >6000mcd.nExoDus schrieb:Ich finde die Nur LED Version analog nicht so toll denn sie funktionierrt nicht mit jeder LED und das anpassen ist eine Knobelei. Mit der LRD version mit den micht abschaltbaren Spannungsteiler (LRD zwischen plus und Pin3) hab ich die besten Erfahrungen gemacht.
nExoDus schrieb:Ich finde die Nur LED Version analog nicht so toll denn sie funktionierrt nicht mit jeder LED und das anpassen ist eine Knobelei. Mit der LRD version mit den micht abschaltbaren Spannungsteiler (LRD zwischen plus und Pin3) hab ich die besten Erfahrungen gemacht.
upigors schrieb:geht mir genauso. ich hab mal flüchtig die Variante ohne LDR versucht, habs aber schnell sein gelassen... mein Tip wird immer sein die 90cent mehr ruhigen Gewissens auszugeben.
Aber das sind nur meine Erfahrungen und meine bescheidene meinung![]()
upigors schrieb:geht mir genauso. ich hab mal flüchtig die Variante ohne LDR versucht, habs aber schnell sein gelassen...![]()
Ich will nicht jedes Mal neu an den Werten spielen müssen wenn ich eine neue LED einbaue. Und sogar bei unterschiedlichen LEDs der gleichen Farbe kann es sein daß man da schon was anpassen muß, je nach dem wie die LEDs ausgelegt sind. Übrigens hab ich schon mal festgestellt daß wohl auch die Temperatur der LED eine Rolle spielt, die reagiert also anders im warmen Wohnzimmer als bei -10°.Teddy-Teufel schrieb:Das mag Deine Erfahrung sein, ist ja auch gut so. Ich weiß nicht, wie tief Du in der Sache drin steckst. Wenn man jedoch weiß, wo und wie man den, gerade mal einen, Wert ändern muß, dann läßt sich die Empfindlichkeit sehr einfach und komfortabel einstellen. Ich benutze seit Jahren blaue, grüne, weiße, gelbe, orange und rote LED's, alle >6000mcd.
Ja, fein! Jeder halt so, wie er es für sich ausgefummelt hat. Weiß kann ich bestätigen alle anderen Farben jedoch nicht. Orange und und gelb kommt den roten LED's sehr nahe, bei grün ist es nicht ganz so. Das RL bei mir auf dem Balkon enthält eine blaue LED, es hat im Winter 2010-2011 selbst bei ca. -15°C zuverlässig gearbeitet.stonewood schrieb:Ach ja, weiße LEDs gehen dafür eh nicht, da das ja eigentlich blaue mit einem Fluoreszenz sind. Einfallendes Licht wird von dem Fluoreszenz wieder gestreut. Orange? Ich meine daß die wie die Weißen aufgebaut sind, oder? Wo wir wieder bei den Ausnahmen sind. In ein LDR-Reaktivlicht kommt die einfach ohne irgendeine Änderung am Programmcode rein.
.. ich vergaß ... gleichfalls!Teddy-Teufel schrieb:Frohes neues Jahr allen hier in der "grünen Hölle"![]()
Der innere Aufbau der LEDs ist eine Erklärung warum es mit der einen LED funktioniert und mit der anderen eben nicht. Übrigens gibts Orange als einzelne Farbe oder als sogenannter 'Pastellton' - ersteres ist wie z.B. eine rote aufgebaut, zweiteres wie eine weiße.Weiß kann ich bestätigen alle anderen Farben jedoch nicht. Orange und und gelb kommt den roten LED's sehr nahe, bei grün ist es nicht ganz so.
[..]
Bei der ganzen Fummelei interessieren mich auch kein innerer Aufbau oder sonst etwas, die Hauptsache es funktioniert so, wie ich es mir vorstelle.