Empfänger2

Da nur ein Haupt-Lichtschalter momentan zwei Stromkreise schaltet, ist es notwending, diesen zweiten Kreis separat zu schalten. Realisiert wird dies durch einen RC5-Code der FB, der empfangen von einer kleinen Elektronik die Lampe an- und ausschaltet.

Als Schaltung wurde die nachstehende verwendet. Dabei wird prinzipiell über ein Kondensatornetzteil ein kleine ATiny 25/45/85 versorgt, der über einen Triac die Lampe schaltet.

Auf dem Tiny selbst läuft nur ein kleines Programm, das lediglich den RC5 Code auswertet und den Pin toggelt, an dem die Triacstufe angebracht ist. Damit nach dem Ausschalten des Hauptschalters der "ist" Zustand erhalten bleibt, wird der letzte Zustand im EEPROM gespeichert.

' ------------------------------------------------------------------------------
'
'        Leuchtenansteuerung Single Receiver
'
'     - nur Kondensatornetzteil
'     - ein Kanal
'
'  Tiny25/45/85
'     Pin 5 (PB.0)   Switch
'     Pin 2 (PB.3)   RC5 Empfänger
'
'
$Regfile="attiny85.dat"
$Crystal=8000000
$hwstack=40
$swstack=16
$framesize=32
' ----------------------- Konstanten -------------------------------------------
   const Versionsinfo="Leuchte single Receiver V1"
   ' Tastenzuordnung
      const Lampe3=3
' ----------------------- Variablen --------------------------------------------
   Dim RC5_Address As Byte , RC5_Command As Byte
   Dim Lampenstatus as eram byte
   dim Flag as byte
      ' Flag.0 = Lampenstatus
' ----------------------- Ports ------------------------------------------------
   config  PORTB.0 = output:Sw alias portb.0:set sw 'Schalterausgang
   Config Rc5 = Pinb.3 ' für RC5 Empfänger
' ----------------------- Hauptprogramm ----------------------------------------
   Enable Interrupts
   ' lese letzen Lampenstatus
   Flag = Lampenstatus
   sw = Flag.0
   do
      Getrc5(RC5_address , RC5_Command) 'lese FB
      If RC5_Address <255 Then
         RC5_Command = RC5_Command And &B01111111 ' clear Toggle Bit
         if rc5_command=lampe3 then
            toggle sw
            Flag.0 = sw
            Lampenstatus=Flag
            waitms 500
         end if
      end if
   loop
end

Referenzen

Einen ausführliche Beschreibung zum Kondensatornetzteil findet sich hier