Beim freundlichen Chinesen gibt es kleine Fernbedienungen mit den Abmessungen 85x40x7. Im Lieferumfang ist noch ein Empfangsmodul (3 Bein IC) und ein 3poliges Kabel.
Leider war in meiner Packung kein Empfangsmodul mehr dabei, aber für 1,15 Euro Kaufpreis lohnt sich eine Reklamation nicht. Auch die bei dem Auktionsfoto mit abgebildete LED fehlte (wozu auch immer die sein soll)
Ich habe stattdessen ein TSOP38 aus der Kramkiste genommen, geht genauso gut.
Die Fernbedienung sendet ein Telegramm von 68ms Länge, zuerst eine Startlücke mit 9ms, gefolgt von einem High von 4,5ms. (1/2)
Danach folgen die 32 Bit Daten, dabei immer eine Lücke von 1/16 gefolgt von einem High von 1/16 oder 3/16, je nach Daten.
Die ersten 8 Bit sind immer 0 und die zweiten 8 Bit sind immer 1.
Das dritte Oktett enthält die Daten, das vierte Oktett das Zweierkomplement der Daten.
Damit kann man die Übertragung leicht überprüfen.
Die Software synchronisiert sich mit Timer0 auf den Startpuls und summiert dann einfach die 32 Bits in eine Long-Variable.
In der Hauptschleife wird das Komplement geprüft und die entsprechende Tastenaktion ausgeführt.
In diesem Fall einfach die Ausgabe auf ein LCD.
Die Reichweite ist ordentlich, ich kann hier etwa 4 Meter weg gehen, mit meinem TSOP38 als Empfänger gibt es keine Probleme.
Gruß, Michael
Alles anzeigen
IR_China_Telegramm.png
IR_Remote.jpg
Leider war in meiner Packung kein Empfangsmodul mehr dabei, aber für 1,15 Euro Kaufpreis lohnt sich eine Reklamation nicht. Auch die bei dem Auktionsfoto mit abgebildete LED fehlte (wozu auch immer die sein soll)
Ich habe stattdessen ein TSOP38 aus der Kramkiste genommen, geht genauso gut.
Die Fernbedienung sendet ein Telegramm von 68ms Länge, zuerst eine Startlücke mit 9ms, gefolgt von einem High von 4,5ms. (1/2)
Danach folgen die 32 Bit Daten, dabei immer eine Lücke von 1/16 gefolgt von einem High von 1/16 oder 3/16, je nach Daten.
Die ersten 8 Bit sind immer 0 und die zweiten 8 Bit sind immer 1.
Das dritte Oktett enthält die Daten, das vierte Oktett das Zweierkomplement der Daten.
Damit kann man die Übertragung leicht überprüfen.
Die Software synchronisiert sich mit Timer0 auf den Startpuls und summiert dann einfach die 32 Bits in eine Long-Variable.
In der Hauptschleife wird das Komplement geprüft und die entsprechende Tastenaktion ausgeführt.
In diesem Fall einfach die Ausgabe auf ein LCD.
Die Reichweite ist ordentlich, ich kann hier etwa 4 Meter weg gehen, mit meinem TSOP38 als Empfänger gibt es keine Probleme.
Gruß, Michael
BASCOM-Quellcode: Fernbedienung
- '(
- Infrarotfernbedienung vom freundlichen Chinesen
- Michael Bascomforum.de 05/2018
- 0 25
- 1 69
- 2 70
- 3 71
- 4 68
- 5 64
- 6 67
- 7 7
- 8 21
- 9 9
- asterisk 22
- hash 13
- up 24
- left 8
- ok 28
- right 90
- down 82
- ')
- $regfile = "M328pdef.dat" 'Atmega328p CPU
- $crystal = 16000000 '16Mhz Oszillator
- $hwstack = 64
- $swstack = 64
- $framesize = 40
- Config Lcd = 16 * 2
- Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
- Cursor Off
- Cls
- Config Clock = Soft
- Config Date = YMD , Separator =.' ANSI-Format
- Config Timer1 = Timer , Prescale = 256 'Sekundentimer
- On Timer1 T1_irq
- Start Timer1
- Enable Timer1
- On Int0 I_0irq 'Signaleingang
- Config Int0 = Falling
- Enable Int0
- Config Timer0 = Timer , Prescale = 1024 'Timer0 Signallänge
- On Timer0 T0_overflow
- Enable Timer0
- Enable Interrupts
- Led Alias Portb.5
- Dim X As Byte
- Dim Telegrammzaehler As Byte
- Dim Telegramm As Long
- Dim Zeit As Long
- Dim Temp As Byte
- Dim Eingang(4) As Byte At Telegramm Overlay
- Dim Neuesekunde As Bit
- Do
- If Neuesekunde = 1 Then
- Locate 1 , 1
- Lcd "Remote "
- Lcd Time(zeit)
- Neuesekunde = 0
- End If
- X = Eingang(3) + Eingang(4)
- If X = 255 Then
- Locate 2 , 1
- Lcd " Taste = "
- Select Case Eingang(3)
- Case 25:
- Lcd "0 "
- Case 69:
- Lcd "1 "
- Case 70:
- Lcd "2 "
- Case 71:
- Lcd "3 "
- Case 68:
- Lcd "4 "
- Case 64:
- Lcd "5 "
- Case 67:
- Lcd "6 "
- Case 7:
- Lcd "7 "
- Case 21:
- Lcd "8 "
- Case 9:
- Lcd "9 "
- Case 22:
- Lcd "Astersk"
- Case 13:
- Lcd "Hash "
- Case 24:
- Lcd "up "
- Case 8:
- Lcd "left "
- Case 28:
- Lcd "ok "
- Case 90:
- Lcd "right "
- Case 82:
- Lcd "down "
- End Select
- End If
- Waitms 50
- Loop
- T1_irq:
- Timer1 = 3036
- Neuesekunde = 1
- Incr Zeit
- Return
- I_0irq:
- Temp = Timer0
- Timer0 = 0
- Select Case Temp
- Case 12 To 22
- If Telegrammzaehler <= 31 Then
- Telegramm.telegrammzaehler = 0
- Toggle Portd.7
- End If
- Case 30 To 40
- If Telegrammzaehler <= 31 Then
- Telegramm.telegrammzaehler = 1
- Toggle Portd.6
- End If
- Case 210 To 215
- Led = 1
- Telegrammzaehler = 255
- End Select
- Incr Telegrammzaehler
- If Telegrammzaehler >= 32 Then
- Telegrammzaehler = 32
- End If
- Return
- T0_overflow:
- Led = 0
- Telegrammzaehler = 31
- Return
IR_Remote.jpg