Receptor Infrarrojo KY 022 - Lectura solo de ceros (0)

Hola Muchachos, solicito su ayuda y asesoría en el siguiente tema:

Estoy trabajando con el receptor KY-022 (del kit 31 en 1), y he estado siguiendo las indicaciones del siguiente video:

Le indico el paso a paso de los realizado:
0.- Utilizo Arduino UNO
1.- Cargo la librería (IRremote-2.2.3)
2.- Realizo la programación señalada en el video:

#include <IRremote.h>

int SENSOR = 11;    // sensor KY-022 a pin digital 11  
IRrecv irrecv(SENSOR);    // establece al 11 para objeto irrecv
decode_results codigo;    // crea objeto codigo de la clase decode_results

void setup() { 
  Serial.begin(9600);     // inicializa comunicacion serie a 9600 bps
  irrecv.enableIRIn();    // inicializa recepcion de datos
} 

void loop() { 
  if (irrecv.decode(&codigo)) {   // si existen datos ya decodificados
    Serial.println(codigo.value, HEX);  // imprime valor en hexadecimal en monitor
    irrecv.resume();      // resume la adquisicion de datos
  }
  delay (100);        // breve demora de 100 ms.
}

3.- Compilo el programa y me aparece lo siguiente:

C:\Users\e9804648\Documents\Enterprise\Proyectos Arduino JP. Gaete\Proyectos\IR___Control_Remoto\IR___Control_Remoto.ino: In function 'void loop()':
C:\Users\e9804648\Documents\Enterprise\Proyectos Arduino JP. Gaete\Proyectos\IR___Control_Remoto\IR___Control_Remoto.ino:13:28: warning: 'bool IRrecv::decode(decode_results*)' is deprecated: You should use decode() without a parameter. [-Wdeprecated-declarations]
   if (irrecv.decode(&codigo)) {   // si existen datos ya decodificados
                            ^
In file included from C:\Users\e9804648\Documents\Enterprise\Proyectos Arduino JP. Gaete\Proyectos\IR___Control_Remoto\IR___Control_Remoto.ino:1:0:
C:\Users\e9804648\Documents\Arduino\libraries\IRremote-2.8.1\src/IRremote.h:291:10: note: declared here
     bool decode(decode_results *aResults) __attribute__ ((deprecated ("You should use decode() without a parameter."))); // deprecated
          ^~~~~~
El Sketch usa 6670 bytes (20%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
Las variables Globales usan 448 bytes (21%) de la memoria dinámica, dejando 1600 bytes para las variables locales. El máximo es 2048 bytes.

4.- Cargo el programa y abro el monitor serial
5.- Utilizo un control remoto de TV LG - Radio Pioneer + DVD PHILIPS y solo obtengo un cero (0) como respuesta.

Saludos
Juan Pablo Gaete

Com Serial.jpg

Com Serial.jpg

Saludos. EL vídeo es viejo y está desactualizado, de hecho uno de los errores es muy claro:

'bool IRrecv::decode(decode_results*)' is deprecated: You should use decode() without a parameter. [-Wdeprecated-declarations]

deprecated

La librería se ha actualizado desde el 2017 y el puntero que pasas ya no es el adecuado, deberías estudiar el comportamiento nuevo de la librería porque ese es el problema

Entiendo que indica que hay que usar decode() sin parámetros, o sea

if(irrecv.decode()) {

Agrego: Y viendo en los ejemplos de la librería te confirmo que es así

Saludos

Hola @jpgaete1177 que te sirva de experiencia lo que te dicen @TonyDiana y @gatul.

Los videos de Youtube tienen fecha de vencimiento en algunos casos.
Lo que en el video se ve funciona para el contexto del IDE del momento y la librería que el usó.

Lo mas simple es decir: Ahhh usa tal librería okay.. bueno voy al IDE, administrador de librerías.
Esta IRremote.h .... SI esta. Okay, la descargo e instalo.

Busco en Ejemplos la librería.
Ejecuto un ejemplo.
Sigo los consejos que el video me da, hablo del pin, etc, etc etc.

Okay... funciona todo.

De lo contrario intentando usar librerías viejas, descargadas de sitios no recomendados, te pasa lo que mencionas.

Asi que ya sabes como es el ABC, los pasos para asegurarse que un sketch funcione.

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