Author Topic: IR Senden geht nicht - Anfänger braucht Starthilfe  (Read 14552 times)

palmerx

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
IR Senden geht nicht - Anfänger braucht Starthilfe
« on: April 16, 2013, 09:57:44 PM »
Hallo zusammen


Habe erst gerade angefangen mit Arduino und schon RS232 gesendet über ein RS232 Shield (Projektor ON/OFF) und sonstige einfache Sachen gemacht.

Nun habe ich mir das IR Shield gekauft für den Arduino UNO:

http://www.linksprite.com/product/showproduct.php?lang=en&id=64



Danach habe ich unter

C:\Users\PCNAME\Documents\Arduino\libraries\Infrarot

den Ordner für die IR Libary erstellt:


Da rein habe ich die Files

IRremote.ccp, IRremote.h, IRremoteInt.h, keywords.txt LICENCE.txt

von dieser Seite gepackt: https://github.com/shirriff/Arduino-IRremote

Danach habe ich folgendes Scetch gemacht um auf den high ein am Digital Eingang 1 einen IR code zu senden:

Libary eingefügt: Infrarot



#include <IRremote.h>


//"Marcs IR sende Versuch 2"





IRsend irsend;

void setup() {
        Serial.begin(9600);

        pinMode(2, INPUT_PULLUP);
}

void loop() {
        int eingang2 = digitalRead(2);
 
        if(eingang2 ==
HIGH) {
                irsend.sendNEC (0x2FD48B7, 32);
                delay(40);
        }
}     



Nun folgendes Problem:


Nach dem Compiler habe ich duzende Fehler in der IRremote.cpp

erster hier:         <title>Arduino-IRremote/IRremote.cpp at master • shirriff/Arduino-IRremote • GitHub</title>



Kann mir jemand sagen was ich falsch mache?




Bin für jede Hilfe dankbar.


Mit freundlichen Grüssen,


Marc

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: IR Senden geht nicht - Anfänger braucht Starthilfe
« Reply #1 on: April 16, 2013, 10:06:13 PM »
Nach dem Compiler habe ich duzende Fehler in der IRremote.cpp

erster hier:         <title>Arduino-IRremote/IRremote.cpp at master • shirriff/Arduino-IRremote • GitHub</title>

Kann mir jemand sagen was ich falsch mache?

Sieht für mich aus, als hättest Du eine HTML-version der Dateien runtergeladen und nicht die wirklichen Dateien.

Versuch mal den link hier: https://github.com/shirriff/Arduino-IRremote/archive/master.zip

palmerx

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
Re: IR Senden geht nicht - Anfänger braucht Starthilfe
« Reply #2 on: April 17, 2013, 09:10:39 AM »
Super DANKE!! Genau diese Hilfe habe ich gebraucht.

Ich bin so frech und frage noch was weiteres:

Ist es möglich einen IR HEX String zu senden? Ich habe von AMX RTI Crestron usw ganze Libarys voll mit solchen Hex Data:

z.B: Loewe Taste 0 Blutech DVD Player


0000 0072 0013 0003 0020 0030 0010 0010 0010 0010 0010 0020 0010 0010 0010 0020 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0040 0010 1197 0020 0030 0010 0040 0010 1197


muss ich da den Sendebefehl ändern? irsenhex?



Vielen Dank für eure Hilfe!



Marc


microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: IR Senden geht nicht - Anfänger braucht Starthilfe
« Reply #3 on: April 17, 2013, 10:14:30 PM »
Ist es möglich einen IR HEX String zu senden? Ich habe von AMX RTI Crestron usw ganze Libarys voll mit solchen Hex Data:

muss ich da den Sendebefehl ändern? irsenhex?


In IRremote ist das nicht eingebaut. Mit sendraw kann man das im Prinzip machen, aber man muss vorher die hex Codes selbst umrechnen:

http://www.hifi-remote.com/infrared/IR-PWM.shtml

Wäre ja auch kein spannendes Hobby, wenn es zu einfach wäre. :P

palmerx

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
Re: IR Senden geht nicht - Anfänger braucht Starthilfe
« Reply #4 on: April 18, 2013, 08:20:56 AM »
Uiuiuiu das ist ja ein harter brocken...
Ich habe eine Datenbank von RTI darin habe ich fast jede erdenkliche Audio/Video IR Fernbedienung abgelegt. DIes gilt auch für rS232 bedienbare Geräte.
Schade dann nützen auch meine risigen Libarys nichts....



Ich habe mich nun mal daran gemacht den IR Code einzulesen und dies im Serial Monitor erhalten:

F4BA2988

Unknown encoding: F4BA2988 (32 bits)

Raw (68): 5372 4550 -4300 650 -1600 650 -1550 600 -1600 650 -450 650 -450 650 -450 650 -450 700 -450 650 -1550 600 -1600 650 -1550 650 -450 650 -450 650 -500 650 -450 650 -450 600 -500 650 -1550 650 -450 650 -450 650 -450 650 -450 700 -450 650 -450 650 -1550 650 -450 650 -1550 650 -1550 650 -1600 650 -1550 650 -1550 650 -1550 650

Dann habe die -Zeichen weg gemacht und versucht dies zu senden in folgendem Scetch:



#include <IRremote.h>

IRsend irsend;



unsigned int Raw[98] = {5372,4550,4300,650,1600,650,1550,600,1600,650,450,650,450,650,450,650,450,700,450,650,1550,600,1600,650,1550,650,450,650,450,650,500,650,450,650,450,600,500,650,1550,650,450,650,450,650,450,650,450,700,450,650,450,650,1550,650,450,650,1550,650,1550,650,1600,650,1550,650,1550,650,1550,650};



void setup()
{
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);




}

void loop()


{   
      int eingang2 = digitalRead(2);
 
        if(eingang2 == HIGH)
        {
                irsend.sendRaw(Raw, 96, 38); // Sony TV power code
                delay(40);       
        }

}



Kann mir jemad sagen was ich falsch mache um nun RAW wieder zu senden?




Vilen Dank für die Hilfe!

palmerx

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
Re: IR Senden geht nicht - Anfänger braucht Starthilfe
« Reply #5 on: April 18, 2013, 04:24:05 PM »
Habs glaub selbst geschafft!!! Irgendwie wird der erste Wert des RAW Codes nicht verwendet.... keine Ahnung wieso....?!

Mein Test schaut nun so aus und der TV ging auch an/aus: :D ;D


#include <IRremote.h>

IRsend irsend;


unsigned int Raw[80] = {4550,4300,650,1600,650,1550,600,1600,650,450,650,450,650,450,650,450,700,450,650,1550,600,1600,650,1550,650,450,650,450,650,500,650,450,650,450,600,500,650,1550,650,450,650,450,650,450,650,450,700,450,650,450,650,1550,650,450,650,1550,650,1550,650,1600,650,1550,650,1550,650,1550,650};



void setup()
{
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT);



}

void loop()


{   
      int eingang2 = digitalRead(2);
 
        if(eingang2 == HIGH)
        {
                digitalWrite(13, HIGH);
                delay(150);
                digitalWrite(13, LOW);
               
           
                irsend.sendRaw(Raw, 200, 38); // Samsung ON_OFF
               
   
                digitalWrite(13, HIGH);
                delay(400);
                digitalWrite(13, LOW);       
        }

}


Kann mir jemand sangen ob es möglich ist einen IR "überstezer" zu bauen bzw hat mir jemad einen Lösungsansatz?

Ich dachte da an folgende Variablen:

if


unsigned int ir_input_signal_1[80] = {4550,4300,650,1600,650,1550,600,1600,650,450,650,450,650,450,650,450,700,450,650,1550,600,1600,650,1550,650,450,650,450,650,500,650,450,650,450,600,500,650,1550,650,450,650,450,650,450,650,450,700,450,650,450,650,1550,650,450,650,1550,650,1550,650,1600,650,1550,650,1550,650,1550,650};


then send


unsigned int ir_output_signal_1[80] = {2450,500,1300,450,700,500,1250,500,700,500,1250,500,700,500,650,550,700,450,1300,500,700,450,1300,500,1250,500,1250,550,650,500,700,500,1300,450,700,500,650,500,1300,500,650};


Vielen Dank für eure sehr geschätzte Hilfe!

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: IR Senden geht nicht - Anfänger braucht Starthilfe
« Reply #6 on: April 21, 2013, 11:43:20 PM »
Habs glaub selbst geschafft!!! Irgendwie wird der erste Wert des RAW Codes nicht verwendet.... keine Ahnung wieso....?!

Der erste Wert repräsentiert, glaube ich, die pause zwischen den Codes.

palmerx

  • Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
Re: IR Senden geht nicht - Anfänger braucht Starthilfe
« Reply #7 on: April 22, 2013, 08:31:28 PM »
Hat mir jemand ne Lösung:


Wenn der IR RAW Code im Serial Monitor erscheint



unsigned int ir_input_signal_1[80] = {4550,4300,650,1600,650,1550,600,1600,650,450,650,450,650,450,650,450,700,450,650,1550,600,1600,650,1550,650,450,650,450,650,500,650,450,650,450,600,500,650,1550,650,450,650,450,650,450,650,450,700,450,650,450,650,1550,650,450,650,1550,650,1550,650,1600,650,1550,650,1550,650,1550,650};




soll mir nach delay(100);

dieser IR RAW Code gesendet werden:




unsigned int ir_output_signal_1[80] = {2450,500,1300,450,700,500,1250,500,700,500,1250,500,700,500,650,550,700,450,1300,500,700,450,1300,500,1250,500,1250,550,650,500,700,500,1300,450,700,500,650,500,1300,500,650};