Hallo,
diese mehrfachen "Waiting for RC5..." kommen aber nur, weil du den µC wiederholt eingeschaltet hast, oder?
Kannst du dir Ausgangssignal vom TSOP auf einem Oszi ansehen?
Wenn nicht, miss es mal mit einem Spannungsmesser.
Gruß
Rolf
Hab hier 2x Atmega8, LD 274 bzw. grüne LED als Kontrolle und TSOP1736.
Die Hardware wurde identisch aufgebaut wie auf dem Schaltplan.
Bild hier
Sender
Beim Senden klappt es. Hab grüne LED angeschlossen und es blinkt alle 1 Sekunde.Code:'RC5 senden $regfile = "m8def.dat" $crystal = 1000000 'Interner Takt 1 MHz ' +5V <---[A IR-Led K]---[330 Ohm]---> Pb.1(OC1A) for Atmega8 Dim Togbit As Byte , Adresse As Byte , Command As Byte Command = 12 Adresse = 0 Togbit = 0 Do Wait 1 Rc5send Togbit , Adresse , Command Loop
Empfänger
Es empfängt gar nicht außer Terminal "Waiting for RC5..."Code:'RC5 empfangen $regfile = "m8def.dat" $crystal = 16000000 'externer Quarzoszillator 16 MHz $baud = 9600 $lib "mcsbyte.lbx" 'PD.4 (INT0) Config Rc5 = Pind.4 Enable Interrupts Dim Adresse As Byte , Command As Byte Print "Waiting for RC5..." Do Getrc5(adresse , Command) If Adresse = 0 Then Command = Command And &B01111111 Print "Adresse:" ; Adresse Print "Command:" ; Command End If Loop
Bild hier
Ich bin gehörlos.
http://www.christian-elektronik.de
Hallo,
diese mehrfachen "Waiting for RC5..." kommen aber nur, weil du den µC wiederholt eingeschaltet hast, oder?
Kannst du dir Ausgangssignal vom TSOP auf einem Oszi ansehen?
Wenn nicht, miss es mal mit einem Spannungsmesser.
Gruß
Rolf
Moin,
Fehlt vielleicht noch:
??Code:Config Rc5 = Pind.4 , Timer = 2 Config Pind.4 = Input Portd.4 = 1
Noch etwas:
Versuch es mal ohne Adressabfrage!
LG
Ed
Ja, habe ich ein und ausgeschaltet wegen Hardware-Änderung.
Oszi zeigt Signale von IR-LED und TSOP1736. Müssen beide Signale identisch sein? Bei mir unterschiedlich. Empfänger hat lange High-Signal. Sender kurze High-Signal.
Wenn ich die Code ein bisschen umändere und "Incr Command" durchjage, zeigen die Signale am Oszi unverändert gleich. oO
Code:$regfile = "m8def.dat" $crystal = 1000000 ' +5V <---[A IR-Led K]---[330 Ohm]---> Pb.1(OC1A) for Atmega8 Dim Togbit As Byte , Adresse As Byte , Command As Byte Togbit = 0 Do Incr Command If Command = 0 Then Adresse = Adresse + 1 End If Rc5send Togbit , Adresse , Command Print "Adresse:" ; Adresse Print "Command:" ; Command Print Loop
Ich bin gehörlos.
http://www.christian-elektronik.de
Es klappt. Noch kleines Fehler im Software.
Beim Senden wird bis 255 Byte gesendet. Beim Empfangen bis 63 Byte empfangen, danach wird neue Adresse erzeugt.
Bild hier Bild hier
Sender
Code:'Senden $regfile = "m8def.dat" $crystal = 16000000 $baud = 9600 Dim Togbit As Byte , Adresse As Byte , Command As Byte Adresse = 0 Togbit = 1 Do Incr Command If Command = 0 Then Adresse = Adresse + 1 End If Rc5send Togbit , Adresse , Command Print Adresse ; " | " ; Command ; " (senden)" Loop
Empfänger
Code:'Empfangen $regfile = "m8def.dat" $crystal = 16000000 $baud = 9600 $lib "mcsbyte.lbx" 'INT0 Config Rc5 = Pind.4 , Timer = 2 Config Pind.4 = Input Portd.4 = 1 Enable Interrupts Dim Adresse As Byte , Command As Byte Print "Waiting for RC5..." Do Getrc5(adresse , Command) If Adresse < 255 Then Print Adresse ; " | " ; Command ; " (empfangen)" End If Loop
Ich bin gehörlos.
http://www.christian-elektronik.de
RC5send kann auch den "extended RC5" senden. Dann ist das zweite Startbit gesetzt. Beim Empfänger bekommst du dann glaube ich eine um 64 höhere Adresse. Die musst du dann auf das Command addieren.Zitat von DEAF BOY
Damit sind dann 128 Befehle für ein Gerät möglich.
Siehe auch hier: http://www.sbprojects.com/knowledge/ir/rc5.htm
Lesezeichen