Ich verwende ein digitales IR-Empfängermodul und ein digitales IR-Sendermodul, die jeweils mit einem anderen Arduino Uno verbunden sind. Wie kann ich Daten wie „1234“ an den Empfänger übertragen und Daten auf dem LCD anzeigen? Dies liegt daran, dass die meisten Beispiele, die ich gefunden habe, IR-Fernbedienungscodes wie Sony und RC4 verwenden. Ich möchte nur einfache Daten senden.
Da die Frage nicht angibt, welche digitalen IR-Sender- und -Empfängermodule verwendet werden, erklärt diese Antwort, wie eine Infrarotdatenkommunikation einfach mit einer generischen IR-LED und einem modulierten IR-Empfänger wie dem TSOP17xx von Vishay oder ähnlichen Teilen erreicht werden kann .
Annahmen :
Empfangen :
Dies ist der einfache Teil. Verbinden Sie einfach den OUT-Pin des Sensors mit dem seriellen RX-Pin Ihres Arduino (digitaler Pin 0 ). Wenn Ihr Arduino eines der grundlegenden (älteren) Modelle ist, verwenden Sie Serial.read()
in loop()
:
int inputByte = 0;
if (Serial.available() > 0) {
// read the incoming byte:
inputByte = Serial.read();
// Do stuff with this byte, then loop again
Für den Arduino Mega oder Due können Sie auch Serial1, Serial2 oder Serial3 verwenden, je nachdem, welchen RX-Pin Sie verwenden.
Weitere Informationen finden Sie in der seriellen Arduino-Referenz .
Hinweis: Versorgen Sie den Sensor mit der gleichen Spannung, mit der Ihr Arduino seinen Mikrocontroller tatsächlich mit 3,3 oder 5 Volt betreibt, je nach Arduino-Modell. Jedes Arduino-Board hat einen geeigneten Spannungsausgangspin, den Sie dafür verwenden können. Verwenden Sie nicht die externe Versorgung (normalerweise 7 bis 12 Volt) für das Arduino-Board.
Übertragen :
Sie haben zwei Möglichkeiten: (1) Arduino, LED und passive Komponenten oder (2) die Verwendung einer zusätzlichen Logikgatterkomponente. Die erste Option ist gut für Niedrigstrom-IR-LEDs (20-30 mA Spitzen):
55,944 Hz
), um ungefähr 56 KHz zu erhalten. 38,005 Hz
Bei Bedarf wird stattdessen ein Überlaufwert von 421 geliefert .Schließen Sie einen geeigneten Strombegrenzungswiderstand ( 120 bis 150 Ohm an einem 5-Volt-Arduino = ungefähr 18 mA bis 23 mA -Grenze ), eine kleine Signaldiode und die LED in Reihe, wie unten gezeigt:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Zum Ansteuern einer LED mit höherem Strom kann eine zusätzliche Logikkomponente, ein Quad-UND-Gatter wie SN74AS1008 , verwendet werden. Dieser Teil liefert oder senkt bis zu 48 mA pro Gate, und mehrere Gates können für eine höhere Stromansteuerung parallel geschaltet werden.
Simulieren Sie diese Schaltung
Verwenden Sie nun einfach Serial.write()
Ihren Arduino- Code, um alle seriellen Daten zu übertragen, die am anderen Ende loop()
empfangen werden , wie zuvor beschrieben.Serial.read()
user_1818839