Hallo,

wie im anderen Thread bereits „erarbeitet“ würde ich gerne eine Kommunikation im Raum mit Infrarot versuchen. Dazu habe ich mir einen TSOP31236 Empfänger bestellt und mache gerade damit erste Versuche. Leider klappt das auslesen einer Fernbedienung schon mal nicht. Ich bin einfach mal davon Ausgegangen, dass die Fernbedienung RC-5 sendet, weiß es allerdings nicht. Es handelt sich um die Fernbedienung meines Media-Receivers von der Telekom.

Der Empfänger empfängt auf jeden Fall was, wenn ich eine Taste auf der Fernbedienung drücke. Das habe ich am Atmel und am Oszi überprüft. Ich habe INT0 auf die fallende Flanke konfiguriert und ein einfaches Hauptprogramm gestrickt:

Code:
ISR (INT0_vect)
{
                IR_CaptureReady = TRUE;
}
 
int main (void)
{
if (IR_CaptureReady)
{
U32 tmp = 1;
U8 i1;
for (i1 = 0; i1 < 14; i1++)
{
_delay_us (1778);
tmp = tmp<<1;
if ((PIND & (1<<PD2)) == 0)
tmp = tmp | 1;
 
for (i1 = 0; i1 < 14; i1++)
{
if ((tmp & 1) == 0)
sendMsg ("0", FALSE);
else
sendMsg ("1", FALSE);
tmp = (tmp>>1);
}
sendMsg ("\r\n", FALSE);
 
IR_CaptureReady = FALSE;
}
}
Die Funktion sendMsg sendet mir den String über die UART-Schnittstelle an meinen PC wo ich ihn via Hyperterminal ansehe. Meisstens empfange 00000000000001. Manchmal 00000000000111. Aber nie etwas RC5-ähnliches oder mehr.

Ich habe daraufhin mal versucht ein Video vom Empfang der Daten aufzuzeichnen:

http://www.car-mp3.de/RNetz/IR_Messung.zip

Dabei habe ich am Anfang die Taste 1 der Fernbedienung gedrückt gehalten und später immer mal kurz gedrückt. Hier sieht man die Einstellungen meines historisches Oszis:

Klicke auf die Grafik für eine größere Ansicht

Name:	Oszi_Setup.JPG
Hits:	10
Größe:	71,7 KB
ID:	24610

Wie man an der Zeitbasis von 500µS/cm sieht müssten die „Halbbits“ der Übertragung ca. 889µS lang sein Könnte also sogar RC-5 oder was ähnliches sein. Auf jeden Fall müsste ich etwas anderes Empfangen als 13 mal die 0.

Wie würdet ihr weiter vorgehen? Bei diesem Versuch möchte ich eine Routine erstellen, die mir möglichst viele Fernbedienungen einlesen kann. Der Plan dazu ist es in bestimmten Zeitabständen das empfangene Signal via Timer-Interrupt abzutasten.

Welches Intervall wäre dafür Empfehlenswert und wie lange sollte ich versuchen abzutasten?

Hat jemand eine Idee, was ich bei meinem Empfangsversuch falsch mache?

Viele Grüße
Andreas