IR Sender Parameter

Hallo,
zur Syntax der IRremote habe ich ein paar Unklarheiten. Das eigentliche Senden und Empfangen mit 2 Parametern ist nicht das Problem.
Der Standardaufruf ist zB. Irsend.sendNEC(sAddress, sCommand, sRepeats);
Was bedeuten die Parameter bzw. wo wird das beschrieben ?
Wenn man sendet ```irsend.sendNEC(0xF720DF, 32)`, dann ist der 1 Parameter das Kommando und kann beim Empafangen ausgewertet werden.
Bei 3 Parametern, was ist da adress und command ?
Kann mir jemand den Konten lösen ?
Danke
Gruß Frank

DATEI - BEISPIELE -> IRremote - SimpleSender
Ansonsten auch ein Blick in die .cpp oder in die Dokumentation:
Please do not use the old send*Raw() functions for sending like e.g. IrSender.sendNECRaw(0xE61957A8,2)

1 Like

Ja, das kenne ich eigentlich.
Aber dort kann ich leider keinen Hinweis finden, was in adress und command stehen muss ?

Zunächst zwei Links auf die wohl umfangreichsten (und m.E. besten Erläuterungen) zu den verschiedenen IR-Protokollen, die ich kenne

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

https://www.mikrocontroller.net/articles/IRSND

Beide Seiten sind in Deutsch erstellt (es gibt aber auch eine englische Übersetzung dazu).

Hier nur ein Auszug aus der zweiten Seite (IRSND):

IRSND baut den zu sendenden Frame "on-the-fly" aus der IRMP-Datenstruktur wieder zusammen. Dazu zählen:

  1. ID für verwendetes Protokoll
  2. Adresse bzw. Herstellercode
  3. Kommando

Mittels der Funktion

irsnd_send_data (IRMP_DATA * irmp_data_p)

kann man ein zu encodierendes Telegramm versenden. Der Return-Wert ist 1, wenn das Telegramm versendet werden kann, sonst 0. Im ersten Fall werden die Struct-Members

irmp_data_p->protocol irmp_data_p->address irmp_data_p->command irmp_data_p->flags

ausgelesen und dann als Frame im jeweils gewünschten Protokoll gesendet.

irmp_data_p->flags gibt die Anzahl der Wiederholungen an, z.B.

irmp_data_p->flags = 0: keine Wiederholung irmp_data_p->flags = 1: 1 Wiederholung irmp_data_p->flags = 2: 2 Wiederholungen usw.

Die Programmieranweisungen/-beispiele beziehen sich auf die Libraries des Autors, die Informationen sind aber (mindestens zum größten Teil) auf andere Libs anwendbar.

Zur Frage der Adressen/Kommandos steht bei IRMP:

Die Werte für die Adresse und das Kommando muss man natürlich einmal für eine unbekannte Fernbedienung auslesen und dann über ein UART oder LC-Display ausgeben, um sie dann im Programm hart zu kodieren. Oder man hat eine kleine Anlernroutine, wo man einmal die gewünschten Tasten drücken muss, um sie anschließend im EEPROM abzuspeichern. Ein Beispiel dazu findet man im Artikel Lernfähige IR-Fernbedienung mit IRMP.

1 Like

Danke. Das sind ziemlich verständliche Erläuterungen zum Thema.
Bedeutet das, dass man bei eigenen Datenübertragungen die Adresse und das Kommando für 2 Informationen nutzen könnte ? Oder kann man beim Empfang die Adresse nicht auswerten ?
Ich verwende eigentlich IRremote.

Adresse und Kommando sind (i.d.R.) die Daten, die im Protokoll gesendet werden. Die ID identifiziert nur das erkannte (bei Empfangen) bzw. zu verwendende (beim Senden) Protokoll.

Wie viele Bits für Adresse bzw. Kommandos ein Protokoll hergibt, kann man der jeweiligen Beschreibung entnehmen.
Siehe hier: https://www.mikrocontroller.net/articles/IRMP#Unterst%C3%BCtzte_IR-Protokolle

In einer komplett eigenen Anwendung (Sender und Empfänger in Eigenregie) kann man m.E. damit machen, was man will ...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.