Saltar la navegación

Proyecto cero

En este proyecto podemos ver en el monitor del IDE de Arduino el código que lleva cada uno de los botones de los mandos a distancia. Hay que subir el código, abrir el monitor (Herramientas>Monitor Serie) y comprovar los codigos de los botones.

#include <IRremote.h>

const int RECV_PIN =11;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}

void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
irrecv.resume();
}
}

Otra opción

......................................................................................................................

//Muy útil


/*
Capitulo 26 de Arduino desde cero en Español.
Programa que permite mostrar en el monitor serial el codigo correspondiente al boton presionado en un control remoto mediante el modulo receptor KY-022. Requiere la instalacion de la libreria IRremote.

Autor: bitwiseAr

*/

#include <IRremote.h> // importa libreria IRremote

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.
}

.....................................................................................................................................................................
Versión 2017

/*
informació treta de
http://www.prometec.net/infrarrojos/

    Nos informa del modelo de señal que usa nuestro mando.
    En este momento reconoce 4 protocolos y el autor pide la colaboración ciudadana, para aumentar el número de protocolos disponibles con la librería.
    Actualmente son:
        IR_NO_PROTOCOL ,  0
        IR_USER, 1
        IR_ALL,  2
        IR_NEC, 3.
        IR_PANASONIC,  4
    Address, dirección de tu mando. Cada mando lleva una dirección para identificarle.
    Podrías usar más de un mando a distancia para controlar lo que sea, y reconocerlos de forma diferenciada.
    La orden o identificación del botón pulsado en el mando.
    Cada botón tiene un código diferente y estos son los códigos que usaras en tu programa para lanzar acciones diferentes en función del botón pulsado.

*/

#include "IRLremote.h"
const int interruptIR = 0;                 // Arduino interrupcion 0: Pin 2

uint8_t IRProtocol = 0;  // Variables para recibir los datos
uint16_t IRAddress = 0;
uint32_t IRCommand = 0;

void setup()
   {     Serial.begin(9600);  // Fijate en la velocidad, he canviat la velocitat original. Amb l que duia no es podia llegir res
         Serial.println("Startup");
         IRLbegin<IR_ALL>(interruptIR);
   }
void loop()
   {
         uint8_t oldSREG = SREG;  // Parar las interrupciones
         cli();
         if (IRProtocol)          // Si reconoce el protocolo
            {
                 Serial.print("Protocol:");
                 Serial.println(IRProtocol);
                 Serial.print("Address:");
                 Serial.println(IRAddress, HEX);
                 Serial.print("Command:");
                 Serial.println(IRCommand, HEX);
                 IRProtocol = 0;
            }
         SREG = oldSREG;
    }

void IREvent(uint8_t protocol, uint16_t address, uint32_t command)
    {
        IRProtocol = protocol;  // Recogemos los valores y nos volvemos
        IRAddress = address;
        IRCommand = command;
    }