Elektronische Adventkerzen

 

Materialbedarf

 

Anz. Bezeichnung Datenblatt
1 Batterie/Spannungsquelle 9V  
1 Spannungsregler 7805
1 ATtiny26 AVR-Prozessor
4 Widerstand 220 Ohm  
1 Widerstand 10 kOhm  
1 Elektrolytkondensator 100 µF/16V  
1 Kondensator 100nF  
4 Standard-Leuchtdiode 3mm oder 5mm 3mm, 5mm
Programmierten ATtiny26 bei DES bestellen
Bauteileset mit leeren AVR bei DES bestellen
Bauteileset mit programmierten AVR bei DES bestellen

 

 

Beschreibung

 

In vielen Haushalten ist es ein Brauch, während der Vorweihnachtszeit Adventkerzen brennen zu lassen, wobei die Anzahl der brennenden Kerzen angeben, welche Adventwoche gerade ist. Leider sind, gerade in Haushalten mit Kindern, echte Kerzen doch recht gefährlich. Eine Lösung wäre es, diese durch einfache Kerzenlampen zu ersetzen. Aber solche Lampen geben nur ein konstantes Licht ab. Das 'magische' Flackern des Lichts bleibt aus.

 

Eine möglich Lösung könnte diese Bastelei darstellen. Hier sorgt ein kleiner AVR dafür, dass bis zu 8 'Kerzen' flackern. Mit speziellen LEDs (Rocket-LEDs) und etwas Bastelgeschick kann man so künstlich echte Kerzen nachbilden. Bei den hier vorgestellten Aufbau werden aber nur 4 LEDs angeschlossen.

 

 

Video

 

Ein Video zu dieser Schaltung gibt es hier.

 

 

Aufbau

 

 

 

 

Software

 

'##################################
'###                            ###
'### Elektronische Adventkerzen ###
'###          (c) 2010          ###
'###            von             ###
'###       Thomas Krüger        ###
'###                            ###
'##################################

$regfile "Attiny26.dat"
$crystal = 1000000

'### Variablendefination
Dim Cnt(8) As Byte
Dim Count As Byte
Dim C As Byte

'### Ausgabeport auf Ausgang schalten
Config Porta = Output

'### Timer für Lichtflackern aktivieren
Config Timer0 = Timer , Prescale = 256
Enable Timer0
On Timer0 Firelights

'### Timer für PWM-Steuerung aktivieren
Config Timer1 = Timer , Prescale = 1
Enable Timer1
On Timer1 Timer_counter

'### Interrupts aktivieren
Enable Interrupts

'### Leerschleife als Hauptprogramm
Do
Loop

'### Lichtflackern
Firelights:
  For C = 1 To 8
    Cnt(c) = Rnd(256)
  Next C
  Return

'### PWM-Steuerung der Ausgänge
Timer_counter:
  Incr Count : If Count >= 64 Then Count = 0
  If Cnt(1) > Count Then Porta.0 = 1 Else Porta.0 = 0
  If Cnt(2) > Count Then Porta.1 = 1 Else Porta.1 = 0
  If Cnt(3) > Count Then Porta.2 = 1 Else Porta.2 = 0
  If Cnt(4) > Count Then Porta.3 = 1 Else Porta.3 = 0
  If Cnt(5) > Count Then Porta.4 = 1 Else Porta.4 = 0
  If Cnt(6) > Count Then Porta.5 = 1 Else Porta.5 = 0
  If Cnt(7) > Count Then Porta.6 = 1 Else Porta.6 = 0
  If Cnt(8) > Count Then Porta.7 = 1 Else Porta.7 = 0
  Return

 

 

Zurück zur Auswahlseite            Zur Hauptseite