Forum: Mikrocontroller und Digitale Elektronik 38kHz IR-Signal pulsen - Verständnissfrage


von Ben B. (fataldiskerror)


Lesenswert?

Moin,

ich bastel gerade mit verschiedenen IR-Empfängern rum, u.a. mit dem 
OS-838G.
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/184294-da-01-en-IR_RECEIVER_2_7_5_5V_OS_838G.pdf

Das Ganze steuere ich mit nem attiny45 oder atmega8 an (liegen hier rum, 
kein spezieller Grund). Eigentlich ist auch noch egal wie ich das Ding 
ansteuere.

Ich habe also eine IR-Diode, die ich mit 38kHz pulse. Das macht pro 
Periode 26,316µs. Laut Datenblatt ist die typische Länge eines High- 
oder Low-Pulses 600µs. Also sende ich nen Haufen Perioden, dann nen 
Haufen nichts und eine "1" zu übermitteln, richtig? Was sende ich für 
eine "0"? 1200µs nicht? Oder 600µs nichts und dann 600µs Perioden?

Würde das Byte 11001010 so aussehen (jedes Ascii-Zeichen == 600µs; # == 
Perioden, _ == nichts, Leerzeichen zählt nicht):
1
1  1  0  0  1  0  1  0
2
#_ #_ __ __ #_ __ #_ __

Das würde dann ja auch bedeuten, ich müsste im µC im 1200µs-Takt die 
Daten/Bits des OS-838G einlesen/auswerten. Oder verstehe ich da 
grundlegend was falsch (die Chance ist nicht unerheblich ;-) )

Viele Grüße,
Ben

von Oldie (Gast)


Lesenswert?

Die haben da ein simples BEISPIEL gezeigt mit 600 µs ON und OFF.
Das kann auch < 300 µs sein, oder fast eine ms...

Was eine '1', oder '0" ist, hängt von der Code-Definition ab.
Es gibt 3 Grundvarianten (Pulsdauer, Pausendauer, Bit-Shift) mit
verschiedenem Timing.

Gugel einfach mal nach "IR Codes", oder ähnlich...

von Timmo H. (masterfx)


Lesenswert?

Das hängt vom IR Protokoll ab. Schau dir mal diese Seite an, dort 
findest du verschiedene Protokolle und allgemeine Beschreibungen:
http://www.sbprojects.com/knowledge/ir/rc5.php
Ein IR-Receiver macht nichts anderes als ein low-pegel am Ausgang 
auszugeben wenn ein IR-Signal mit der richtigen Modulationsfrequenz 
empfangen wird. Ansonsten ist der Ausgang immer "high" da er dann 
hochohmig ist und einen pullup Widerstand hat

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Ben Buchholt schrieb:
> Oder verstehe ich da
> grundlegend was falsch (die Chance ist nicht unerheblich ;-) )

dann lies dich hier ein, mehr Info wirst du kaum finden:
http://www.mikrocontroller.net/articles/IRMP

von Axel S. (a-za-z0-9)


Lesenswert?

Oldie schrieb:
> Die haben da ein simples BEISPIEL gezeigt mit 600 µs ON und OFF.
> Das kann auch < 300 µs sein, oder fast eine ms...
>
> Was eine '1', oder '0" ist, hängt von der Code-Definition ab.

Außer daß Ben gar keinen Code braucht oder will.
Er will eine Lichtschranke bauen.

@Ben:

Für korrekte Funktion will dein IR-Empfänger Pakete von 38kHz-Impulsen 
sehen. Wobei jedes Paket eine bestimmte Länge nicht überschreiten darf.
OK ... das steht in dem Datenblatt von Conrad so gar nicht drin. Aber 
bei IR-Empfängern von anderen Herstellern steht es drin und die Ursache 
ist jeweils die gleiche: die AGC bzw. der Demodulator im Empfänger ist 
für die sichere Erkennung von IR-Fernbediensignalen optimiert und 
"stopft zu" wenn er ein Dauersignal abkriegt.

Die 600µs Pulse + 600µs Pause sind nicht nur ein Beispiel, sondern auch 
die Meßbedingung für die Datenblattangaben.

Der NEC-Code (für den dieser Empfänger ausdrücklich geeignet sein soll) 
hat nominal Pulse von 560µs Länge und als längsten Einzelimpuls einen 
von 9ms Länge. Das muß der Empfänger also jeweils abkönnen.

Mein Vorschlag: sende gleichlange 38kHz Pakete von z.B. 19 Impulsen mit 
19 Impulsen Pause dazwischen (entsprechend je ~500µs). So lange der 
Empfänger diese Pakete sieht, gibt er an seinem Ausgang ein 
Rechtecksignal mit ebenfalls 500µs H und 500µs L respektive ~1kHz aus. 
Wenn die Lichtschranke unterbrochen wird, dann fehlt das Signal und das 
kannst du auswerten.

"Zu Fuß" könnte man z.B. ein retriggerbares Monoflop mit ~1ms Haltezeit 
verwenden. So lange das Signal an dessen Eingang anliegt, bleibt der 
Ausgang auf dem aktiven Pegel. Mit einem µC würde man was mit dem 
Capture-Interrupt bauen. Natürlich kannst du so nur Unterbrechungen von 
wenigstens 1ms Dauer erkennen. Ob das reicht muß du selber wissen.

von Axel S. (a-za-z0-9)


Lesenswert?

Nachtrag:

Axel Schwenke schrieb:
> Wenn die Lichtschranke unterbrochen wird, dann fehlt das Signal und das
> kannst du auswerten.

Genauer gesagt ist der Ausgang des IR-Empfänger immer dann L, wenn er 
Impulspakete mit 38kHz sieht und H wenn keine Lichtimpulse da sind.
Wenn die Lichtschranke unterbrochen wird, dann bleibt der Ausgang des 
Empfängers auf H.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.