Was ist ein IR-Empfänger? Wir bauen einen zusätzlichen IR-Empfänger in den Satellitenreceiver ein. Anschlussplan für IR-Empfänger

Diagramm aus der Zeitschrift „Young Technician“.

Eine interessante Richtung in der Funkelektronik, die diese Elektronik durch neue Vorteile des „unsichtbaren“ Lichts (Infrarotlicht) ergänzt hat. Deshalb schlage ich eine Schaltung aus einem einfachen (zum Beispiel) Empfänger und Sender vor, die auf Infrarotstrahlen basiert. Die Basis: Operationsverstärker k140ud7 (ich habe hier ud708), emittierende und empfangende IR-Fotodioden, ULF (k548un1a (b,c – Indizes) – für zwei Kanäle) (wobei Sie – der Sender – den zweiten Kanal des Verstärkers „einschalten“ müssen). Die Schaltung ist für einen Kanal, d. h. Mono, ausgelegt. Stromversorgung für das Gerät: Ich empfehle generell eine ordentliche Stromstabilisierung (sonst irritiert der „Dandy“-Adapter den Hintergrund des „Netzwerks“). Methode: Das amplitudenmodulierte Signal des Senders wird vom Empfänger 1000-fach verstärkt.

So funktioniert das Gerät. Ich schlage vor, dass Sie sich ein kurzes Video ansehen, in dem Sie die IR-Fernbedienung „nach Gehör“ testen. Sie können die Funktionalität und Signalstärke schnell anhand des Tons überprüfen.

IR-Empfänger- und IR-Senderschaltung

Beim Zusammenbau sollten sich die Kondensatoren C1 und C2 möglichst nah am Verstärker befinden! An den Ausgang können Sie hochohmige Kopfhörer anschließen (niederohmige erfordern einen separaten ULF). Fotodiode FD7 (ich habe FD263: „Tablet“ mit Fokussierlinse); 0,125-W-Widerstände: R1 und R4 stellen den Signalverstärkungsfaktor auf das 1000-fache ein. Der Empfänger ist einfach einzurichten: Eine Fotodiode wird auf eine IR-Strahlungsquelle gerichtet, beispielsweise eine 220-V-50-Hz-Lampe: Der Glühfaden wird mit einer Frequenz von 50 Hz oder einer TV-Fernbedienung (Video usw.) betrieben. Die Empfindlichkeit des Empfängers ist hoch: Normalerweise empfängt er von den Wänden reflektierte Signale.

Der Sender verfügt über AL107a IR-LEDs: alle reichen aus. R2 2 kOhm, C1 1000μFx25V, C2 200μFx25V, jeder Transformator auch. Obwohl es durchaus möglich ist, auf einen Transformator zu verzichten, versorgen Sie den Kondensator C2 mit einem verstärkten Audiosignal.

Gerätediagramm

IR-Empfängerschaltung mit ULF

Kürzlich habe ich aus der Not heraus einen IR-Empfänger zum Testen von IR-Fernbedienungen (Fernseher und DVDs) zusammengebaut. Nachdem ich die Schaltung fertiggestellt hatte, installierte ich einen Mono-ULF TDA7056. Dieser Verstärker hat eine gute Verstärkungscharakteristik von etwa 42 dB; arbeitet in einem Spannungsbereich von 3 V bis 18 V, wodurch der IR-Empfänger auch bei einer Spannung von 3 V betrieben werden kann; Der TDA-Verstärkungsbereich von 20 Hz bis 20 kHz (UD708 reicht bis zu 800 kHz) reicht völlig aus, um den Receiver als Audiobegleitung zu verwenden; verfügt über einen Kurzschlussschutz an allen „Beinen“; Schutz vor „Überhitzung“; schwacher Selbstinterferenzkoeffizient. Insgesamt hat mir dieser kompakte und zuverlässige ULF gefallen (unser Preis beträgt 90 Rubel).
Es gibt ihn mit detaillierte Beschreibung. Abbildung 1 zeigt ein Beispiel für die Verwendung eines Verstärkers.


Foto TDA7056


Abb.1. Verstärkerschaltung mit TDA7056

Das Ergebnis war ein IR-Empfänger, Abb. 2, der im Spannungsbereich von 3V bis 12V arbeitet. Ich empfehle die Verwendung von Batterien oder Akkus zur Stromversorgung des Empfängers. Bei Verwendung eines Netzteils ist eine stabilisierte Quelle erforderlich, da sonst der Hintergrund des 50-Hz-Netzes zu hören ist, der den UD708 verstärkt. Wenn sich das Gerät in der Nähe einer Netzspannungsquelle oder einer Funkquelle befindet, kann es zu Störungen kommen. Um Störungen zu reduzieren, ist es notwendig, den Kondensator C5 in den Stromkreis einzubeziehen. Der TDA7056 ist für einen 16-Ohm-Ausgangslautsprecher ausgelegt, leider habe ich keinen. Ich musste einen 4-Ohm-3-Watt-Lautsprecher verwenden, der über einen 1-Watt-50-Ohm-Widerstand angeschlossen war. Ein zu niedriger Widerstand der Lautsprecherspule führt zu einer übermäßigen Leistung und einer Überhitzung des Verstärkers. Im Allgemeinen erwärmt sich der ULF aufgrund des zusätzlichen Widerstands nicht, liefert aber eine durchaus akzeptable Verstärkung.

Empfänger von IR-Fernbedienungsbefehlen Fernbedienung Zum Fahren Haushaltsgeräte kann einfach mit einem Dezimalzähler CD4017, einem Timer NE555 und einem Infrarotempfänger TSOP1738 durchgeführt werden.

Mit dieser IR-Empfängerschaltung können Sie Ihre Haushaltsgeräte ganz einfach mit der TV-Fernbedienung, dem DVD-Player oder der am Ende des Artikels beschriebenen Fernbedienungsschaltung steuern.

IR-Empfängerschaltung für Fernbedienung

Die Pins 1 und 2 des IR-Empfängers TSOP1738 dienen zur Stromversorgung. Der Widerstand R1 und der Kondensator C1 sind für einen stabilen Betrieb und die Unterdrückung verschiedener Störungen im Stromversorgungskreis ausgelegt.

Wenn IR-Strahlen mit einer Frequenz von 38 kHz auf den IR-Empfänger TSOP1738 fallen, erscheint an seinem Ausgang 3 ein niedriger Spannungspegel, und wenn die IR-Strahlen verschwinden, erscheint wieder ein hoher Pegel. Dieser negative Impuls wird vom Transistor Q1 verstärkt, der das verstärkte Frequenzsignal an den Eingang des Dezimalzählers CD4017 weiterleitet. Die Zählerpins 16 und 8 dienen zur Stromversorgung. Pin 13 ist mit Masse verbunden und ermöglicht so den Betrieb.

Der Ausgang von Q2 (Pin 4) ist mit dem Reset-Pin (Pin 15) verbunden, damit der CD4017 im bistabilen Multivibratormodus arbeitet. Während des ersten Impulses erscheint log1 auf Q0, das zweite Taktsignal bewirkt, dass log1 auf Q1 erscheint (Q0 geht auf Low), und beim dritten Signal wird log1 wieder auf Q0 ausgegeben (Q2 ist mit MR verbunden, sodass das dritte Taktsignal zurückgesetzt wird der Zähler).

Nehmen wir an, der Zähler wurde zurückgesetzt (Q0 ist hoch und der Rest ist niedrig). Beim Drücken der Fernbedienungstaste wirkt das Taktsignal auf den Zähler, was zu einem High-Pegel an Q1 führt. Dadurch leuchtet LED D1, Transistor Q2 schaltet ein und das Relais wird aktiviert.

Bei erneutem Drücken der Fernbedienungstaste erscheint am Pin Q0 log 1, das Relais schaltet ab und die LED D2 leuchtet. LED D1 zeigt an, wenn das Gerät eingeschaltet ist, und LED D2 zeigt an, wenn das Gerät ausgeschaltet ist.

Sie können Ihre TV-Fernbedienung zur Steuerung verwenden oder eine separate Fernbedienung gemäß der folgenden Abbildung zusammenbauen.

  • Eingangsspannung: 2,7 ... 5,5 V
  • Stromaufnahme: 0,65 ... 1,05 mA (bei Vcc = 5V) nominell 0,9 mA
  • Trägerfrequenz: 38 kHz
  • Lichtwellenlänge: 850 ... 1050 nm (mehr als 80 % werden vom Filter passiert)
  • Empfindlichkeit: 0,17… 30000 mW/m2 (zur Lichtstromleistung)
  • Empfangsentfernung: bis zu 45 m
  • Arbeitstemperatur: -25 … 85 °C
  • Richtungswinkel: ±45°

Alle Module der „Trema“-Linie sind im gleichen Format gefertigt

Verbindung:

Das Modul lässt sich an jeden digitalen Pin von Arduino anschließen. Das Kit enthält ein Kabel für den schnellen und einfachen Anschluss an Trema Shield.

Je nach Situation ist es sinnvoll, das Modul auf drei Arten anzuschließen:

Methode 1: Mit einem kabelgebundenen Kabel und Piranha UNO


Die Bibliothek verwendet einen zweiten Hardware-Timer,

KEINE PWM-SIGNALE AN 3 ODER 11 AUSGANG AUSGEBEN!

Lesen Sie mehr über die Installation der Bibliothek in unserem...

Weitere Informationen zum Arbeiten mit dem Modul:

Pakete: Fast alle Fernbedienungen senden nicht nur ein Informationspaket (das den Gerätetyp und den Code der gedrückten Taste angibt), sondern auch Wiederholungspakete, die das Gerät darüber informieren, dass die Taste gedrückt gehalten wird. Somit kann das Empfangsgerät auf das einmalige Drücken der Taste oder auf die gesamte Dauer des Haltens reagieren.

Beispiel: Durch Drücken und Halten der Taste mit der TV-Kanalnummer wechselt der Fernseher zu diesen Kanal nur einmal. Während Sie die Lauter-Taste gedrückt halten, erhöht das Fernsehgerät die Lautstärke so lange, wie Sie die Taste gedrückt halten.

Anzahl Informationspakete Die meisten Fernbedienungen verfügen über eines, aber einige Geräte, wie z. B. Klimaanlagen, verwenden 2, 3 oder mehr Informationspakete.

Packungsinhalt: Das Informationspaket enthält Informationen über den Herstellercode, den Gerätetyp, den Code der gedrückten Taste usw. Wiederholungspakete können teilweise oder vollständig mit einem Informationspaket übereinstimmen, seine Bits invertiert kopieren oder keine Informationen enthalten, was eine Folge mehrerer identischer Bits für jedes Wiederholungspaket darstellt.

Dauer der Pausen zwischen Paketen:überschreitet normalerweise 200 ms nicht.

Datenübertragungsprotokolle: Bestimmen Sie die folgenden Grundparameter:

  • Trägerfrequenz;
  • Verfahren zur Kodierung von Informationen, Dauer der Impulse und Pausen der übertragenen Bits;
  • Anzahl Informationspakete:
  • Zusammensetzung des Informationspakets und der Wiederholungspakete;
  • Dauer der Pausen zwischen Paketen;
  • Vorhandensein und Form von Start-, Stopp- und Umschaltsignalen;

Trägerfrequenz: Bei den meisten Fernbedienungen beträgt sie 38 kHz; auf diese Frequenz ist der Trema IR-Empfänger abgestimmt.

Informationskodierung: Dies ist das Prinzip der Übertragung von Datenbits. Lassen Sie uns drei Hauptarten der Codierung hervorheben, bei denen jedes Bit in einer Folge von einem Impuls und einer Pause übertragen wird:

  • Impulslängenkodierung – zunächst wird ein Impuls gesendet, dessen Länge vom Wert des übertragenen Bits abhängt, dann folgt eine Pause, deren Länge nicht vom Wert des Bits abhängt. Beispiel: Im SIRC-Protokoll (Sony) beträgt die Impulslänge für Bit „1“ = 1200 µs und für Bit „0“ = 600 µs beträgt die Pausenlänge immer 600 µs. Auf diese Weise können Sie anhand der Impulslänge „1“ von „0“ unterscheiden.
  • Kodierung langer Pausen – zunächst wird ein Impuls gesendet, dessen Länge nicht vom Wert des übertragenen Bits abhängt, dann folgt eine Pause, deren Länge vom Wert des Bits abhängt. Beispiel: Im NEC-Protokoll beträgt die Pausenlänge für Bit „1“ = 1687,5 µs und für Bit „0“ = 562,5 µs beträgt die Impulslänge immer 562,5 µs. Somit können Sie anhand der Länge der Pause „1“ von „0“ unterscheiden.
  • Biphase-Codierung – die Länge des Impulses ist gleich der Länge der Pause und ihre Reihenfolge bestimmt die Art des übertragenen Bits. Beispiel: Im RS5-Protokoll (Philips) folgt für Bit „1“ ein Impuls auf eine Pause und für Bit „0“ folgt auf einen Impuls eine Pause. Für das NRC-Protokoll (Nokia) hingegen folgt für Bit „1“ eine Pause auf einen Impuls und für Bit „0“ folgt ein Impuls auf eine Pause.

Start-, Stopp- und Umschaltsignale: Je nach Name befinden sie sich am Anfang, Ende oder in der Mitte des Pakets.

Stoppen: Beim Codieren einer langen Pause ist es unmöglich, den Wert des letzten Bits im Paket zu bestimmen, da auf das Paket eine lange Pause folgt und das letzte Bit immer als „1“ definiert wird, sodass das Stoppsignal hinzugefügt wird zum Paket, bei dem es sich um einen Impuls handelt, der keine Informationen trägt.

Start: Bei der Biphase-Codierung ist ein Startsignal erforderlich, da es unmöglich ist, die Übertragung eines Pakets aus einer Pause zu starten.

Umschalten: Dies ist ein Bit, das seinen Wert mit jedem neuen Tastendruck ändert und in den Protokollen RS5, RS5X, RS6 (Philips) verwendet wird, bei denen Wiederholungspakete die Daten des Informationspakets vollständig wiederholen. Auf diese Weise kann das Empfangsgerät zwischen dem Halten der Taste und dem erneuten Drücken unterscheiden.

Beispiele:

Die Überprüfung der Verfügbarkeit der von der IR-Fernbedienung empfangenen Daten erfolgt durch die Funktion check(). Diese Funktion reagiert auf das Drücken der Tasten auf der IR-Fernbedienung. Wenn sie jedoch mit dem wahren Parameter aufgerufen wird, reagiert sie auch auf das Halten der Tasten.

Wir lesen Daten von jeder Fernbedienung und reagieren nur auf Tastendrücke:

#enthalten // Bibliothek verbinden, um mit dem IR-Empfänger zu arbeiten iarduino_IR_RX IR(7); // Deklarieren Sie ein IR-Objekt, das den Pin angibt, an den der IR-Empfänger angeschlossen ist. void setup())( Serial.begin(9600); // Initiieren Sie die Datenübertragung zum seriellen Port-Monitor mit einer Geschwindigkeit von 9600 bps IR.begin (); // Arbeit mit dem IR-Empfänger einleiten) void loop())( if(IR.check())( // Wenn der Puffer Daten enthält, die von der Fernbedienung empfangen wurden (die Taste wurde gedrückt) Serial.println(IR .data, HEX); // Den Code der gedrückten Taste ausgeben Serial.println(IR.length); // Die Anzahl der Bits im Code ausgeben)

In dieser Skizze wird die Funktion check() ohne Argumente aufgerufen, was bedeutet, dass sie nur auf Tastendrücke auf der IR-Fernbedienung reagiert.

Wir lesen Daten von einer beliebigen Fernbedienung und reagieren auf das Drücken der Tasten:

#enthalten // Bibliothek verbinden, um mit dem IR-Empfänger zu arbeiten iarduino_IR_RX IR(6); // Deklarieren Sie ein IR-Objekt, das den Pin angibt, an den der IR-Empfänger angeschlossen ist. void setup())( Serial.begin(9600); // Initiieren Sie die Datenübertragung zum seriellen Port-Monitor mit einer Geschwindigkeit von 9600 bps IR.begin (); // Arbeit mit dem IR-Empfänger einleiten) void loop())( if(IR.check(true))( // Wenn der Puffer von der Fernbedienung empfangene Daten enthält (die Taste wird gedrückt gehalten) Serial.println (IR.data, HEX); // Den Code der gedrückten Taste ausgeben Serial.println(IR.length); // Die Anzahl der Bits im Code ausgeben)

In dieser Skizze wird die Funktion check() mit dem Parameter true aufgerufen, was bedeutet, dass sie sowohl auf das Drücken als auch auf das Halten der Tasten der IR-Fernbedienung reagiert.

Lesen Sie Daten von jeder Fernbedienung und geben Sie an, wie auf welche Tasten reagiert werden soll.

#enthalten // Bibliothek verbinden, um mit dem IR-Empfänger zu arbeiten iarduino_IR_RX IR(6); // Ein IR-Objekt deklarieren, das den Pin angibt, mit dem der IR-Empfänger verbunden ist // bool flgKey1 = false; uint32_t codKey1 = 0xFF30CF; // Definiere das Klick-Flag und den Code von Button 1 bool flgKey2 = false; uint32_t codKey2 = 0xFF18E7; // Definiere das Klick-Flag und den Schaltflächencode 2 bool flgKey3 = false; uint32_t codKey3 = 0xFF7A85; // Definiere das Klick-Flag und den Schaltflächencode 3 bool flgKey = false; uint32_t tmrKey = 0; // Definieren Sie ein Flag, das die Ausgabe von Daten an den Monitor und den Zeitpunkt des letzten Tastendrucks ermöglicht. // void setup())( // Serial.begin(9600); // Datenübertragung zum Monitor der seriellen Schnittstelle mit einer Geschwindigkeit von 9600 bps einleiten IR.begin(); // Arbeit mit dem IR-Empfänger einleiten) / // / void loop())( // if(IR.check(true))( // Wenn der Puffer Daten enthält, die von der Fernbedienung empfangen wurden (die Taste wird gedrückt gehalten), dann... if(millis()- 200 > tmrKey)( / / Wenn seit dem letzten empfangenen Befehl mehr als 200 ms vergangen sind, dann flgKey1=false; // Berücksichtigen Sie, dass Taste 1 nicht gehalten wird. flgKey2=false; // Berücksichtigen Sie, dass Taste 2 nicht gehalten wird. flgKey3=false ; // Bedenken Sie, dass Taste 3 nicht gedrückt wird) tmrKey = millis(); flgKey=true; flgKey1)(flgKey=false;) flgKey1=true; )else(flgKey1= false;) // Wir verbieten die Ausgabe von Button-1-Daten, wenn diese gedrückt gehalten werden if(IR.data==codKey2)( if(flgKey2)( flgKey=false;) flgKey2=true; )else(flgKey2=false;) // Wir verbieten die Ausgabe der Datentaste 2, während sie gedrückt gehalten wird if(IR.data==codKey3)( if(flgKey3)(flgKey=false;) flgKey3=true; )else(flgKey3=false;) // Ausgabe der Daten von Taste 3 verbieten, wenn diese gedrückt gehalten wird if(flgKey)( // Wenn die Datenausgabe erlaubt ist, dann... Serial.println(IR.data, HEX); // Code der gedrückten Taste ausgeben Buttons Serial.println(IR.length); // Anzahl der Bits im Code ausgeben ) // ) // ) //

In dieser Skizze wird die Funktion check() mit dem Parameter true aufgerufen, was bedeutet, dass sie sowohl auf das Drücken als auch auf das Halten der IR-Fernbedienungstasten reagiert. Daten werden jedoch nur dann an den Monitor der seriellen Schnittstelle ausgegeben, wenn das flgKey-Flag gesetzt ist, das zurückgesetzt wird, wenn die Tasten mit den Codes 0xFF30CF, 0xFF18E7 und 0xFF7A85 gedrückt gehalten werden. Es stellt sich heraus, dass die Skizze auf drei Tasten nur beim Drücken reagiert und auf die übrigen Tasten sowohl beim Drücken als auch beim Halten.

Auslesen von Daten nur von Fernbedienungen, die nach dem angegebenen Protokoll arbeiten:

#enthalten // Bibliothek verbinden, um mit dem IR-Empfänger zu arbeiten iarduino_IR_RX IR(5); // Deklarieren Sie ein IR-Objekt, das den Pin angibt, an den der IR-Empfänger angeschlossen ist. void setup())( Serial.begin(9600); // Initiieren Sie die Datenübertragung zum Monitor der seriellen Schnittstelle mit einer Geschwindigkeit von 9600 bps IR.begin (); // Arbeit mit dem IR-Empfänger einleiten IR.protocol("Ae`` `|LJ` @@@@BPBp" // Geben Sie das Datenübertragungsprotokoll an, auf das reagiert werden soll) void loop())( if( IR.check( true))( // Wenn der Puffer Daten enthält, die von der Fernbedienung empfangen wurden (die Taste wird gedrückt gehalten) Serial.println(IR.data, HEX); // Den Code der gedrückten Taste ausgeben Serial.println (IR.length); // Anzahl der Bits im Code ausgeben)

In dieser Skizze wird im setup()-Code das Datenübertragungsprotokoll angegeben, das zwischen verschiedenen Herstellern von IR-Fernbedienungen selten übereinstimmt. Das bedeutet, dass die check()-Funktion im loop()-Code nur auf die IR-Fernbedienungen reagiert, die das angegebene Protokoll unterstützen.

Abrufen des Datenübertragungsprotokolls und des Codierungstyps:

#enthalten // Bibliothek verbinden, um mit dem IR-Empfänger zu arbeiten iarduino_IR_RX IR(4); // Deklarieren Sie ein IR-Objekt, das den Pin angibt, an den der IR-Empfänger angeschlossen ist. void setup())( Serial.begin(9600); // Initiieren Sie die Datenübertragung zum seriellen Port-Monitor mit einer Geschwindigkeit von 9600 bps IR.begin (); // Arbeit mit dem IR-Empfänger einleiten) void loop())( if(IR.check())( // Wenn der Puffer Daten enthält, die von der Fernbedienung empfangen wurden (die Taste wurde gedrückt) Serial.println(IR .protocol()); // Ausgabe der Datenü) )

In diesem Beispiel wird beschrieben, wie Sie das Datenübertragungsprotokoll für IR-Fernbedienungen erhalten. Der Artikel beschreibt, wie Sie Tastencodes mithilfe des angegebenen Protokolls übertragen.

Auf diese Weise können Sie eine IR-Sender-Skizze erstellen, um die Signale verschiedener IR-Fernbedienungen zu simulieren. Dadurch reagieren Geräte auf den IR-Sender so, als würden sie auf ihre eigene IR-Fernbedienung reagieren.

Beschreibung der Hauptfunktionen der Bibliothek:

Anbindung der Bibliothek:

#enthalten // Verbinden Sie die Bibliothek, um mit dem IR-Empfänger zu arbeiten. iarduino_IR_RX IR(PIN#[, INVERT]); // Deklarieren Sie ein IR-Objekt, das die Pin-Nummer angibt, an die der IR-Empfänger angeschlossen ist. // Der zweite Parameter vom Typ bool kann angeben, dass die Daten vom Empfänger invertiert sind.

Funktion begin();

  • Zweck: Initialisierung der Arbeit mit dem IR-Empfänger
  • Syntax: begin();
  • Optionen: Keine.
  • Rückgabewerte: Keine.
  • Hinweis: Wird im Setup-Code einmal aufgerufen.
  • Beispiel:
IR.begin(); // Arbeit mit dem IR-Empfänger einleiten

Funktionsprüfung();

  • Zweck: Überprüfung der Verfügbarkeit der von der Fernbedienung empfangenen Daten.
  • Syntax: check([ HOLD ]);
  • Optionen:
    • HOLD – ein optionaler Parameter vom Typ bool – gibt an, dass auf das Halten der Fernbedienungstasten reagiert werden muss.
  • Rückgabewerte: bool – ob die Daten von der Fernbedienung akzeptiert wurden oder nicht.
  • Hinweis: Wenn die Funktion ohne Parameter aufgerufen wird oder „false“ ist, reagiert die Funktion nur auf Signale von der Fernbedienung, wenn ihre Tasten gedrückt werden. Wenn Sie „true“ angeben, reagiert die Funktion sowohl auf das Drücken als auch auf das Halten der Fernbedienung Fernbedienungstasten.
  • Beispiel:
if(IR.check())( ... ;) // Wenn Daten von der Fernbedienung empfangen werden, wenn Sie deren Taste drücken if(IR.check(true))( ... ;) // Wenn Daten empfangen werden von der Fernbedienung empfangen, wenn Sie die Taste gedrückt halten

Funktionsprotokoll();

  • Zweck: Empfangen, Einstellen oder Zurücksetzen des Datenübertragungsprotokolls.
  • Syntax: Protokoll([ PARAMETER ]);
  • Abrufen des Protokolls: Wenn die Funktion ohne Parameter aufgerufen wird, wird eine Zeichenfolge mit 25 Zeichen + dem Zeilenendezeichen zurückgegeben. Die Bits dieser Leitung enthalten Informationen über die Art des Datenübertragungsprotokolls der Fernbedienung, deren Daten zuletzt empfangen wurden. Über diese Zeile kann das Protokoll für den IR-Sender bzw. IR-Empfänger eingestellt werden (siehe unten).
  • Einstellen des Protokolls: Wenn die Funktion mit einem Parameter in Form einer Zeichenfolge aus 25 Protokollzeichen + Zeilenendezeichen aufgerufen wird, reagiert die Funktion chek() danach nur noch auf Fernbedienungen, die den angegebenen Daten entsprechen Übertragungsprotokoll.
  • Protokoll-Reset: Wird die Funktion mit dem Parameter IR_CLEAN aufgerufen, dann reagiert die Funktion chek() wieder auf Signale einer beliebigen Fernbedienung.
  • Empfangen von Protokollparametern: Wenn die Funktion mit einem int-Parameter von 0 bis 17 aufgerufen wird, gibt sie keinen Protokollstring, sondern einen int-Wert mit einem der Parameter des Datenübertragungsprotokolls der Konsole zurück, deren Daten zuletzt empfangen wurden :
    • 0 – Kodierungstyp:
      • IR_UNDEFINED – Kodierungstyp ist undefiniert;
      • IR_PAUSE_LENGTH – lange Pausencodierung;
      • IR_PULSE_LENGTH – Codierung durch langen (breiten) Impuls (PWM);
      • IR_BIPHASIC – biphasische Codierung;
      • IR_BIPHASIC_INV – Biphase-Codierung mit invertierten Bits;
      • IR_NRC – Wiederholungspakete sind identisch, aber das erste und letzte Paket sind etwas Besonderes;
      • IR_RS5 – PHILIPS-Codierung mit Toggle-Bit;
      • IR_RS5X – PHILIPS-Kodierung mit Toggle-Bit;
      • IR_RS6 – PHILIPS-Kodierung mit Toggle-Bit.
    • 1 - Trägerfrequenz der Datenübertragung (in kHz);
    • 2 – angegebene Anzahl von Informationsbits in 1 Paket;
    • 3 – deklarierte Anzahl von Informationsbits im Wiederholungspaket;
    • 4 – Pausendauer zwischen Paketen (in ms);
    • 5 - Impulsdauer im Startbit (in μs);
    • 6 - Pausendauer im Startbit (in μs);
    • 7 - Impulsdauer im Stoppbit (in μs);
    • 8 - Pausendauer im Stoppbit (in μs);
    • 9 - Impulsdauer im Neustart- oder Toggle-Bit (in μs);
    • 10 - Pausendauer im Neustart- oder Toggle-Bit (in μs);
    • 11 – Position des Neustart- oder Toggle-Bits im Paket (Bit-Nr.);
    • 12 - maximale Impulsdauer in Informationsbits (in μs);
    • 13 - Mindestimpulsdauer in Informationsbits (in μs);
    • 14 - maximale Pausendauer in Informationsbits (in μs);
    • 15 - minimale Pausendauer in Informationsbits (in μs);
    • 16 – Startbit-Präsenz-Flag (wahr/falsch);
    • 17 – Stoppbit-Präsenzflag (wahr/falsch);
    • 18 – Flag für das Vorhandensein des Neustart- oder Toggle-Bits (wahr/falsch);
    • 19 – Wiederholungspakettyp (0 – keine, 1 – mit invertierten Bits, 2 – identisch mit Information, 3 – einzigartig);
  • Rückgabewerte: Hängt vom Vorhandensein und Typ des Parameters ab.
  • Hinweis: Wenn zuvor ein Protokoll festgelegt wurde, werden beim Versuch, das Protokoll oder die Protokollparameter abzurufen, die Werte des zuvor festgelegten Protokolls zurückgegeben und nicht das Datenübertragungsprotokoll der Konsole, deren Daten zuletzt empfangen wurden.
  • Beispiel:
IR.protocol("AeQQV~zK]Kp^KJp[@@@@@@@Bp"); // Stellen Sie das Protokoll ein. Jetzt empfängt der Receiver nur noch Daten von ELENBERG TV-Fernbedienungen. IR.protocol(IR_CLEAN); // Das zuvor installierte Protokoll zurücksetzen. Jetzt reagiert der Receiver wieder auf jede Fernbedienung. if(IR.check())( Serial.println(IR.protocol()); ) // Protokoll abrufen. Sobald der Empfänger die Daten empfängt, wird auf dem Monitor eine Zeichenfolge aus 25 Protokollzeichen angezeigt. if(IR.check())( Serial.println(IR.protokol(12)); ) // Einen der Protokollparameter abrufen. Sobald der Empfänger die Daten empfängt, zeigt der Monitor die maximale Impulsdauer des Informationsbits in Mikrosekunden an.

Datenvariable

  • Wert: Gibt den von der Fernbedienung empfangenen Tastencode zurück;
  • Datentyp: uint32_t.
if(IR.check())( Serial.println(IR.data); ) // Den Code der gedrückten Taste drucken, falls akzeptiert

Länge variabel

  • Wert: Gibt die Größe des Schaltflächencodes in Bits zurück;
  • Datentyp: uint8_t.
if(IR.check())( Serial.println(IR.length); ) // Größe des gedrückten Tastencodes drucken, falls akzeptiert

key_press-Variable

  • Bedeutung: Gibt ein Flag zurück, das angibt, dass die Fernbedienungstaste gedrückt und nicht gehalten wird.
  • Datentyp: bool.
if(IR.check(true))( if(IR.key_press)(Serial.println("PRESS");) // Der Text wird einmal gedruckt, wenn die Taste gedrückt wird else (Serial.println("HOLD " );) // Der Text wird kontinuierlich angezeigt, während die Taste gedrückt gehalten wird)

Anwendung:

  • Steuerung von Robotern, beweglichen, fliegenden und schwimmenden Modellen, Haushalts- und Spezialgeräten.
  • Ein-/Ausschalten von Beleuchtung, Heizung, Belüftung, Bewässerung usw.
  • Öffnen/Schließen von Türen, Jalousien, Dachfenstern, Lüftungsöffnungen usw.

Der IR-Empfänger ist ein Standardgerät, das an den COM-Anschluss (RS-232) angeschlossen wird und zur Fernsteuerung des Roboters dient.

Einer von mögliche Schemata IR-Empfänger. Als IR-Empfänger eignet sich jeder 5-Volt-Infrarotempfänger, der in Haushaltsgeräten (Fernsehgeräten) verwendet wird. Zum Beispiel: TSOP1836, IS1U60L, GP1U52X, SFH506-36 oder unser heimisches TK1833. Der Spannungsstabilisator KREN5A ist notwendig, um den IR-Empfänger mit 5 V Spannung zu versorgen, weil 12 Volt werden vom 7. Pin des COM-Ports geliefert. Der Widerstand kann im Bereich von 3-5 kOhm gewählt werden, der Kondensator 4,7-10 µF. Irgendeine Diode mit geringem Stromverbrauch.

In der obigen Schaltung wird das Ausgangssignal einem Kontakt zugeführt COM-Port(DCD). Dieser Kontakt wird von einer Standardmaus nicht für einen COM-Port verwendet. Wenn Sie also nicht über genügend freien COM-Port verfügen, kann diese Schaltung parallel mit einer Maus (jedoch nicht mit einem Modem) verwendet werden! Das Ausgangssignal kann nicht nur an den DCD, sondern auch an andere Pins wie CTS oder DSR gesendet werden. Alle diese Parameter können in einem Programm eingestellt werden, das im IR-Empfänger funktioniert. Es gibt mehrere Programmoptionen, die gebräuchlichste ist WinLIRC. Ich kann auch die Verwendung des Girder-Programms empfehlen.

Pinbelegung und Aussehen der Hauptelemente der Schaltung

Von links nach rechts - zwei Arten von 5-Volt-IR-Empfängern und eine KREN5A-Spannungsstabilisator-Mikroschaltung.

Pinbelegung des COM-Ports

Pinbelegung und Beschreibung der COM-Port-Kontakte (25-polig).

Der IR-Empfänger spielt in unserem Alltag eine wichtige Rolle. Mit Hilfe dieser Mikroschaltung können wir moderne Haushaltsgeräte, einen Fernseher, eine Stereoanlage, ein Autoradio und eine Klimaanlage steuern. Dies ermöglicht uns die Fernbedienung (RC). Schauen wir uns deren Funktionsweise, Schaltung, Zweck und Prüfung genauer an. Im Artikel erfahren Sie, wie Sie den IR-Empfänger selbst überprüfen.

Was ist ein IR-Empfänger und wie funktioniert er?

Hierbei handelt es sich um einen integrierten Schaltkreis, dessen direkte und Hauptaufgabe darin besteht, das Infrarotsignal, das die Fernbedienung aussendet, zu empfangen und zu verarbeiten. Dieses Signal wird zur Steuerung des Geräts verwendet.

Diese Mikroschaltung basiert auf einer Pin-Fotodiode, einem speziellen Element, mit einem pn-Übergang und einem i-Bereich dazwischen, einem Analogon der Basis eines Transistors, wie in einem Sandwich, daher ist hier die Abkürzung Pin, ein einzigartiges Element in seinem eigenen Weg.

Es wird im Rückwärtsgang eingeschaltet und passiert nicht elektrischer Strom. Das IR-Signal gelangt in den i-Bereich, leitet Strom und wandelt ihn in Spannung um.


Die nächsten Stufen sind ein integrierender Filter, ein Amplitudendetektor und am Ziel erwarten sie Ausgangstransistoren.

Der Kauf eines neuen IR-Empfängers im Laden macht in der Regel keinen besonderen Sinn, da dieser problemlos von verschiedenen Elektronikplatinen abgelötet werden kann. Wenn Sie aus Schrott ein Gerät zur Überprüfung der Fernbedienung zusammenbauen, ohne die genaue Kennzeichnung des Gerätes zu kennen, dann können Sie die Pinbelegung selbst bestimmen.


Wir benötigen ein Multimeter, ein Netzteil oder mehrere Batterien, Verbindungskabel, die Installation kann hängend erfolgen.

Es verfügt über drei Ausgänge, einer ist GND, der zweite wird mit 5 Volt versorgt und das Ausgangssignal kommt vom dritten. Wir schließen den Strom jeweils an den ersten und zweiten Zweig an und entfernen die Spannung vom dritten.


Es wartet auf ein Signal von der Fernbedienung und auf dem Multimeter sehen wir fünf Volt. Wir beginnen, die Kanäle zu wechseln oder andere Tasten zu drücken, indem wir die Fernbedienung auf ihn richten.

Wenn es funktioniert, sinkt die Spannung um etwa 0,5-1 Volt. Wenn alles wie hier beschrieben abläuft, funktioniert das Gerät, andernfalls ist das Element defekt.

So ermitteln Sie die Pinbelegung eines Infrarotempfängers

Ich habe zum Beispiel eine mir völlig unbekannte Mikroschaltung genommen, die in einer Kiste mit Elementen lag, das „Minus“ wurde durch den Punkt auf der Rückseite des Elements bestimmt, das „Plus“ wurde experimentell durch einen Widerstand bestimmt. Ich habe nichts riskiert, da er ursprünglich ein Arbeiter war, gab es keine Hoffnung.

Um die Pinbelegung des IR-Empfängers zu bestimmen, schauen Sie sich den IR-Empfänger an, wenn er in die Platine eingelötet ist. Möglicherweise sind dort Pinmarkierungen vorhanden. Wenn dort nichts steht, untersuchen Sie das Element selbst, suchen Sie nach seinem Namen und suchen Sie dann im Internet nach Eigenschaften und Daten. Dies ist eine sehr kompetente Vorgehensweise. Befolgen Sie die Anweisungen, um den IR-Empfänger selbst zu überprüfen.

Diagramm aus der Zeitschrift „Young Technician“.

Eine interessante Richtung in der Funkelektronik, die diese Elektronik durch neue Vorteile des „unsichtbaren“ Lichts (Infrarotlicht) ergänzt hat. Deshalb schlage ich eine Schaltung aus einem einfachen (zum Beispiel) Empfänger und Sender vor, die auf Infrarotstrahlen basiert. Basis: Operationsverstärker k140ud7 (ich habe hier ud708), emittierende und empfangende IR-Fotodioden, ULF (k548un1a (b,c - Indizes) - für zwei Kanäle) (obwohl es Sache der Sache ist, wo der zweite Kanal des Verstärkers „eingeschaltet“ wird Die Entscheidung liegt bei Ihnen - die Senderschaltung ist für einen Kanal, also Mono, ausgelegt. Stromversorgung für das Gerät: Ich empfehle generell eine ordentliche Stromstabilisierung (sonst irritiert der „Dandy“-Adapter den Hintergrund des „Netzwerks“). Methode: Das amplitudenmodulierte Signal des Senders wird vom Empfänger 1000-fach verstärkt.

So funktioniert das Gerät. Ich schlage vor, dass Sie sich ein kurzes Video ansehen, in dem Sie die IR-Fernbedienung „nach Gehör“ testen. Sie können die Funktionalität und Signalstärke schnell anhand des Tons überprüfen.

IR-Empfänger- und IR-Senderschaltung

Beim Zusammenbau sollten sich die Kondensatoren C1 und C2 möglichst nah am Verstärker befinden! An den Ausgang können Sie hochohmige Kopfhörer anschließen (niederohmige erfordern einen separaten ULF). Fotodiode FD7 (ich habe FD5.. eine Art „Tablet“ mit Fokussierlinse – ich erinnere mich nicht an den genauen Namen); 0,125-W-Widerstände: R1 und R4 stellen den Signalverstärkungsfaktor auf das 1000-fache ein. Der Empfänger ist einfach einzurichten: Eine Fotodiode wird auf eine IR-Strahlungsquelle gerichtet, beispielsweise eine 220-V-50-Hz-Lampe: Der Glühfaden wird mit einer Frequenz von 50 Hz oder einer TV-Fernbedienung (Video usw.) betrieben. Die Empfindlichkeit des Empfängers ist hoch: Normalerweise empfängt er von den Wänden reflektierte Signale.

Der Sender verfügt über AL107a IR-LEDs: alle reichen aus. R2 2 kOhm, C1 1000μFx25V, C2 200μFx25V, jeder Transformator auch. Obwohl es durchaus möglich ist, auf einen Transformator zu verzichten, versorgen Sie den Kondensator C2 mit einem verstärkten Audiosignal.

Gerätediagramm

Kürzlich habe ich aus der Not heraus einen IR-Empfänger zum Testen von IR-Fernbedienungen (Fernseher und DVDs) zusammengebaut. Nachdem ich die Schaltung fertiggestellt hatte, installierte ich einen Mono-ULF TDA7056. Dieser Verstärker hat eine gute Verstärkungscharakteristik von etwa 42 dB; arbeitet in einem Spannungsbereich von 3 V bis 18 V, wodurch der IR-Empfänger auch bei einer Spannung von 3 V betrieben werden kann; Der TDA-Verstärkungsbereich von 20 Hz bis 20 kHz (UD708 reicht bis zu 800 kHz) reicht völlig aus, um den Receiver als Audiobegleitung zu verwenden; verfügt über einen Kurzschlussschutz an allen „Beinen“; Schutz vor „Überhitzung“; schwacher Selbstinterferenzkoeffizient. Insgesamt hat mir dieser kompakte und zuverlässige ULF gefallen (unser Preis beträgt 90 Rubel).
Es gibt ihn mit. Abbildung 1 zeigt ein Beispiel für die Verwendung eines Verstärkers.


Foto TDA7056



Abb.1. Verstärkerschaltung mit TDA7056

Das Ergebnis war ein IR-Empfänger, Abb. 2, der im Spannungsbereich von 3V bis 12V arbeitet. Ich empfehle die Verwendung von Batterien oder Akkus zur Stromversorgung des Empfängers. Bei Verwendung eines Netzteils ist eine stabilisierte Quelle erforderlich, da sonst der Hintergrund des 50-Hz-Netzes zu hören ist, der den UD708 verstärkt. Wenn sich das Gerät in der Nähe einer Netzspannungsquelle oder einer Funkquelle befindet, kann es zu Störungen kommen. Um Störungen zu reduzieren, ist es notwendig, den Kondensator C5 in den Stromkreis einzubeziehen. Der TDA7056 ist für einen 16-Ohm-Ausgangslautsprecher ausgelegt, leider habe ich keinen. Ich musste einen 4-Ohm-3-Watt-Lautsprecher verwenden, der über einen 1-Watt-50-Ohm-Widerstand angeschlossen war. Ein zu niedriger Widerstand der Lautsprecherspule führt zu einer übermäßigen Leistung und einer Überhitzung des Verstärkers. Im Allgemeinen erwärmt sich der ULF aufgrund des zusätzlichen Widerstands nicht, liefert aber eine durchaus akzeptable Verstärkung.



Abb.2. IR-Empfängerschaltung mit ULF



Foto des IR-Empfängers

In dieser Lektion werden wir uns mit dem Anschließen eines IR-Empfängers an Arduino befassen. Wir erklären Ihnen, welche Bibliothek für einen IR-Empfänger verwendet werden sollte, zeigen eine Skizze zum Testen der Funktionsweise eines Infrarotempfängers von einer Fernbedienung aus und analysieren Befehle in C++, um ein Steuersignal zu empfangen.

IR-Empfängergerät. Arbeitsprinzip

Infrarotstrahlungsempfänger empfangen Breite Anwendung in der elektronischen Technologie aufgrund seines erschwinglichen Preises, seiner Einfachheit und Benutzerfreundlichkeit. Diese Geräte ermöglichen die Steuerung von Geräten über eine Fernbedienung und sind in fast jeder Art von Ausrüstung zu finden.

Das Funktionsprinzip eines IR-Empfängers. Verarbeitung des Signals der Fernbedienung

Der IR-Empfänger auf Arduino ist in der Lage, ein Infrarotsignal in Form von Impulsen einer bestimmten Dauer und Frequenz zu empfangen und zu verarbeiten. Typischerweise hat ein IR-Empfänger drei Beine und besteht aus den folgenden Elementen: einer PIN-Fotodiode, einem Verstärker, einem Bandpassfilter, einem Amplitudendetektor, einem Integrationsfilter und einem Ausgangstransistor.

Unter dem Einfluss von Infrarotstrahlung in einer Fotodiode, die dazwischen liegt P Und N Regionen schufen eine zusätzliche Halbleiterregion ( ich-Region) beginnt Strom zu fließen. Das Signal gelangt zu einem Verstärker und dann zu einem Bandpassfilter, der den Empfänger vor Störungen schützt. Störungen können durch jedes Haushaltsgerät verursacht werden.

Der Bandpassfilter ist auf eine feste Frequenz eingestellt: 30; 33; 36; 38; 40 und 56 Kilohertz. Damit das Signal der Fernbedienung vom Arduino IR-Empfänger empfangen werden kann, muss die Fernbedienung die gleiche Frequenz haben, auf die der Filter im IR-Empfänger eingestellt ist. Nach dem Filter gelangt das Signal zu einem Amplitudendetektor, der den Filter und den Ausgangstransistor integriert.

So schließen Sie einen IR-Empfänger an Arduino an

Die Gehäuse von Infrarotempfängern enthalten einen optischen Filter, um das Gerät vor externen elektromagnetischen Feldern zu schützen. Sie bestehen aus einer speziellen Form, um die empfangene Strahlung auf eine Fotodiode zu fokussieren. Zum Anschließen des IR-Empfängers Arduino UNO Sie verwenden drei Beine, die mit den Anschlüssen verbunden sind – GND, 5V und A0.

Für diese Lektion benötigen wir folgende Angaben:

  • Arduino Uno-Board;
  • Brotbrett;
  • USB-Kabel;
  • IR-Empfänger;
  • Fernbedienung;
  • 1 LED;
  • 1 Widerstand 220 Ohm;
  • Drähte „Ordner-Ordner“ und „Ordner-weiblich“.

Anschlussplan des IR-Empfängers an den Arduino-Analogport

Schließen Sie den IR-Empfänger gemäß der Abbildung und die LEDs an die Pins 12 und 13 an und laden Sie die Skizze hoch.

#enthalten // Bibliothek für den IR-Empfänger anschließen IRrecv irrecv(A0); // Geben Sie den Pin an, an den der IR-Empfänger angeschlossen ist decode_results Ergebnisse; void setup () // Prozedur-Setup ( irrecv.enableIRIn (); // Beginnen Sie mit dem Empfang eines Infrarotsignals pinMode(13, OUTPUT); // Pin 13 wird der Ausgang sein pinMode(12, OUTPUT); // Pin 12 wird der Ausgang sein pinMode(A0,INPUT); // Pin A0 wird der Eingang sein (dt. „Input“) Serial.begin(9600); // Port-Monitor anschließen) void loop () // Prozedurschleife ( if (irrecv.decode (&results)) // Wenn die Daten angekommen sind, führen Sie die Befehle aus(Seriell. println (Ergebnisse. Wert); // die empfangenen Daten an den Port senden // Schalten Sie die LEDs je nach empfangenem Signal ein und aus if (results.value == 16754775) ( digitalWrite (13, HIGH); ) if (results.value == 16769055) ( digitalWrite (13, LOW); ) if (results.value == 16718055) ( digitalWrite (12, HIGH); ) if (results.value == 16724175) ( digitalWrite (12, LOW); ) irrecv.resume (); // das nächste Signal am IR-Empfänger empfangen } }

Erläuterungen zum Code:

  1. Die IRremote.h-Bibliothek enthält eine Reihe von Befehlen und ermöglicht Ihnen die Vereinfachung der Skizze;
  2. Die decode_results-Anweisung weist den Variablennamen results den empfangenen Signalen von der Fernbedienung zu.

Worauf Sie achten sollten:

  1. Um das Einschalten der LED steuern zu können, müssen Sie den Portmonitor einschalten und herausfinden, welches Signal von dieser oder jener Taste auf der Fernbedienung gesendet wird;
  2. Die ermittelten Daten sind in die Skizze einzutragen. Ändern Sie den achtstelligen Code in der Skizze nach dem doppelten Gleichheitszeichen if (results.value == 16769055) in Ihren eigenen.

IR-Empfängergerät, Bedienung und Prüfung

IR-Empfänger für Infrarotstrahlung sind in Fernseh-, Haushalts-, medizinischen Geräten und anderen Geräten weit verbreitet. Sie sind in fast allen elektronischen Geräten zu finden und werden mit einer Fernbedienung gesteuert.


Bedienung und Blockschaltbild des IR-Empfängers

Typischerweise verfügt eine IR-Empfänger-Mikrobaugruppe über drei oder mehr Pins. Einer ist gemeinsam und mit dem Minuspol der Stromversorgung verbunden GND, der andere zum Plus V s und der dritte ist die Ausgabe des empfangenen Signals Aus.

Im Gegensatz zu einer Standard-IR-Fotodiode ist ein IR-Empfänger nicht nur in der Lage, ein Infrarotsignal in Form von Impulsen fester Frequenz und vorgegebener Dauer zu empfangen, sondern auch zu verarbeiten. Dies schützt das Gerät vor Fehlalarm, durch Hintergrundstrahlung und Störungen durch andere Haushaltsgeräte, die im IR-Bereich emittieren. Leuchtstoff-Energiesparlampen mit elektronischer Vorschaltschaltung können zu recht starken Störungen des Empfängers führen.

Die Mikrobaugruppe eines typischen IR-Strahlungsempfängers umfasst: PIN-Fotodiode, variablen Verstärker, Bandpassfilter, Amplitudendetektor, Integrationsfilter, Schwellenwertgerät, Ausgangstransistor

Eine PIN-Fotodiode gehört zur Familie der Fotodioden, bei denen zwischen dem n- und dem p-Bereich ein weiterer Bereich eines eigenen Halbleiters (i-Bereich) entsteht – es handelt sich im Wesentlichen um eine Schicht aus reinem Halbleiter ohne Verunreinigungen. Dies verleiht der PIN-Diode ihre besonderen Eigenschaften. Im Normalzustand fließt kein Strom durch die PIN-Fotodiode, da diese in entgegengesetzter Richtung an den Stromkreis angeschlossen ist. Wenn im i-Bereich unter dem Einfluss externer IR-Strahlung Elektron-Loch-Paare erzeugt werden, beginnt Strom durch die Diode zu fließen. Das geht dann zu einem variablen Verstärker.

Anschließend gelangt das Signal vom Verstärker zu einem Bandpassfilter, der vor Störungen im IR-Bereich schützt. Der Bandpassfilter ist auf eine streng feste Frequenz eingestellt. Typischerweise werden Filter verwendet, die auf eine Frequenz von 30 eingestellt sind; 33; 36; 36,7; 38; 40; 56 und 455 Kilohertz. Damit das von der Fernbedienung ausgesendete Signal vom IR-Empfänger empfangen werden kann, muss es mit der gleichen Frequenz moduliert werden, auf die der Filter konfiguriert ist.

Nach dem Filter gelangt das Signal zu einem Amplitudendetektor und einem integrierenden Filter. Letzteres ist notwendig, um kurze einzelne Signalstöße zu blockieren, die durch Interferenzen entstehen können. Als nächstes gelangt das Signal zum Schwellenwertgerät und zum Ausgangstransistor. Für einen stabilen Betrieb wird die Verstärkung des Verstärkers durch ein automatisches Verstärkungsregelungssystem (AGC) angepasst.

Die Gehäuse der IR-Module haben eine spezielle Form, die die Fokussierung der empfangenen Strahlung auf die empfindliche Oberfläche der Fotozelle erleichtert. Das Gehäusematerial lässt Strahlung mit einer genau definierten Wellenlänge von 830 bis 1100 nm durch. Daher verwendet das Gerät einen optischen Filter. Zum Schutz interner Elemente vor äußeren Einflüssen. Feldern wird ein elektrostatischer Schirm verwendet.

Überprüfung des IR-Empfängers

Da es sich bei dem IR-Signalempfänger um eine spezielle Mikrobaugruppe handelt, ist es zur Gewährleistung seines Betriebs erforderlich, eine Versorgungsspannung an die Mikroschaltung anzulegen, normalerweise 5 Volt. Der Stromverbrauch beträgt ca. 0,4 - 1,5 mA.

Wenn der Empfänger kein Signal empfängt, entspricht die Spannung an seinem Ausgang in den Pausen zwischen den Impulsstößen praktisch der Versorgungsspannung. Es ist zwischen GND und der Signalausgangspin kann mit jedem Digitalmultimeter gemessen werden. Es wird auch empfohlen, den von der Mikroschaltung verbrauchten Strom zu messen. Wenn es den Standardwert überschreitet (siehe Nachschlagewerk), ist höchstwahrscheinlich die Mikroschaltung defekt.

Stellen Sie daher vor Beginn des Modultests sicher, dass Sie die Pinbelegung seiner Ausgänge ermitteln. Normalerweise sind diese Informationen in unserem Mega-Verzeichnis für Elektronik-Datenblätter leicht zu finden. Sie können es herunterladen, indem Sie auf das Bild rechts klicken.

Schauen wir uns das am TSOP31236-Chip an. Die Pinbelegung entspricht der Abbildung oben. Wir verbinden den Pluspol des selbstgebauten Netzteils mit dem Pluspol des IR-Moduls (Vs) und den Minuspol mit dem GND-Anschluss. Und wir verbinden den dritten OUT-Pin mit der positiven Sonde des Multimeters. Wir verbinden die negative Sonde mit dem gemeinsamen GND-Kabel. Schalten Sie das Multimeter in den Gleichspannungsmodus mit 20 V.

Sobald Pakete von Infrarotimpulsen an der Fotodiode der IR-Mikroanordnung ankommen, sinkt die Spannung an ihrem Ausgang um mehrere hundert Millivolt. In diesem Fall ist deutlich zu erkennen, wie der Wert auf dem Multimeterbildschirm von 5,03 Volt auf 4,57 sinkt. Wenn wir die Fernbedienungstaste loslassen, zeigt der Bildschirm wieder 5 Volt an.

Wie Sie sehen, reagiert der IR-Strahlungsempfänger korrekt auf das Signal der Fernbedienung. Das bedeutet, dass das Modul in Ordnung ist. Auf ähnliche Weise können Sie beliebige Module in einem integrierten Design überprüfen.

Die Infrarot-Fernbedienung ist eine der beliebtesten einfache Wege Interaktion mit elektronischen Geräten. Daher gibt es in fast jedem Haushalt mehrere solcher Geräte: einen Fernseher, eine Stereoanlage, einen Videoplayer, eine Klimaanlage. Der interessanteste Einsatzbereich einer Infrarot-Fernbedienung ist jedoch die Fernsteuerung eines Roboters. Tatsächlich werden wir in dieser Lektion versuchen, diese Steuerungsmethode mit dem beliebten Arduino Uno-Controller zu implementieren.

1. IR-Fernbedienung

Was ist nötig, um einem Roboter beizubringen, einer Infrarot-Fernbedienung zu gehorchen? Zuerst benötigen wir die Fernbedienung selbst. Sie können eine normale TV-Fernbedienung verwenden oder eine Miniaturfernbedienung für Ihr Autoradio kaufen. Diese Arten von Fernbedienungen werden häufig zur Steuerung von Robotern verwendet. Diese Fernbedienung verfügt über 10 digitale Tasten und 11 Tasten zur Musiksteuerung: Lautstärke, Zurückspulen, Wiedergabe, Stopp usw. Für unsere Zwecke mehr als genug.

2. IR-Sensor

Zweitens benötigen wir einen speziellen IR-Sensor, um ein Signal von der Fernbedienung zu empfangen. Im Allgemeinen können wir Infrarotstrahlung mit einer herkömmlichen Fotodiode/einem herkömmlichen Fototransistor erkennen, aber im Gegensatz dazu nimmt unser IR-Sensor Infrarotsignale nur bei einer Frequenz von 38 kHz (manchmal 40 kHz) wahr. Diese Eigenschaft ermöglicht es dem Sensor, viele Fremdlichtgeräusche von Beleuchtungslampen und der Sonne zu ignorieren. Für dieses Tutorial verwenden wir den beliebten IR-Sensor VS1838B, das folgende Eigenschaften aufweist:
  • Trägerfrequenz: 38 kHz;
  • Versorgungsspannung: 2,7 - 5,5 V;
  • Stromaufnahme: 50 µA.
Andere Sensoren können verwendet werden, zum Beispiel: TSOP4838, TSOP1736, SFH506.

3. Verbindung

Der Sensor hat drei Leitungen (drei Beine). Wenn Sie den Sensor von der Seite des IR-Signalempfängers betrachten, wie in der Abbildung gezeigt,
  • dann erfolgt links eine Ausgabe an den Controller,
  • in der Mitte - negativer Stromkontakt (Masse),
  • und rechts - der positive Stromkontakt (2,7 - 5,5 V).
Schematische Darstellung des Anschlusses Aussehen des Layouts

4. Programm

Nachdem wir den IR-Sensor angeschlossen haben, schreiben wir ein Programm für Arduino Uno. Dazu verwenden wir die Standardbibliothek IRremote, das speziell entwickelt wurde, um die Arbeit beim Empfangen und Senden von IR-Signalen zu vereinfachen. Mit dieser Bibliothek empfangen wir Befehle von der Fernbedienung und zeigen sie zunächst einfach im Monitorfenster der seriellen Schnittstelle an. Dieses Programm wird uns nützlich sein, um zu verstehen, welchen Code jede Schaltfläche ausgibt. #include "IRremote.h" IRrecv irrecv(2); // den Pin angeben, mit dem der Empfänger verbunden ist decode_results results; void setup() ( Serial.begin(9600); // Geschwindigkeit des COM-Ports einstellen irrecv.enableIRIn(); // Empfang starten ) void loop() ( if (irrecv.decode(&results)) ( // if Daten angekommen Serial .println(results.value, HEX); // drucke die Daten irrecv.resume(); // akzeptiere den folgenden Befehl) ) Laden Sie das Programm auf den Arduino. Danach versuchen wir, Befehle von der Fernbedienung zu empfangen. Öffnen Sie den Monitor für die serielle Schnittstelle (Strg+Umschalt+M), nehmen Sie die Fernbedienung und richten Sie sie auf den Sensor. Durch Drücken verschiedener Tasten beobachten wir die diesen Tasten entsprechenden Codes im Monitorfenster. Problem beim Laden des Programms In einigen Fällen kann beim Versuch, ein Programm in die Steuerung zu laden, ein Fehler auftreten: TDK2 wurde nicht in seinem Geltungsbereich deklariert Um das Problem zu beheben, löschen Sie einfach zwei Dateien aus dem Bibliotheksordner. Gehen wir zum Explorer. Gehen Sie zu dem Ordner, in dem die Arduino IDE-Anwendung installiert ist (höchstwahrscheinlich ist es „C:\Programme (x86)\Arduino“). Dann zum Bibliotheksordner: …\Arduino\libraries\RobotIRremote, und löschen Sie die Dateien: IRremoteTools.cpp Und IRremoteTools.h. Anschließend starten wir die Arduino IDE neu und versuchen erneut, das Programm auf den Controller zu laden.

5. Steuern Sie die LED mit der IR-Fernbedienung

Nachdem wir nun wissen, welche Codes den Tasten der Fernbedienung entsprechen, versuchen wir, den Controller so zu programmieren, dass er die LED ein- und ausschaltet, wenn die Lautstärketasten gedrückt werden. Dazu benötigen wir Codes (können je nach Fernbedienung variieren):
  • FFA857 – Lautstärke erhöhen;
  • FFE01F – Lautstärke verringern.
Als LED verwenden wir die eingebaute LED an Pin Nr. 13, daher bleibt der Anschlussplan gleich. Also das Programm: #include "IRremote.h" IRrecv irrecv(2); // den Pin angeben, mit dem der Empfänger verbunden ist decode_results results; void setup() ( irrecv.enableIRIn(); // Empfang starten ) void loop() ( if (irrecv.decode(&results)) ( // wenn Daten angekommen sind switch (results.value) ( ​​​​case 0xFFA857: digitalWrite( 13, HIGH); break; case 0xFFE01F: digitalWrite(13, LOW); // break; Klicken Band+— Die LED leuchtet. Klicken vol-- geht raus. Wenn Sie nun wissen, wie das alles funktioniert, können Sie Robotermotoren oder andere selbstgebaute mikroelektronische Geräte anstelle einer LED steuern!