BinärCode ausgeben bei entsprechendem Tastendruck?

Hallo zusammen.

Kenne mich noch nicht so gut mit Arduino aus, daher diese Frage :slight_smile:

Folgendes Szenario:
Es handelt sich um einen HDMI Switch der man mit einer Fernbedienung schalten kann. Ich will das ganze aber bequem von einem anderen Büro aus machen, da die Fernbedienung nunmal nicht so weit reicht.
Der momentane IR-Decoder ist mittels 3.5mm Jack mit dem HDMI Switch verbunden.

Nun möchte ich gerne, dass wenn ich auf meiner Computer Tastatur zB die Taste F3 drücke, der erste Binär-Code (1111111100001000011101111) ausgegeben wird. Bei Tastendruck auf zB F4 soll der zweite Code (1111111101101100000100111) ausgeben werden. Kann man das irgendwie realisieren, dass bei entsprechendem Tastendruck das jeweilige Signal an einen Pin ausgegeben wird? Sollte das gehen, kann ich diesen Code mittels Custom Jack Kabel abfangen und zum Switch führen.

Besten Dank.

Dazu bräuchtest Du erstmal was auf Deinem Computer, der einen/den Code generiert und dann auf der dazugehörigen Schnittstelle, auf der der Arduino lauscht, ausgibt.

sowas wie labview?

Aeh...
Irgendwas, was auf einer Schnittstelle irgendwas generiert, was Du dann auf dem Arduino auswerten kannst.
Von mir aus auch irgendein Script, was die Tastatur dauerhaft abfragt.

Warum willst Du das mit einer Tastatur am Rechner machen?
Kauf Dir einen FB-Extender/Repaeter.
Der nimmt auf der einen Seite das IR-Signal auf und gibt es auf der anderen Seite aus.
Keine Kaufempfehlung nur informell: Infrarot Extender - Marmitek Powermid XL - Steuern Sie Ihre AV Geräte mit diesem IR repeater drahtlos von einem anderen Raum aus - Funktioniert garantiert mit allen Fernbedienungen: Amazon.de: Elektronik & Foto

Nunja.
Grundsätzlich kann ich auch auf diese Funktion mit der Tastatur verzichten. Mein Hauptfokus liegt daran diese BinärCodes irgendwie an einen PIN ausgeben zulassen. Ich bin der Meinung, dass dies doch gehen sollte?

Danke für deinen amazon link :slight_smile:

Na dann...
Einfachen Taster an einem PIN des Arduino ran und wenn Du drauf drückst, dann auf einem anderen PIN die Binaerfolge ausgeben.

Danke für diesen Tipp.
Ich bin wie gesagt "blutiger" Anfänger..

Dürfte ich daher nach einem Code-Beispiel fragen? :slightly_smiling_face:

Binär ist nur eine Darstellung für eine Binärzahl in einem oder mehreren Speicherzellen. Gleiches gilt für Octal- Dezimal oder Hexadezimal.
Wie soll die Binär ausgegeben werden? Auf ein Pin? einfach als H und L oder anders?
Könnte shiftOut() gehen? shiftOut() - Arduino Reference
Grüße Uwe

och fragen geht immer...
Ich hätte ja getippt, das da eigentlich drei Bytes übertragen werden.

Woher hast Du den Binaerkode?

Hm wie gesagt, ich bin Anfänger und kann bisher nur die Basics. :frowning:

Genau diese BinärCodes sollen an eine Pin gesendet werden, damit ich die entsprechend abgreifen kann.. aber ich weiss nicht wie man das macht. Finde dazu keine Anleitung oder Hilfestellung

Die Codes habe ich mit einer Anleitung aus diesem Forum ermittelt. Habe dazu ein entsprechendes IR-Empfänger-Modul verwendet. Ich gehe also davon aus, dass diese Codes richtig sind.

Da das 25 Bit sind....

könnte da was faul sein.

Ich habe auch 25 Bits gezählt.
Und ja, das geht...

23:16:54.460 -> https://forum.arduino.cc/t/binarcode-ausgeben-bei-entsprechendem-tastendruck/962345
23:16:54.460 -> von rechts nach links
23:16:54.507 -> 1111011100001000011111111
23:16:54.507 -> von links nach rechts
23:16:54.507 -> 1111111100001000011101111

Das habe ich aber nicht mit shiftOut() gemacht, was für Pins die elegantere Lösung wäre. Allerdings kann das nur Bytes - da müsstest Du den Binärcode aufteilen.

Wenn Du den Binärcode über einen IR Empfänger empfangen hast ist zu fragen ob das die Daten sind oder eine unzureichende Umformung des Sendecodes. Das IR Signal wird für die Sendung codiert und beim Empfangen wieder decodiert. Es gibt mehrere Codierungsmöglichkeiten.

Was ist dieser Binärcode? Die Daten oder der Sendecode?

Grüße Uwe

Dann fehlen die führenden 0!
Das sind 4 BYTE! Ein uint32_t!
Auf dem Sermon werden die führenden Nullen nicht ausgegeben.
So sieht es richtig aus:

00000001 11111110 00010000 11101111
00000001 11111110 11011000 00100111

Die vier Byte brauchte ich tatsächlich, um den Wert zu speichern. Ich gebe aber nur die 25 Bit aus - dass es mehr sein sollten | könnten habe ich dem Eingangspost nicht entnommen.

Wenn Du meine Print Erweiterungen nutzt, werden sie das.

Gruß Tommy

Das stimmt!

Das kann ich leider nicht eindeutig beantworten.

Ich weiss...
So und nu kannst ne ganz normale Zahl als unsigned long definieren und ganz schick seriell über den IR-Pin senden.