TV Simulator mit RC5-Fernbedienung            

von Gerd Sinning                         
Elektronik-Labor   Projekte   AVR 



In den bekannten Elektronikläden findet man zur Zeit diese TV Simulatoren, um ein bewohntes Haus oder eine bewohnte Wohnung zu simulieren. Eingebaut sind farbige Leuchtdioden, die werden zufällig ein- und ausgeschaltet und so wird ein laufender Fernseher simuliert. Das verscheucht jeden Einbrecher.

Da hatte ich schon ein Projekt gebaut, das war ein Schalter für rote grüne blaue und weiße Leds zur stimmungsvollen Raumbeleuchtug mit einer RC5 Infrarot-Fernbedienung. Jetzt war die Frage, ob sich das nicht etwas erweitern lässt, um auch einen TV Simulator zu realisieren. Da waren nur wenige Zeilen im Basic Programm erforderlich und es ging. Bei der Gelegenheit habe ich auch ein neues Gehäuse gedruckt. Das war an den Leds ausgerichtet und es wurde sehr eng, darin auch noch die Elektronik mit dem ATtiny2313 einzubauen.



Die Innenansicht, mit den r g b w Leds und den vier Treibertransistoren unten. Viel Platz ist nicht, aber frisch gelötet ist halb gewonnen.



Die Schaltung ist konventionell aufgebaut, die Leds 13 und 14 leuchten nur im TV Simulator Betrieb. Die anderen lassen sich separat ein- und ausschalten. Die Clock des ATtiny2313 ist 4 MHz und damit leuchtet es ziemlich hektisch, 1 MHz sind sicher auch ausreichend. Im Schaltplan ist eine serielle Schnittstelle eingezeichnet, damit kann man die Commands der Fernbedienung auslesen und dann im Programmteil 'Select Case Command' die passenden Befehle eingeben. Hier ist die nicht eingebaut. Mit Rndmflag = 1 wird der TV Simulator aktiviert. Vorhanden ist auch eine Steuerung mit einem LDR, die den Simulator bei Nacht einschaltet und bei Tag ausschaltet. LDR von Pind.3 an GND und Nightflag = 1. Ist hier auch nicht eingebaut. Damit wird es einfach und platzsparend wie man sieht.



Eine weitere geniale Möglichkeit ist auch, mit den Leds in einer Lichterkette einen Weihnachtsbaum zu beleuchten. Dann hat man den einzigartigen TV-Simulator-Weihnachtsbaum.
 
Literatur:  Datasheet ATtiny2313, Atmel.com
Download: RC5sw2.zip
'*******************************************************************************
' ATiny2313 RC5 switch Leds
'
' with RC5 commands, Rc5 = Pind.4
'
' connect Leds to PORTB
' connect LDR to Pind.3 to GND
'
'*******************************************************************************
' This program is free software; you can redistribute it and/or
' modify it under the terms of the GNU General Public License.
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY;
'*******************************************************************************
'
' ATiny2313 PDIP
'
' (RESET/dW) PA2 1 20 VCC
' (RXD) PD0 2 19 PB7 (UCSK/SCK/PCINT7)
' (TXD) PD1 3 18 PB6 (MISO/DO/PCINT6)
' (XTAL2) PA1 4 17 PB5 (MOSI/DI/SDA/PCINT5)
' (XTAL1) PA0 5 16 PB4 (OC1B/PCINT4)
' (INT0) PD2 6 15 PB3 (OC1A/PCINT3)
' (INT1) PD3 7 14 PB2 (OC0A/PCINT2)
' (T0) PD4 8 13 PB1 (AIN1/PCINT1)
' (OC0B/T1) PD5 9 12 PB0 (AIN0/PCINT0)
' GND 10 11 PD6 (ICP)
'
'*******************************************************************************

$regfile = "ATtiny2313.dat"
$crystal = 4000000 'Quartz: 4 MHz
$baud = 9600
$hwstack = 32 'Hardware Stack
$swstack = 10 'Software Stack
$framesize = 20 'Framesize
'

Ledr Alias Portb.0
Ledg Alias Portb.1
Ledb Alias Portb.2
Ledw Alias Portb.3
Ipulse Alias Portd.6
Ldrpin Alias Pind.3

Dim Rndmflag As Byte , Nightflag As Byte , Rndm As Word
Dim Address As Byte , Command As Byte , Tog As Byte

'Init Ports
Ddrb = &B11111111 'Led port
Portb = &B00000000
Ddrd = &B01100010
Portd = &B01111111 'Port D '

Acsr.acd = 0 ' switch off analog comparator

Config Rc5 = Pind.4

Enable Interrupts
Start Timer0

Do

Ipulse = 1
Getrc5(address , Command)

If Address < 255 Then
Tog = Command And &B10000000
Command = Command And &B01111111 'clear the toggle bit

Select Case Command
Case 0 :
Portb = 0
Case 1 :
Ledr = 1
Case 2 :
Ledr = 0

Case 3 :
Ledw = 1
Case 4 :
Ledg = 1
Case 5 :
Ledg = 0
Case 6 :
Ledw = 0
Case 7 :
Ledb = 1
Case 8 :
Ledb = 0
Case 9 :
Ledr = 1
Ledg = 1
Ledb = 1
Ledw = 1
Case 13 :
Rndmflag = 1
Case 34 :
Rndmflag = 0
Case 17 :
Nightflag = 1
Case 16 :
Nightflag = 0
End Select
Print Command

End If 'Address < 255
Ipulse = 0

If Nightflag = 1 And Ldrpin = 0 Then 'daytime
Rndmflag = 0 'turn off
Portb = 0
End If

If Nightflag = 1 And Ldrpin = 1 Then 'nighttime
Rndmflag = 1 'start random light
End If

If Rndmflag = 1 Then
Rndm = Rnd(255)
Portb = Rndm
End If

Loop


End


 Elektronik-Labor   Projekte   AVR