Liste der Anhänge anzeigen (Anzahl: 1)
(universeller) Infrarot-Empfang
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:
Anhang 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
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
die Monster-TSOP31236 (die sind echt groß) hab ich auch kürzlich bekommen und jetzt ausprobiert. Hab Dir mal von meiner RC5 Fernbedienung ein paar Oszillogramme in verschiedenen Auflösungen angehangen.
Sie zeigen jedesmal die Ziffer 1. Bei jeder neu gesendeten Ziffer wird das Togglebit gegenüber des vorhergehenden invertiert. Das letzte Oszillogramm zeigt die gedrückt gehaltene Ziffer 1; auch hier wird das Togglebit bei jedem Ziffernburst invertiert.
Hoffe hilft Dir irgendwie weiter.
Gruß
Searcher