Hello all. I am trying to send an ir signal from one Arduino Nano (ATmega+328P) to another. The project requires that the carrier frequency be 56khz. All the rest of the peripherals are running at 56khz with 56khz receivers. This cannot be changed.
Everything works fine when sending via 38khz for testing. The codes transfer cleanly and can be sent at long distances. Everything works properly at 38khz. But when I change out the receiver and alter the code to using 56khz, the signal sometimes works, but is mostly junk. This tells me that the issue is in sending at 56khz. Yes, I am using 56 kHz receivers (TSOP-4856). In fact, when I change out the code to be 56 kHz but use a 36khz receiver, it still works fine. Which tells me that no matter what I do to the code, it is always sending at 36khz.
The code is simple enough. Any clues as to why I am not getting 56khz output from this? You can see that I am using "irsend.enableIROut(56);" which should force the the change but it isn't.
Any ideas? Thanks in advance.
#include <IRremote.h>
uint8_t nbits = 24;
uint32_t data = 0x5500C1;
const int IR_SEND_PIN = 3;
IRsend irsend; // Create an IRsend object
void setup() {
Serial.begin(9600); // Optional: for debugging
Serial.println("IR Transmitter Ready");
irsend.begin(IR_SEND_PIN);
irsend.enableIROut(56);
}
void loop() {
irsend.sendRC6(data, nbits);
Serial.println("RC6 signal sent!");
delay(2000);
}