Start

Experimente

Grundlagen

Produkte
Sparrow  
- Schlafradio  
- Voltmeter  
- Bauteileset 

 

Neues

Impressum

Das Sparrow-Schlafradio


Das Schlafradio basiert auf dem BK1068-Breakout-Board. Senderabstimmung, Lautstärkeverstellung, Power-Down. NF-Endverstärker, all das ist ja schon vorhanden, sodass ein Radio mit dieser Platine sehr einfach zu bauen ist. Wenn dann noch alles mit einem Mikrocontroller gesteuert wird, hat man ganz andere Möglichkeiten. Hier geht es um das gute Einschlafen. Das Radio soll eine halbe Stunde lang laufen, dann immer leiser werden und schließlich abschalten. So kann es beim Übergang in die Nacht helfen. 

Dass gerade der Sparrow für dieses Projekt ausgesucht wurde hat seinen Sinn. Dieser kleine Controller kann nämlich problemlos mit auf die Platine gesteckt werden. Die wichtigsten Bedienelemente sind schon vorhanden. man muss nur einmal das Programm aufspielen, dann geht es los.

Das Radio selbst basiert auf der schon vorgestellten Schaltung. Auch hier wieder gibt es zwei Tasten für die Senderwahl. Aber die Lautstärke (Vol) wird nun vom Mikrocontroller bedient, genau wie die Power-Down-Funktion (On).  


Damit beide Platinen zusammen auf ein Steckboard passen muss der Sparrow zwei Pfostenleisten mit insgesamt acht Anschlüssen bekommen. Alle Anschlüsse des Tiny13A sind dann auf dem Steckboard zugänglich. 


Beide Platinen liegen an derselben Betriebsspannung von 3 V und sind nur über zwei weitere Leitungen verbunden. Der Vol-Eingang ist ein Tristate-Eingang, der im Ruhezustand eine mittlere Spannung von 1,5 V annimmt. Zieht man die Spannung nach oben wird es lauter, zieht man sie nach Masse wird es leiser. Der Port B4 muss daher im Ruhezustand ein hochohmiger Eingang sein, der nur bei einer Veränderung der Lautstärke in den Ausgangszustand umgeschaltet wird und dabei entweder High oder Low wird. Gleichzeitig ist der Anschluss ein AD-Eingang und kann daher messen, ob der Radiochip sich im aktiven Zustand mit ca. 1,5 V befindet. Im Power-Down-Zustand dagegen steigt die Spannung auf 3 V.

Über den Anschluss PB3 wird die Power-Down-Funktion mit einem kurzen Low-Impuls bedient. Praktisch kann das Radio über diesen Pin ein- und ausgeschaltet werden, wobei der gerade vorhandene Zustand am Vol-Pin abgelesen werden kann.


Die Bedienung ist einfach. S2 schaltet das Radio ein und erhöht die Lautstärke in insgesamt 16 Stufen. S1 dagegen reduziert die Lautstärke und schaltet das Radio schließlich ganz ab.  Den Betriebszustand des Radios zeigt der Sparrow über die LED1 (grün) an. Die rote LED ist immer an, wird jedoch im Aus-Zustand des Radios in der Helligkeit reduziert, damit beide Platinen zusammen im Ruhezustand nicht mehr als 1 mA brauchen. 




Das Steuerprogramm wurde in Bascom geschrieben und erklärt sich weitgehend selbst. Es gibt Prozeduren für die Grundfunktionen Lauter, Leiser, An und Aus.  Die Laufzeit wird in T gemessen und beim Druck auf die Lauter-Taste zurückgesetzt.  Im Aus-Zustand versetzt das Programm den Port B3 in den hochohmigen Zustand mit Pullup. Der Strom für die LED2 fließt dann über den Pullup-Widerstand im Tiny13 und über den Pullup am On-Pin des Radiochips.  Das Ergebnis ist ein schwaches Standby-Leuchten der roten LED, sodass man das Radio auch im Dunkeln leicht findet. Falls man doch mal wieder aufwacht...

Quelltext-Download : Sparrow_SchlafRadio.zip
App in den Sparow laden: http://tiny.systems/categorie/cheepit/SparrowSchlafradio.html
'ATtiny13 Sparrow Schlafradio
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B000001010

Dim N As Byte
Dim L As Byte
Dim T As Word
Dim T2 As Word
Dim U As Word

Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2

Declare Sub An
Declare Sub Aus
Declare Sub Lauter
Declare Sub Leiser

Config Adc = Single , Prescaler = Auto
Start Adc

Waitms 100

Led2 = 1
An
Led1 = 1
For N = 1 To 16
Lauter
Next N

Do
If S2 = 0 Then
An
Waitms 50
Lauter
T = 0
Waitms 100
End If
If S1 = 0 Then
Leiser
Waitms 100
End If
Waitms 100
If L > 0 Then T = T + 1
If T > 18000 Then '30 Min
T2 = T - 18000
T2 = T2 Mod 50 'Pro 5 s eine Stufe leiser
If T2 = 0 Then Leiser
End If
Loop

Sub An
U = Getadc(2)
If U > 900 Then
Led2 = 0
Waitms 40
Led2 = 1
Waitms 40
End If
Led1 = 1
Ddrb.3 = 1
End Sub

Sub Aus
U = Getadc(2)
If U < 900 Then
Led2 = 0
Waitms 40
Led2 = 1
Waitms 40
L = L + 1
If L = 16 Then L = 16
End If
Led1 = 0
Ddrb.3 = 0
End Sub

Sub Lauter
If L < 16 Then
Portb.4 = 1 : Ddrb.4 = 1
Waitms 50
Ddrb.4 = 0 : Portb.4 = 0
Waitms 50
L = L + 1
End If
End Sub

Sub Leiser
If L > 0 Then
Portb.4 = 0 : Ddrb.4 = 1
Waitms 50
Ddrb.4 = 0 : Portb.4 = 0
Waitms 50
If L > 0 Then L = L - 1
If L = 0 Then Aus
End If
End Sub

End