Weihnachtsstern

 

Materialbedarf

 

Anz. Bezeichnung Datenblatt
1 Batterie/Spannungsquelle 9V  
1 Spannungsregler 7805
1 ATtiny26 AVR-Prozessor
8 Widerstand 220 Ohm  
1 Widerstand 10 kOhm  
1 Elektrolytkondensator 100 µF/16V  
1 Kondensator 100nF  
8 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

 

Während der Vorweihnachtszeit erstrahlen die Städte mit unzähligen Lichtern und Lichteffekten. Auch im gemütlichen Heim versuchen die meisten, mit mehr oder weniger umfangreichen Lichteffekten, sich die Vorweihnachtszeit stimmungsvoll zu gestalten. Dieser Weihnachtsstern kann vielleicht ein wenig dabei helfen.

 

Die 8 LEDs werden in einem Stern aus Pappe oder dünnem Holz in den Zacken angebracht. Nach dem Einschalten leuchten die Leuchtdioden wechselseitig sanft auf und verlöschen wieder. Es ist problemlos möglich, die Anzahl der LEDs zu verdoppeln. Hierzu muss man nur 2 Leuchtdioden in Reihe schalten und der Vorwiderstand (R2 bis R9) auf 100 Ohm verringern.

 

Zum Betrieb dieser Schaltung ist es empfehlenswert, zur Stromversorgung ein Steckernetzteil mit mindestens 9V Gleichspannung zu verwenden. Eine Batterie wäre in wenigen Stunden aufgebraucht.

 

Selbstverständlich muss man nicht zwingend einen Stern damit bauen. Der Fantasie sind hier keine Grenzen gesetzt.

 

 

Video

 

Ein Video zu dieser Schaltung gibt es hier.

 

 

Aufbau

 

 

 

 

Software

 

'#######################################
'###                                 ###
'###  W e i h n a c h t s s t e r n  ###
'###            (c)  2009            ###
'###               von               ###
'###          Thomas Krüger          ###
'###                                 ###
'#######################################

$regfile "ATtiny26.dat"
$crystal = 1000000

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

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

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

'### Timer für Lauflicht aktivieren
Config Timer1 = Timer , Prescale = 64
Enable Timer1
On Timer1 Float_lights

'### Interrupts aktivieren
Enable Interrupts

'### Startwerte zuweisen
Cnt(1) = 7 : Cnt(2) = 15 : Cnt(3) = 23 : Cnt(4) = 31
Cnt(5) = 39 : Cnt(6) = 47 : Cnt(7) = 55 : Cnt(8) = 63

'### Leerschleife als Hauptprogramm
Do
Loop

'### PWM-Steuerung der Ausgänge
Timer_counter:
  Incr Count : If Count = 32 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

'### Lauflichtsteuerung
Float_lights:
  For C = 1 To 8
    If R(c) = 1 Then Incr Cnt(c) Else Decr Cnt(c)
    If Cnt(c) => 63 Then R(c) = 0
    If Cnt(c) = 0 Then R(c) = 1
  Next C
Return

 

 

Zurück zur Auswahlseite            Zur Hauptseite