Forum: Projekte & Code AVR/ASM Projekt: IR Remote Control (NEC-Code) mit seriellem Interface


von Jan K. (pit1)


Angehängte Dateien:

Lesenswert?

Hallo,

dieses kleine ATMEGA48 Assembler-Projekt ist ein seriell gefütterter IR 
Fernsteuerungs-Ersatz für NEC-kodierende Handfernbedienungen. In meinem 
Fall ist das zu steuernde Zielobjekt ein Opticum HD-C10 Kabelreceiver 
(weitere Geräte habe ich bislang nicht getestet).

Der erforderliche fixe 16-Byte Input (im Beispiel mit 9600 Baud) besteht 
aus einem Adressbyte (im Beispiel =81h), dem NEC Device Addressword 
(beim HD-C10= F304h in Low/High Reihenfolge), zwölf (nicht invertierten) 
Tastencodes und einem Checksummenbyte. Die Tastencodes werden dann mit 
(CPTIME)1/100 Sekunden Pausenzeit nacheinander infrarot ausgegeben, 
nicht benötigte Code-Plätze im Kommando sind dabei auf FFh ("Funktion 
Frei") zu setzen.

Tastencodes die eine längere Reaktionszeit erfordern (z.B. beim 
Einschalten oder dem Senderwechsel) sind ggf.mit separaten Kommandos in 
ausreichendem zeitlichen Abstand abzusetzen. Die erfolgreiche Ausgabe 
wird jeweils mit dem gleichen 16-Byte Kommando an TX quittiert (nur im 
1.Adressbyte ist dann das MSB gelöscht).

Die Timer sind vom Programm in Gänze belegt; alle Funktionalität ist in 
Interrupts verpackt. Im ausbaufähigen Hauptprogramm wird vorerst nur 
geschlafen...

Die zugehörige Schaltung ist schnell aufgebaut: ATMEGA48 in 7,3728 MHz 
Quarzbetrieb (keine Fusebits außer SPIEN gesetzt), an PortB1 hängt mit 
Vorwiderstand ein npn-Transistor der die IR-Sendediode (z.B. CQY99, ca. 
100 Ohm Vorwiderstand) gegen die +5V Versorgung treibt, an PortC0/C1 
hängen zwei LEDs (oder besser eine Duo-LED) mit Vorwiderstand in leicht 
flackerndem (= Programm arbeitet) Grün (Bereitschaft) und Rot (IR Senden 
aktiv). TX gibt die Quittierung aus, RX empfängt das Kommando z.B. von 
RS232 via MAX232 oder wie in meinem Fall über die serielle Funkbrücke 
Beitrag "bidirektionale RS232 Funkbrücke mit RFM12" (Danke dafür nochmal von 
dieser Stelle an Benedikt!).

Woher bekommt man nun Kodierungstyp und Tastencodes seiner 
Fernbedienung? Für meinen Receiver habe ich es etwas mühsam am Oszi 
ermittelt :(

Zum Thema NEC-Kodierung siehe auch
http://www.sbprojects.com/knowledge/ir/nec.htm

Gruß Jan

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Jan K. schrieb:

> Woher bekommt man nun Kodierungstyp und Tastencodes seiner
> Fernbedienung? Für meinen Receiver habe ich es etwas mühsam am Oszi
> ermittelt :(

Schau Dir mal IRMP

  http://www.mikrocontroller.net/articles/IRMP

und IRSND

  http://www.mikrocontroller.net/articles/IRMP#IRSND_-_Infrarot-Multiprotokoll-Encoder

an.

Damit kann man u.a. NEC-Codes (und weitere 19 Protokolle) empfangen und 
senden. Mit IRMP solltest Du die Kodierungstypen/Tastencodes Deiner 
Fernbedienungen auf einfache Weise herausfinden. Ein Oszilloskop ist 
nicht notwendig.

> Zum Thema NEC-Kodierung siehe auch
> http://www.sbprojects.com/knowledge/ir/nec.htm

Hier noch ein wenig mehr Lesestoff:

  http://www.mikrocontroller.net/articles/IRMP#Literatur

Gruß,

Frank

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.