79 lines
2.2 KiB
C++
79 lines
2.2 KiB
C++
/*
|
|
* IRremote: IRreceiveDump - dump details of IR codes with IRrecv
|
|
* An IR detector/demodulator must be connected to the input RECV_PIN.
|
|
* Version 0.1 July, 2009
|
|
* Copyright 2009 Ken Shirriff
|
|
* http://arcfn.com
|
|
* JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post)
|
|
* LG added by Darryl Smith (based on the JVC protocol)
|
|
*/
|
|
|
|
#include <IRremote.h>
|
|
|
|
/*
|
|
* Default is Arduino pin D11.
|
|
* You can change this to another available Arduino Pin.
|
|
* Your IR receiver should be connected to the pin defined here
|
|
*/
|
|
#if defined(ESP32)
|
|
int IR_RECEIVE_PIN = 15;
|
|
#else
|
|
int IR_RECEIVE_PIN = 11;
|
|
#endif
|
|
|
|
IRrecv IrReceiver(IR_RECEIVE_PIN);
|
|
|
|
// On the Zero and others we switch explicitly to SerialUSB
|
|
#if defined(ARDUINO_ARCH_SAMD)
|
|
#define Serial SerialUSB
|
|
#endif
|
|
|
|
void setup() {
|
|
pinMode(LED_BUILTIN, OUTPUT);
|
|
|
|
Serial.begin(115200);
|
|
#if defined(__AVR_ATmega32U4__) || defined(SERIAL_USB) || defined(SERIAL_PORT_USBVIRTUAL)
|
|
delay(2000); // To be able to connect Serial monitor after reset and before first printout
|
|
#endif
|
|
// Just to know which program is running on my Arduino
|
|
Serial.println(F("START " __FILE__ " from " __DATE__));
|
|
IrReceiver.enableIRIn(); // Start the receiver
|
|
IrReceiver.blink13(true); // Enable feedback LED
|
|
|
|
Serial.print(F("Ready to receive IR signals at pin "));
|
|
Serial.println(IR_RECEIVE_PIN);
|
|
}
|
|
|
|
void dump() {
|
|
// Dumps out the decode_results structure.
|
|
// Call this after IRrecv::decode()
|
|
int count = IrReceiver.results.rawlen;
|
|
IrReceiver.printResultShort(&Serial);
|
|
|
|
Serial.print(" (");
|
|
Serial.print(IrReceiver.results.bits, DEC);
|
|
Serial.println(" bits)");
|
|
Serial.print("Raw [");
|
|
Serial.print(count, DEC);
|
|
Serial.print("]: ");
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
if (i & 1) {
|
|
Serial.print(IrReceiver.results.rawbuf[i] * MICROS_PER_TICK, DEC);
|
|
} else {
|
|
Serial.write('-');
|
|
Serial.print((unsigned long) IrReceiver.results.rawbuf[i] * MICROS_PER_TICK, DEC);
|
|
}
|
|
Serial.print(" ");
|
|
}
|
|
Serial.println();
|
|
}
|
|
|
|
void loop() {
|
|
if (IrReceiver.decode()) {
|
|
Serial.println();
|
|
dump();
|
|
IrReceiver.resume(); // Receive the next value
|
|
}
|
|
}
|