Inhaltsverzeichnis:

Infrarotsensor mit Arduino verwenden - Gunook
Infrarotsensor mit Arduino verwenden - Gunook

Video: Infrarotsensor mit Arduino verwenden - Gunook

Video: Infrarotsensor mit Arduino verwenden - Gunook
Video: Infrarot Signale einer Fernbedienung decodieren mit dem Arduino und einem IR-Receiver 2024, Juni
Anonim
Infrarotsensor mit Arduino verwenden
Infrarotsensor mit Arduino verwenden

Was ist ein Infrarotsensor (auch bekannt als IR)?

Ein IR-Sensor ist ein elektronisches Instrument, das IR-Signale in bestimmten, durch Standards definierten Frequenzbereichen abtastet und an seinem Ausgangspin (normalerweise als Signalpin bezeichnet) in elektrische Signale umwandelt. Die IR-Signale werden hauptsächlich zur Übertragung von Befehlen über kurze Distanzen (normalerweise wenige Meter) verwendet, wie Sie es bereits mit TV-Fernbedienungen oder ähnlichen elektronischen Geräten kennen.

IR-Kommunikationsprotokoll

Jedes Signal repräsentiert einen bestimmten Code. Elektrische Signale können in die tatsächlichen Daten/Codes zurückgewandelt werden, die der Sender gesendet hat. Wenn Sie eine Taste Ihrer TV-Fernbedienung drücken, erzeugt diese ein dem Tastencode entsprechendes Signal (z. B. Ein/Aus, Lautstärke erhöhen usw.) und sendet es an einen Receiver (in diesem Fall Ihren Fernseher). Sowohl Sender als auch Empfänger haben sich auf eine Reihe von Codes geeinigt, damit der Empfänger basierend auf jedem Code weiß, was zu tun ist. Die Art und Weise, wie ein Code als Signal moduliert (modelliert) werden soll, ist in verschiedenen Standards definiert und jeder Sensorhersteller versucht normalerweise, ein damit kompatibles Produkt herzustellen, damit es in verschiedenen Geräten verwendet werden kann. Eines der bekanntesten Standardprotokolle stammt von NEC. Eine kurze Geschichte der IR-Protokolle finden Sie auf Wikipedia unter Consumer IR title.

Schritt 1: Wie sieht ein IR-Sensor aus?

Wie sieht ein IR-Sensor aus?
Wie sieht ein IR-Sensor aus?
Wie sieht ein IR-Sensor aus?
Wie sieht ein IR-Sensor aus?
Wie sieht ein IR-Sensor aus?
Wie sieht ein IR-Sensor aus?

IR-Sensoren sind auf verschiedenen Paketen erhältlich. Hier sehen Sie einige typische Verpackungen für einen IR-Empfänger.

Schritt 2: IR-Sensor Breakout Board / Modul

IR-Sensor Breakout Board/Modul
IR-Sensor Breakout Board/Modul
IR-Sensor Breakout Board/Modul
IR-Sensor Breakout Board/Modul
IR-Sensor Breakout Board/Modul
IR-Sensor Breakout Board/Modul
IR-Sensor Breakout Board/Modul
IR-Sensor Breakout Board/Modul

Sie können sie auch als IR-Modul/Breakout-Board bei eBay, Aliexpress oder Amazon kaufen. Solche Module enthalten normalerweise einen der oben genannten Sensoren mit einem netten Steckbrett-freundlichen Paket zusammen mit einer LED, die blinken würde, wenn der Sensor ein Signal erkennt. Dadurch würden Sie feststellen, ob Daten übertragen werden. Ich empfehle dringend, mit einem dieser Module zu beginnen.

Hinweis: Wenn Sie einen rohen IR-Sensor haben, würde sich nichts ändern, außer dass Sie das Datenblatt des Sensors überprüfen sollten, um sicherzustellen, dass Sie ihn richtig verdrahten, da Sie sonst einen schönen blauen Rauch mit einem Geruch haben können, der für eine Stunde. Sie wissen, was ich meine;)

Schritt 3: Erforderliche Teile und Komponenten

Erforderliche Teile und Komponenten
Erforderliche Teile und Komponenten

Hier finden Sie die Liste der Komponenten, die Sie für dieses Tutorial benötigen:

eBay-Links:

  • 1 x Arduino Uno:
  • 1 x IR-Sensormodul mit Fernbedienung:
  • 4 x 220 Ohm Widerstände:
  • 4 x LED:
  • 8 x Dupont-Kabel:
  • 1 x Lötfreies Steckbrett:
  • 1 x Mini-Steckbrett (optional):

Amazon.com-Links:

  • 1 x Arduino Uno:
  • 1 x IR-Sensormodul mit Fernbedienung:
  • 1 x Lötfreies Steckbrett:
  • 4 x 220 Ohm Widerstände:
  • 4 x LED:
  • 8 x Dupont-Kabel:
  • 1 x Mini-Steckbrett (optional):

Schritt 4: Anschließen des IR-Sensors an Arduino

Anschließen des IR-Sensors an Arduino
Anschließen des IR-Sensors an Arduino
Anschließen des IR-Sensors an Arduino
Anschließen des IR-Sensors an Arduino
Anschließen des IR-Sensors an Arduino
Anschließen des IR-Sensors an Arduino

Das Einrichten der IR-Sensorverbindung zu Arduino ist sehr einfach. Neben VCC und GND-Pin hat der Sensor nur einen Ausgangspin, der mit einem der digitalen Pins des Arduino verbunden werden sollte. In diesem Fall ist es mit Pin 13 verbunden.

Ich habe versucht, sowohl das IR-Sensormodul als auch das rohe IR-Sensor-Setup zu demonstrieren. Wie auf den Bildern zu sehen ist, ist die Position der VCC- und GND-Pins am Sensormodul entgegengesetzt zum Rohsensor. Dies ist jedoch bei Ihrem Sensor möglicherweise nicht der Fall. Überprüfen Sie daher, wie im vorherigen Schritt erwähnt, bei Verwendung des Rohsensors zuerst das Datenblatt.

Schritt 5: Finden Sie den Code für jede Taste auf der Fernbedienung

Finden Sie den Code für jede Taste auf der Fernbedienung
Finden Sie den Code für jede Taste auf der Fernbedienung
Finden Sie den Code für jede Taste auf der Fernbedienung
Finden Sie den Code für jede Taste auf der Fernbedienung
Finden Sie den Code für jede Taste auf der Fernbedienung
Finden Sie den Code für jede Taste auf der Fernbedienung

Um Arduino so zu programmieren, dass es etwas tut, wenn Sie eine Taste auf der Fernbedienung drücken, sollten Sie zuerst den Code haben, der dieser Taste entspricht. Der Tastencode ist eine Zahl, die normalerweise hexadezimal dargestellt wird. Jede Fernbedienung verfügt über einen eigenen Satz von Tastencodes, während es möglich ist, dass zwei Controller denselben Code für unterschiedliche Zwecke verwenden. Durch unterschiedliche Tastencodes und die Verwendung unterschiedlicher Frequenzbereiche wird sichergestellt, dass zwei Fernbedienungen unterschiedlicher Geräte keine Interferenzen haben. Deshalb reagiert Ihr DVD-Player gar nicht, wenn Sie Ihren TV-Kanal wechseln.

Um die Codes für Ihre IR-Fernbedienung zu erkennen, müssen Sie zuerst eine einfache Skizze ausführen, die versucht, den Code vom Sensor zu lesen, wenn Sie eine Taste drücken, und diese über die serielle Schnittstelle an Ihren Computer sendet, wo Sie mit den Serial Monitor-Tools von. darauf zugreifen können Arduino-IDE. Dies geschieht in der Skizze, die diesem Abschnitt beigefügt ist. Es wäre besser, jede Taste zu drücken, um den Code zu sehen und die Liste der Codes irgendwo aufzuschreiben, damit Sie diesen Code in Zukunft nicht erneut ausführen müssen. Die Liste der Tastencodes, die Sie als Tabelle im Bild sehen, sind tatsächlich Codes, die ich beim Drücken von Tasten auf meiner billigen IR-Fernbedienung erhalten habe.

Sie können auch auf den tatsächlichen Quellcode zugreifen, der in meinem Arduino-Webeditor unter ir-key-code-logger geteilt wird.

Hinweis: Haben Sie keine Angst, wenn Sie irgendwo dazwischen einen Code wie FFFFFF sehen. Dies bedeutet, dass Sie eine Taste eine Weile gedrückt haben. Wir werden später darauf zurückkommen. Ignoriere sie vorerst einfach und konzentriere dich auf andere Codes.

Schritt 6: Steuern Sie eine Reihe von LEDs mit der IR-Fernbedienung

Steuern Sie eine Reihe von LEDs mit der IR-Fernbedienung
Steuern Sie eine Reihe von LEDs mit der IR-Fernbedienung
Steuern Sie eine Reihe von LEDs mit der IR-Fernbedienung
Steuern Sie eine Reihe von LEDs mit der IR-Fernbedienung
Steuern Sie eine Reihe von LEDs mit der IR-Fernbedienung
Steuern Sie eine Reihe von LEDs mit der IR-Fernbedienung

Da wir nun einen Code für jede Schaltfläche haben, ist es an der Zeit, uns darauf zu konzentrieren, wie wir sie verwenden können. Normalerweise verwenden Sie die IR-Fernbedienung, um Befehle an Arduino zu senden, um beispielsweise eine Lampe ein- oder auszuschalten, einen Roboter in eine bestimmte Richtung zu bewegen, etwas auf einem LCD / OLED-Bildschirm anzuzeigen usw. Hier versuchen wir, den Vorgang mit einem einfachen zu demonstrieren Schaltung bestehend aus 4 LEDs in verschiedenen Farben. Wir möchten jeden von ihnen mit einer speziellen Taste der IR-Fernbedienung ein- oder ausschalten. Wie Sie auf dem Schaltplan sehen können, müssen Sie den Arduino wie folgt mit LEDs und Sensor verbinden:

Arduino GND -> IR-Sensor GND.

Arduino VCC -> IR-Sensor VCC.

Arduino 13 -> IR-Sensorsignalausgang.

Arduino 2 -> Anode der blauen LED (kürzerer Pin der blauen LED)

Arduino 3 -> Anode der grünen LED (kürzerer Pin der grünen LED)

Arduino 4 -> Anode der gelben LED (kürzerer Pin der gelben LED)

Arduino 5 -> Anode der roten LED (kürzerer Pin der roten LED)

Arduino GND -> Kathode aller LEDs über einen 220 Ohm Widerstand (längerer Pin der LEDs)

Den Code, der dieser Schaltung entspricht, finden Sie in der angehängten Datei oder in meinem Arduino-Webeditor unter ir-led-control.

Schritt 7: Fehlerbehebung

Beim Einrichten Ihres Projekts und Befolgen der Schritte können Sie auf viele seltsame Situationen stoßen. Hier ist die Liste einiger häufiger Fehler, die bei der Arbeit mit dem IR-Sensor auftreten können.

FFFFFF beim Drücken einer Taste erhalten

Wenn Sie eine Taste drücken, werden Sie möglicherweise feststellen, dass sie meistens einen Code wie FFFFFF meldet. Dies geschieht, wenn Sie eine Taste drücken und für eine Weile gedrückt halten, auch für kurze Zeit. Das Szenario ist, dass beim ersten Drücken der Taste die IR-Fernbedienung den Tastencode sendet und solange Sie die Taste gedrückt halten, das Senden von FFFFFF wiederholt wird, was bedeutet, dass der Benutzer die kürzlich gemeldete Taste immer noch drückt. Das wäre in Ordnung. Sie können sie einfach weglassen. Der eigentliche Code ist der, den Sie direkt vor FFFFFF auf dem Serial Monitor erhalten haben.

IR-Sensor reagiert überhaupt nicht und scheint warm zu werden

Strom abschalten!!! Wenn Sie sicher sind, dass die Skizze des Key-Code-Loggers korrekt ist, liegt das Problem möglicherweise an der falschen Einrichtung Ihrer Drähte. Das Szenario, das mir passierte, war, dass ich für mein IR-Modul (das an der Platine befestigte) VCC und GND umgekehrt angeschlossen hatte (weil ich keine richtigen Farben für meine Anschlussdrähte verwendet hatte). Dabei brannte die Sensorkomponente und ein schöner blauer Rauch stieg auf. Ich habe eine Packung roher IR-Sensoren gekauft und versucht, sie zu ersetzen, und jetzt funktioniert es wie ein Zauber:). Leider habe ich den gleichen Fehler gemacht, als ich mit dem rohen IR-Sensor getestet habe, und diesmal passierte nichts, außer dass der Sensor warm wurde. Überprüfen Sie daher immer den Stromkreis, bevor Sie den Strom einschalten!

Manchmal erkennt der Sensor einen Code, den ich noch nie gesehen habe

Dies ist eines der häufigsten Probleme. Dies liegt höchstwahrscheinlich an einem der folgenden Gründe:

Sie richten Ihre IR-Fernbedienung nicht direkt auf den Sensor

Dies führt dazu, dass Sie einige neue Codes (meist längere Codes) erhalten, die Sie noch nie erhalten haben und die normalerweise nicht mit der Länge der bereits vorhandenen Codes übereinstimmen. Denken Sie also daran, die Fernbedienung immer auf Ihren Sensor zu richten.

Sie verwenden eine billige IR-Fernbedienung (wie die, die ich in diesem Tutorial verwendet habe)

Anstatt eine billige, unvorhersehbare Fernbedienung zu verwenden, können Sie dasselbe Szenario mit der Fernbedienung Ihres Fernsehers oder DVD-Players oder einer IR-Fernbedienung eines beliebigen Geräts ausprobieren. Sie haben normalerweise eine gute Signal-/Hardwarequalität (und sind natürlich teurer) und meiner Erfahrung nach funktionieren sie normalerweise gut, auch wenn Sie Ihre Fernbedienung nicht direkt auf den Sensor richten.

Woher weiß ich, ob ein protokollierter Code kein Müll ist?

Die Codes werden normalerweise im hexadezimalen Format dargestellt. Wenn Sie sie in den entsprechenden Binärwert umwandeln, werden Sie feststellen, dass die binäre Darstellung des letzten Bytes die Negation des Bytes davor ist. Wenn Sie dies wissen, können Sie diesen Code in Ihrem Code überprüfen, um sicherzustellen, dass der erhaltene Code tatsächlich gültig ist oder nicht. Wenn Sie beispielsweise FF7A85 erhalten, wäre seine binäre Darstellung wie folgt:

1111 1111 0111 1010 1000 0101

Von links nach rechts repräsentiert jeder Stapel von 4 Ziffern ein Zeichen in der ursprünglichen Hexadezimalzahl. Wie Sie sehen, ist die Charge, die 7 entspricht, 0111 und die Charge, die 8 entspricht, 1000, was die genaue Negation davon ist. Mit Negation meine ich, dass alle Nullen Einsen wären und alle Einsen durch Nullen ersetzt würden. Das gleiche gilt für den nächsten, der A (1010) und 5 (0101) ist.

Schritt 8: Was ist als nächstes zu tun?

Jetzt bist du dran. Es liegt an Ihrer Fantasie, zu sehen, was Sie mit diesem kleinen einfachen Sensor in Ihrer Hand tun können. Hier sind einige Ideen für den Anfang:

  • Verwenden Sie die IR-Fernbedienung eines der Geräte, die Sie zu Hause haben (TV, Stereo usw.) und versuchen Sie, sie in Ihrem Arduino-Projekt zu verwenden
  • Versuchen Sie, alle LEDs gleichzeitig einzuschalten, indem Sie eine Taste drücken, und schalten Sie sie dann mit einer anderen Taste aus
  • Verwenden Sie die Auf-/Ab-Taste der Fernbedienung, um die LEDs nacheinander ein- / auszuschalten, bis alle ein- / ausgeschaltet sind
  • Erstellen Sie eine Ampel mit LEDs und steuern Sie sie mit Ihrer Fernbedienung
  • Wenn Sie einen kleinen Gleichstrommotor zur Hand haben, versuchen Sie, die Drehrichtung über die IR-Fernbedienung zu starten/stoppen oder zu ändern
  • Sie können Ihre TV-Fernbedienung verwenden, um Ihren Roboter zu steuern oder einige Sensoren/Aktoren darauf zu aktivieren/deaktivieren

Lassen Sie mich in Kommentaren wissen, was Sie mit der IR-Fernbedienung tun würden (oder bereits getan haben).

Empfohlen: