IR remote funktioniert nicht

Hallo ich ahbe einen IR empfenger. Habe mir die lib https://github.com/shirriff/Arduino-IRremote heruntergeladen und in 1.5.5 importiert. Wenn ich ein Demoprojekt übersetzen will kommt folgende fehlermeldung

Arduino: 1.5.5-r2 (Windows 7), Board: "Arduino Yún"

In file included from IRrecvDemo.ino:2:
C:\Users\Andreas\Documents\Arduino\libraries\IRremote/IRremoteInt.h:87: error: 'uint8_t' does not name a type
C:\Users\Andreas\Documents\Arduino\libraries\IRremote/IRremoteInt.h:88: error: 'uint8_t' does not name a type
C:\Users\Andreas\Documents\Arduino\libraries\IRremote/IRremoteInt.h:89: error: 'uint8_t' does not name a type
C:\Users\Andreas\Documents\Arduino\libraries\IRremote/IRremoteInt.h:92: error: 'uint8_t' does not name a type

  Dieser Report hätte mehr Informationen mit
  "Ausführliche Ausgabe während der Kompilierung"
  aktiviert in Datei > Einstellungen

was mache ich falsch ?

in Version 1.0,1 funktioniert die lib. gibt es eine lib für 1.5.5?

Welchen Arduino verwendest Du? Grüße Uwe

Steht doch da, wird wohl der Yun sein ;) Würde behaupten, die Libary ist nicht aufwärtskompatibel, da sich doch ein paar Sachen von 1.0 - 1.5 getan haben.

Beim Autor ist leider kein Update zu finden. Problem hier ist natürlich, dass du schlecht auf die IDE von 1.0 wechseln kannst wegen dem Yun, der nicht auf der 1.0 läuft.

sschultewolter: Steht doch da, wird wohl der Yun sein ;) Würde behaupten, die Libary ist nicht aufwärtskompatibel, da sich doch ein paar Sachen von 1.0 - 1.5 getan haben.

Beim Autor ist leider kein Update zu finden. Problem hier ist natürlich, dass du schlecht auf die IDE von 1.0 wechseln kannst wegen dem Yun, der nicht auf der 1.0 läuft.

Der YUN wird aber erst seit IDE 1.5.4 unterstützt. Also kann emilio20 es nicht mit IDE 1.0.1 versucht haben und es ihm funktioniert. Für mich ist es nicht so sicher, daß es ein YUN ist. Aber bevor wir wild herumraten soll der Fragesteller BITTE die notwendigen Infos geben.

Grüße Uwe

Hallo es geht jetzt weiß aber nicht warum.

Habe aber ein anderes Problem. ich habe eine DHT Temperaturfühler am Pin 3 und den IR empfänger am Pin 11. Wenn ich die IR Starte

irrecv.enableIRIn();

Bekomme sporatisch den Temperaturwert 0. Schalte ich //irrecv.enableIRIn(); aus erhalte ich immer einen richtigen Temp wert.

Hatte jemand ein ähnliches Problemm ?

Bitte mehr informationen. Welchen Arduino hast Du? An welchen Pin hast Du den IR Empfänger angeschlossen. Grüße Uwe

Hallo,

bei mir funktioniert die Lib auf 1.5.5. Ich habe es mit einem UNO und einem Nano probiert.

Hallo habe ein Yun ich Poste mal mein Programm. Aber nicht erschrecken. Ich sende die ergebnisse über TCP an eine SPS.

#include 
#include  
#include 
#include 
#include 
#include 
#include "DHT.h"
#include "IRremote.h"

#define PORT 2500
IPAddress PLC(192,168,178,30); // PLC Address

long previousMillis = 0; 
long interval = 2500; 
unsigned long currentMillis;

DHT dht;
YunServer server(PORT);

// IR Empfenger
int receiver = 3;
IRrecv irrecv(receiver);           // create instance of 'irrecv'
decode_results results; 


 void setup() {
  
      
  dht.setup(4); // data pin 3 für Temperatur/Feuchte 
  digitalWrite(13, LOW);
  irrecv.enableIRIn(); // Start the receiver
  Bridge.begin();
  digitalWrite(13, HIGH);
  // start the serial for debugging
   Serial.begin(9600);
   Console.begin();
   server.begin();
  // while (!Console);
   Console.println("setup");
   delay(2000);
   
 }
 YunClient client = server.accept();  
 //******************************************************************Hautprogramm********************************************************
 void loop()
 {
  // listen for incoming clients
  
  digitalWrite(13, LOW);
  //Verbindungsaufbaue wenn Client verfügbar
  if (client.connect(PLC,PORT)){
      Console.println("connected");    
    while (client.connected()) {
      //LED an wenn Connected
      digitalWrite(13, HIGH);
      
      // Zeit für Zeitliche aufruf              
       unsigned long currentMillis = millis();
       
       // Temperaturwerte alle 2,5sec senden
       if(currentMillis - previousMillis > interval) {
         previousMillis = currentMillis; 
          delay(dht.getMinimumSamplingPeriod());
          TempFeuchte (client);  
        }
          
        if (irrecv.decode(&results)) {// have we received an IR signal?
           translateIR(client); 
           irrecv.resume(); // receive the next value
          }  

          
       
    }  
      
    
    delay(1);
    // close the connection:
    client.stop();
  
  }
 }

//***********************************************
//**     Funktion Temperatur Feuchtw           **
//***********************************************

 // Temperatur und Feuchte abfragen und senden
 void TempFeuchte (YunClient client) {

 int value;  
 value = dht.getTemperature()*100;
 String cString;
 // Value nur senden wenn nicht 0
 if (value != 0) { 
 cString ="GV/01"+String(value,DEC);
 client.write((uint8_t*)&cString[0], cString.length());
 Console.println(cString);
 }

 delay(1);
 value = dht.getHumidity()*100; 
  // Value nur senden wenn nicht 0
 if (value > 0) {
 cString ="GV/02"+String(value,DEC);
 client.write((uint8_t*)&cString[0], cString.length());
 Console.println(cString);
 }
  
 }

 //***********************************************
//**     Funktion IR Empfänger                 **
//***********************************************
void translateIR(YunClient client) {
  String cString;
  int i;
  
  switch(results.value)
  
  {

  case 0x2A0:  
    Console.println("Rollo AUF");
    i=1;
    break;

  case 0x2A1:  
    Console.println("Rollo ZU"); 
    i=2;
    break;

  case 0xAA1:  
    Console.println("Rollo ZU"); 
    i=2;
    break;

  case 0xAA0:  
    Console.println("Rollo AUF"); 
    i=1;
    break;
  
  
  default:
    i=0; 
    //Console.println(" other button   ");

  }
  if(i>0) {
    Console.println(i);
    cString ="IR/"+String(i,DEC)+"/1";
    client.write((uint8_t*)&cString[0], cString.length());
    Console.println(cString);  
    delay(1000);
    cString ="IR/"+String(i,DEC)+"/0";
    client.write((uint8_t*)&cString[0], cString.length());
    Console.println(cString); 
    i=0;
  }
  
  }

Pin 3 funktioniert als sender mit IRremote!....die DHT Temperaturfühler -> Pin 4 oder 5...u.s.w. ??

Hallo habs abgeändert siehe oben . Ist aber das selbe Problem. Ein weiters Problemm wenn ich das Arduino vom netz nehmen und wieder Einstecker erhalte ich als Temp und Feuchte 100. Erst nach erneutem aufspielen des Progemm erhalte ich wieder Temp werte. Der IR Remote bringt bei mir das DHT durcheinander.

Ein weiters Problem das ich habe wenn mein Wlan aus geht und wieder neu startet verbindet sich das Arduino nicht automatisch mit der SPS. Erst nach neustart des Arduinos.

Hallo
habe den fehler gefunden. Verwende jetzt die DHT22 lib jetzt geht es.

#include <SPI.h>
#include <Wire.h> 
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
#include <Console.h>
#include <DHT22.h>
#include "IRremote.h"

#define PORT 2500
IPAddress PLC(192,168,178,30); // PLC Address

#define DHT22_PIN 4
DHT22 myDHT22(DHT22_PIN);

long previousMillis = 0; 
long interval = 2500; 
unsigned long currentMillis;

YunServer server(PORT);

// IR Empfenger
int receiver = 3;
IRrecv irrecv(receiver);           // create instance of 'irrecv'
decode_results results; 


 void setup() {
  
      
  
  digitalWrite(13, LOW);
  irrecv.enableIRIn(); // Start the receiver
  Bridge.begin();
  digitalWrite(13, HIGH);
  // start the serial for debugging
   Serial.begin(9600);
   Console.begin();
   server.begin();
  // while (!Console);
   Console.println("setup");
   
   
 }
 
 //******************************************************************Hautprogramm********************************************************
 void loop()
 {
  // listen for incoming clients
  YunClient client = server.accept(); 
   
  digitalWrite(13, LOW);
  //Verbindungsaufbaue wenn Client verfügbar
  if (client.connect(PLC,PORT)){
      Console.println("connected");    
    while (client.connected()) {
      //LED an wenn Connected
      digitalWrite(13, HIGH);
      
      // Zeit für Zeitliche aufruf              
       unsigned long currentMillis = millis();
       
      //  Temperaturwerte alle 2,5sec senden
       if(currentMillis - previousMillis > interval) {
         previousMillis = currentMillis; 
          TempFeuchte (client);  
       }
          
        if (irrecv.decode(&results)) {// have we received an IR signal?
           translateIR(client); 
           irrecv.resume(); // receive the next value
          }  

          
       
    }  
      
    
    delay(1);
    // close the connection:
    client.stop();
    client.flush();
  
  }
 }
 
//***********************************************
//**     Funktion Temperatur Feuchtw           **
//***********************************************
 
 // Temperatur und Feuchte abfragen und senden
 void TempFeuchte (YunClient client) {
 
 DHT22_ERROR_t errorCode;  
 errorCode = myDHT22.readData();  
 int value;
 String cString;
 
 switch(errorCode) 
 { 
  case DHT_ERROR_NONE:  
  value = myDHT22.getTemperatureC()*100;
  
 // Value nur senden wenn nicht 0
      if (value != 0) { 
         cString ="GV/01"+String(value,DEC);
         client.write((uint8_t*)&cString[0], cString.length());
         Console.println(cString);
       }
 
  value = myDHT22.getHumidity()*100; 
      // Value nur senden wenn nicht 0
      if (value > 0) {
         cString ="GV/02"+String(value,DEC);
         client.write((uint8_t*)&cString[0], cString.length());
         Console.println(cString);
         }
  break;
  }
 }
 
 //***********************************************
//**     Funktion IR Empfänger                 **
//***********************************************
void translateIR(YunClient client) {
  String cString;
  int i;
  
  switch(results.value)
  
  {

  case 0x2A0:  
    Console.println("Rollo AUF");
    i=1;
    break;

  case 0x2A1:  
    Console.println("Rollo ZU"); 
    i=2;
    break;

  case 0xAA1:  
    Console.println("Rollo ZU"); 
    i=2;
    break;

  case 0xAA0:  
    Console.println("Rollo AUF"); 
    i=1;
    break;
  
  
  default:
    i=0; 
    //Console.println(" other button   ");

  }
  if(i>0) {
    Console.println(i);
    cString ="IR/"+String(i,DEC)+"/1";
    client.write((uint8_t*)&cString[0], cString.length());
    Console.println(cString);  
    delay(1000);
    cString ="IR/"+String(i,DEC)+"/0";
    client.write((uint8_t*)&cString[0], cString.length());
    Console.println(cString); 
    i=0;
  }
  
  }