Hardwaremäßig ist die Aufgabe gar nicht so schwer. An den
Mikrocontroller kann man eine fast beliebige Infrarot-LED (z.B. CQY99,
LD274 oder so) über einen Transistor anschließen. Der Portpin liefert
von sich aus nicht genügend Strom, um ausreichende Leistung zu
erzielen, außer, wenn es auf die Reichweite nicht ankommt. Die
Betriebsspannung sollte unbedingt durch einen ausreichend großen Elko
gestützt werden, da die Leistung impulsweise benötigt wird.
IR-Sendedioden vertragen einen höheren Strom als normale LEDs. (100mA
kontinuierlich / 3A Impuls bei der LD274). Wenn man den Vorwiderstand
für den zulässigen Impulsstrom bemißt, ist allerdings unbedingt zu
vermeiden, daß die IR-LED im Fehlerfall oder Resetzustand eingeschaltet
bleibt, sonst ist sie schnell kaputt.
Generell erfolgt die Übertragung mit Hilfe einer Modulation. Im
Gegensatz zu einer seriellen Schnittstelle werden die Datenbits also
nicht direkt gesendet, sondern ein höherfrequentes Trähersignal an-
oder ausgeschaltet. Das Trägersignal wird meistens, zusammen mit der
Dateninformation, direkt vom Mikrocontroller erzeugt, im Zweifelsfalle
unter Zuhilfenehme eines PWM-Ausganges. Man kann natürlich auch einen
extern aufgebauten Oszillator, der mit etwa 38 kHz ein Rechtecksignal
erzeugt, über einen Transistor an und aus schalten. Spart etwas
Programmieraufwand, macht die Schaltung aber komplizierter.
Wenn man das Signal einer Original-Fernbedienung empfangen will,
benötigt man zusätzlich einen geeigneten Empfänger. Bauteile mit
integriertem Filter, die, ohne externe Zusatzbeschaltung, das reine,
empfangene Datensignal bereits demoduliert ausgeben, lassen sich direkt
mit einem Portpin des Mikrocontrollers verbinden und sind recht
unempfindlich gegen Umgebungslicht. Ein bewährter Typ ist der TSOP1738
(ebenfalls für 38 kHz, eine gängige Frequenz. Bauteile für andere
Frequenzen sind auch erhältlich, z.B. 36 oder 40 kHz).
Programmiertechnisch ist das ganze schon etwas anspruchsvoller,
insbesondere wenn man mehrere Protokolle unterstützen oder sogar
erkennen will. Dokumentation hierzu findet sich vielerorts im Netz;
entweder auf anderen Mikrocontrollerseiten oder auch bei Projekten wie
LIRC. Eine Suche nach RC5, RECS80 (ungebräuchlich!) o.ä. kann helfen.
Sony und Denon haben eigene Protokolle, die aber auch dokumentiert
sind. Manche Beispielcodes sind gut genug, um ein solches Signal
definiert zu erzeugen. Wenn man die Codierung kennt, muß man dann keine
empfangenen Daten auswerten.
Wer sich die Sache mit der Codierung sparen will und genügend Speicher
zur Verfügung hat, kann das empfangene Signal auch einfach sampeln
(abtasten) und - unter Beachtung eventueller Wiederholungen -
reproduzieren.
Bauteile: Reichelt, Conrad, Segor, Pollin... und viele andere Quellen.
Ähnliche Typen sind oft geeignet.