Hallo zusammen,
Bin neu hier bei euch.
Und nachdem ich gefühlt das gesamte Internet durchsucht habe, bin ich
der Hoffnung ihr könnt mir vielleicht weiterhelfen.
Ich nutze einen Arduino UNO bzw. einen Trinket 5V (Adafruit) als
Steuerung für einen NeoPixel LED Streifen. Da ich allerdings nicht nur
simples EIN/AUS steuere, sonden auch Farbverläufe und
Helligkeitswechseln (breathing) ist der Arduino rellativ gut beschäftig
mit den Berechnungen.
Zur Zeit nutze ich Buttons und einen Poti zu Auswahl der Modi.
Nun möchte ich aber meine alte Apple Remote Fernbedienung nutzen um
zwischen den verschiedenen Modi auch aus der Ferne umschalten zu können.
Ich hab herausgefunden, dass eine Library existiert mit welcher ich
einen IR-Empfänger (z.B. Vishay TSOP4838) auswerten könnte.
Allerdings habe ich die Befüchtung, dass die ganzen Interrupts den
Ablauf stören würden. Also das durch das polling und parsen die
Berechnungen gestört werden. Klärt mich ruhig auf wenn ich mich hier
irre.
Also bin ich auf die Suche gegangen und habe aus meinem alten Macbook
den IR-Empfänger ausgebaut und habe erstaunt festgestellt, dass dort
noch eine Platine mit µC dranhängt und 4 Kabel von der Platine aufs MoBo
vom Mac gingen -> USB? Hab also mal nen USB Kabel geopfert, die Litzen
verbunden und an den PC... Tja was soll ich sagen ist scheinbar ein
fertiger IR-Decoder (Am Mac funktioniert es sogar sofort wie gewohnt).
Hab mir dann den Datenstrom mal angeschaut:
1 | Bulk or Interrupt Transfer:
|
2 | Pipe Handle: 0x10855af8 (Endpoint Adress: 0x82)
|
3 |
|
4 | Get 0x5 bytes from the Device
|
5 |
|
6 | 25 87 EE 5E 05 -- > Play/Pause
|
7 | 25 87 EE 5E 06 -- > Fwd
|
8 | 25 87 EE 5E 09 -- > Back
|
9 | 25 87 EE 5E 0A -- > +
|
10 | 25 87 EE 5E 0C -- > -
|
11 | 25 87 EE 5E 03 -- > Menu
|
Es ändert sich also doch eigentlich nur das erste Byte.
Abgesehen davon, dass sich komischerweise das lezte Byte (die 25) hier
und da in eine 26 wandelt, aber ich denke das kann man getrost
ignorieren.
Die Verbindung ist inaktiv bis ein Button gedrückt wird. Dann wird
gesendet, allerdings nur einmal bzw. wiederholt sich beim
gedrückthalten.
Nur wie bekomm ich die Codes jetzt an den Arduino??? Ist dies überhaupt
direkt möglich? Ich weiß hier einfach nicht weiter, vlt. denke ich zu
kompliziert.
Am liebsten wäre mir halt nen TTL signal welches ich dann auswerte um
den Arduino nicht an seine Grenze zu bewegen, aber das funktioniert halt
so nicht denke ich.
Kann ich über die Serielle Schnittstelle irgendwie den Datenstrom vom
Decoder kommen?
Ich hoffe ihr könnt mir hier weiterhelfen :)
Vielen Dank,
L