Tiny Candle            

von Stefan Speckmann                        
Elektronik-Labor  Projekte   AVR   T13-Contest



http://www.elektronik-web.de/htm/tiny_candle.htm

Mit etwas Software-PWM habe ich hier ein "zufälliges" Flackern realisiert.  Drei Zufallswerte spielen hier eine Rolle: Helligkeit, Flackerzeit und die Pausenzeit. Alle Werte werden mit einer Random-Funktion innerhalb bestimmter Grenzen generiert. So geht der Helligkeitswert nur bis ca. 60 Prozent runter. Die Flackerzeit schwankt im Millisekundenbereich und die Pausenzeit variiert hier von Millisekunden bis hin zu wenigen Sekunden. Da der Zufallsgenerator nur ein "Pseudozufallsgenerator" ist, ergab sich hierein besonderes Problem: Nach dem Einschalten des Kranzes flackern alle Kerzen im Gleichtakt. Und um das zu vermeiden, habe ich bei jeder Programmierung eines Tinys für den Randomgenerator einen anderen Startwert gesetzt.





Download: Candle.zip

$regfile = "ATtiny13.dat"
$hwstack = 16
Config Pinb.4 = Output

Dim A As Byte
Dim H As Byte , H1 As Byte
Dim F1 As Byte , F2 As Byte
Dim P As Word
'**************************************
Dim ___rseed As Word : ___rseed = 2400
'***************************************
'Bei jedem Tiny einen anderen Startwert setzen!

Do
P = Rnd(5000) 'Pausenzeit
F1 = Rnd(100) 'Flackerzeit
H1 = Rnd(180) 'Helligkeitswert
H = H1 + 75
For F2 = 0 To F1
Portb.4 = 1
For A = 0 To 255
If H = A Then Portb.4 = 0
Waitus 15
Next A
Next F2
Portb.4 = 1
Waitms P
Loop
End




Elektronik-Labor  Projekte   AVR   T13-Contest