Saltar la navegación

Zero Projecte

Aquest projecte ens permet veure al monitor del IDE d'Arduino el codi que porta cadascun dels bonos del comandament a distància.
Cal pujar l'script, obrir el monitor (Herramientas>Monitor Serie) i comprovar quins son els codis dels botons.

/*
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;
    }