mikrocontroller.net

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


Autor: Jan K. (pit1)
Datum:
Angehängte Dateien:
  • RC.zip (5,21 KB, 250 Downloads)

Bewertung
0 lesenswert
nicht 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

Autor: Frank M. (ukw) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.