Sensor de Infrarrojos que no detecta nada

Hola,
estoy intentando hacer un proyecto donde los valores que reciba el sensor(En codigo hexadecimal)se muestren en una lcd pero el sensor al parecer no funciona.Este es mi codigo:

#include <IRremote.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

#define RECV_PIN 11 // Pin para el sensor IR

IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal_I2C lcd(0x27,16,2);  // Dirección I2C de la pantalla LCD

void setup()
{
  irrecv.enableIRIn(); // Inicia el receptor
  lcd.init();          // Inicia la pantalla LCD
  lcd.backlight();     // Enciende la luz de fondo de la LCD
}

void loop() {
  if (irrecv.decode(&results)) {
    lcd.clear(); // Limpia la pantalla LCD
    lcd.setCursor(0,0); // Posiciona el cursor en la esquina superior izquierda
    lcd.print("Codigo Hex: "); 
    lcd.setCursor(0,1); // Posiciona el cursor en la segunda línea
    lcd.print(results.value, HEX); // Imprime el valor hexadecimal
    irrecv.resume(); // Recibe el siguiente valor
  }
}

Adjunto esquema de mis conexiones:


¿Alguien me podría ayudar?

Esa forma que tienes de configurar y llamar al IR es obsoleta, durante un tiempo la propia librería te informaba de ello vía monitor serial y que en breve dejaría de funcionar.
Pues ya no avisa ni funciona, la forma correcta actualmente es:

#include <IRremote.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define RECV_PIN 11 // Pin para el sensor IR

LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C de la pantalla LCD

void setup()
{ 
  IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);// Inicia el receptor
  lcd.init();          // Inicia la pantalla LCD
  lcd.backlight();     // Enciende la luz de fondo de la LCD
}

void loop() {  
  if (IrReceiver.decode()) {
    lcd.clear(); // Limpia la pantalla LCD
    lcd.setCursor(0, 0); // Posiciona el cursor en la esquina superior izquierda
    lcd.print("Codigo Hex: ");
    lcd.setCursor(0, 1); // Posiciona el cursor en la segunda línea    
    lcd.print(IrReceiver.decodedIRData.command, HEX); // Imprime el valor hexadecimal
    IrReceiver.resume(); // Recibe el siguiente valor
  }
}

Tras actualizar el codigo sigue sin funcionar.El mando que uso funciona ya que con la camara del movil lo he comprobado

El código de @gonpezzi funciona.
Revisa si está bien conectado el LCD y si la dirección I2C del mismo es la correcta.

Si que es el correcto debido a que en otros proyectos con esa misma dirección la he usado pero en este no imprime nada en la lcd

Pero es fácil sacarse la duda, envía por serial lo que envías al LCD, si en consola ves los resultados y no en la LCD, el problema es con la LCD, si no recibes nada en consola, es el IR.

Te adelanto que el código de #2 lo probé por consola y funciona.

Es el IR. Tampoco funciona por consola

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