Sondersignalanlage für Modellfahrzeuge           

von Martin Müller                      
Elektronik-Labor  Projekte   AVR   T13-Contest

 

Die Sondersignalanlage erzeugt an zwei blauen LEDs (PB.3 und PB.4) charakteristische Doppelblitze. Die asynchronen Lichtblitze lassen den Eindruck entstehen, es handele sich um zwei voneinander unabhängige Blitzlichter. An PB.0 und PB.2 wird durch den Timer 0 ein Zweiklanghorn simuliert, das unabhängig von der Blinkfrequenz der LEDs, die typische Tonfolge eines Martinshorns erzeugt. Die  Spitze-zu-Spitze-Spannung (USS) des Signals übersteigt durch entgegengesetztes Einschalten der genannten Ports deutlich die Größe der Betriebsspannung. Das Tonsignal wird über einen Piezo-Schallwandler aus einem defekten Rauchmelder ausgegeben. Ein- und ausgeschaltet wird die Sondersignalanlage durch einen positiven Flankenimpuls an PB.1. Im vorliegenden Aufbau wird hierfür ein Reedkontakt verwendet. Bei weiterer Miniaturisierung der Schaltung (Verwendung von SMD-Bauteilen), wobei die größte Schwierigkeit in der Beschaffung eines geeigneten Schallwandlers bestehen dürfte, wäre es möglich, beim Überfahren eines Magneten die „Einsatzfahrt“ zu beginnen und beim Überfahren eines weiteren Magneten diese zu beenden.

 

Der Schaltplan der Sondersignalanlage gestaltet sich denkbar einfach. In Abhängigkeit von der zum sicheren Betrieb der LEDs notwendigen Spannung wird die an die Schaltung anzulegende Versorgungsspannung gewählt und die Widerstände R1 und R2 dimensioniert. Die von mir verwendeten LEDs leuchten schon bei ca. 2,8 Volt angenehm hell. Somit kommt die Schaltung mit 3 Volt Betriebsspannung aus. Die Vorwiderstände haben in diesem Fall jeweils den Wert vom 39 Ohm.

 
Hier eine Aufbaumöglichkeit der Schaltung für ein Lego-Modell. Durch die Verwendung von ø 3mm LEDs halten sich auch die Veränderungen an den Legobausteinen in sehr überschaubaren Grenzen.
 
Die benötigten Widerstände und Kondensatoren wurden in SMD-Ausführung direkt auf die Kupferseite der Punktrasterplatine gelötet.
 
Das Video zeigt die Anlage in Aktion, wobei die Tonhöhen des Zweiklanghorns, aufnahmetechnisch bedingt, leider nicht originalgetreu wiedergegeben werden.  http://youtu.be/0VCqn32Z-kw


Download:  Sosi.zip


$regfile = "ATtiny13.DAT"
$crystal = 9600000 'Frequenz des internen Oszillators

$hwstack = 32 'default use 32 for the hardware stack
$swstack = 10 'default use 10 for the SW stack
$framesize = 40 'default Use 40 For The Frame

Stop Ac
Stop Adc



Config Portb = &B11111101 'Portb.1 auf 'Eingang' schalten
Portb = &B00000011 'Pullup Portb.1; Portb.0=1


Config Int0 = Rising
On Int0 Einaus 'INT0 konfiguriren, wird nur benutzt um Powerdown zu beenden


Dim A As Byte 'Softwarezähler LED an PortB.4
Dim B As Byte 'Softwarezähler LED an PortB.3
Dim C As Byte 'Softwarezähler Martinshorn
Dim D As Byte 'Variable für TCNT0

Anfang: 'Beginn Initialisierung

Waitms 10

A = 0
B = 67
C = 0

Enable Int0
Enable Interrupts
Portb = &B00000011
Powerdown

Config Timer0 = Timer , Prescale = 64 'TIMER0 erzeugt Tonfrequenzen
Tcnt0 = 97
On Timer0 Horn
Enable Timer0

Disable Int0


Schleife: 'Entprellen nach Beendigung von Powerdown
If Pinb.1 = 0 Then
Goto Schleife
End If


Do 'Do - Loop für die 3 Softwarezähler


Waitms 10

Incr A
Incr B
Incr C


If A = 79 Then
Portb.4 = 1
Elseif A = 90 Then
Portb.4 = 0
End If

If A = 99 Then
Portb.4 = 1
Elseif A = 105 Then
Portb.4 = 0
End If

If A = 105 Then
A = 0
End If


If B = 84 Then
Portb.3 = 1
Elseif B = 95 Then
Portb.3 = 0
End If

If B = 104 Then
Portb.3 = 1
Elseif B = 110 Then
Portb.3 = 0
End If

If B = 110 Then
B = 0
End If


If C = 1 Then
D = 97
Elseif C = 75 Then
D = 137
End If

If C = 150 Then
C = 0
End If


If Pinb.1 = 0 Then 'Ausschalten mit Entprellen
Stop Timer0
Portb = &B00000011

Kontakt:

If Pinb.1 = 0 Then
Goto Kontakt
End If

Goto Anfang
End If


Loop


Horn:

Toggle Portb.0
Toggle Portb.2

Tcnt0 = D
Return


Einaus:
nop
Return


End


Elektronik-Labor  Projekte   AVR   T13-Contest