Servo gesteuerter Infrarotsender Anwendungsbeispiele: - Fernsteuerung einer (Video-)Kamera auf einem Ferngesteuerten Modell über normale Servo-Kanäle - Steuerung für einen Fernseher zu Hause: Die Türklingel an einen Eingang angeschlossen, schaltet den Fernseher um, z.B. auf eine Überwachungskamera - Steuerung für die Stereoanlage: Ein Bewegungsmelder an einen Eingang angeschlossen fährt die Lautstärke hoch um Einbrecher zu verschrecken. Die Idee zu diesem Projekt entstand, um einen HD-Camcorder auf einem Mikrokopter über eine zweite Fernsteuerung zu bedienen: Gas-Stick: Kamera Zoom 3-stufiger Schalter: Stop/Bild-/Film-Aufnahme Nick-Stick: Kamerahalter-Nick Roll-Stick: Kamerahalter-Roll Eingänge: 2 Kanäle für Servo-Signale, Schalter oder andere TTL-Signale 1 IR-Empfänger um neue Codes anzulernen (36 - 40 kHz) Ausgänge: Modulierte Infrarotstrahlung von 950 nm Wellenlänge Bedienelemente: 1 LED um verschiedene Zustände anzuzeigen 1 Taster um den Anlernmodus zu starten/beenden, und um zwischen Einzel- und Dauer- Modus umzuschalten Versorgungsspannung: 5V DC @ 50 mA (Achtung wenn der Empfänger mit mehr Spannung betrieben wird) Funktionsprinzip: Jeder Kanal wird in 5 Stufen unterteilt, je nach positiver Impulslänge: 0,00 - 0,74 ms => 0 (Schalter zu GND) 0,75 - 1,24 ms => 1 (Stick unten) 1,25 - 1,74 ms => 2 (Stick in der Mitte) 1,75 - 2,24 ms => 3 (Stick oben) 2,25 - mehr ms => 4 (Schalter zu VCC oder offener Eingang) Zusammen mit dem zweiten Eingang erhält man theoretisch 25 verschiedene Kombinationen, die alle mit IR-Codes angelernt werden können. Wenn man zwei Servo-Signale benutzt, hat man 3 Stufen pro Kanal, also 9 Kombinationen. Wenn man Schalter an den Eingängen benutzt, hat man 2 Stufen pro Kanal, also 4 Kombinationen. Wenn man beides verwendet, hat man 2 Zustände für den Schalter und 3 Zustände für den Servo, also 6 Kombinationen. Wenn man nur einen Kanal verwendet, erhält man 2 (Schalter) oder 3 (Servo) Zustände. Nach dem Einschalten überwacht die Schaltung ständig beide Eingänge. Wenn die aktuelle Kombination schon einmal mit einem IR-Code angelernt wurde, wird dieser Code über die IR-Diode ausgesendet. Je nachdem in welchem Modus man diese Kombination eingelernt hat, wird der Code nur einmal ausgesendet (Single-Modus), oder solange wie die Kombination der Eingänge aktiv bleibt (Multi-Modus). Während Infrarotsignale gesendet werden, leuchtet auch die rote LED. Anlernmodus: Wenn man den Taster drückt, geht die Schaltung in den Anlern-Modus. In diesem Modus blinkt die LED ein oder zwei mal jede halbe Sekunde (je nachdem ob man im Single- oder Multi-Modus ist), und zeigt so an, das auf neue IR-Codes gewartet wird. Wenn man den Taster nochmal drückt, wechselt man zwischen Single- und Multi-Modus hin und her. Wird nun ein IR-Code empfangen, wird er automatisch dem aktuellen Zustand an den Eingängen zugewiesen. Dabei blinkt die LED kurz etwas schneller. So kann man nun mehrere Codes anlernen, sogar von verschiedenen IR-Systemen und auch gemischt (Single/Multi). Wenn alle gewünschten Kombinationen an den Eingängen mit IR-Code belegt sind, drückt man den Taster für 2 Sekunden fest, bis die LED schneller blinkt - Die Daten werden dann im EEPROM abgelegt. Nun geht die Schaltung wieder in den normalen Betrieb über, und ist bereit zum Arbeiten. Momentan unterstützte IR-Protokolle Protokoll: Benutzt von =================== GRUNDIG: Grundig JVC: JVC KASEIKYO: Panasonic, Technics, Denon und mehr Japanische Hersteller, die Mitglied im "Japan's Association for Electric Home Application" sind NEC: NEC, Yamaha, Canon, Tevion, Harman/Kardon, Hitachi, JVC, Pioneer, Toshiba, Xoro, Orion, NoName and mehr Japanische Hersteller NIKON: Nikon RC5: Philips und mehr Europäische Hersteller RECS80: Philips, Nokia, Thomson, Nordmende, Telefunken, Saba, Technisat SAMSUNG: Samsung SIRCS: Sony Der Code wurde mit WinAVR-20081205 kompiliert. Andere Versionen generieren sehr viel größeren Code, der nicht mehr in den ATMega8 hineinpasst. Um das zu vermeiden sollte man eine andere WinAVR-Version verwenden, oder einige IR-Protokolle in der irmpconfig.h und irsndconfig.h abschalten. Dieses Projekt basiert auf den genialen IR decoder/encoder Routinen (IRMP/IRSND) von Frank Meyer => http://www.mikrocontroller.net/articles/IRMP