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

OP #1825924
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
Angehängte Dateien:
Moderator Persönliche Seite #1835536
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren