I have had luck with several sketches in the Arduino IDE with my Xiao but am wondering why the smple IR relay sketch in the Examples does not work with this board?
Please provide more information about your setup, like error message, wiring diagram and the Arduino library has been used, and also the pin setting with the Arduino sketch.
Thanks
/*
- IRremote: IRrecvDemo - demonstrates receiving 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
*/
#include <IRremote.h>
int RECV_PIN = 11;
int RELAY_PIN = 4;
IRrecv irrecv(RECV_PIN);
decode_results results;
// Dumps out the decode_results structure.
// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) {
// decode_results *results = (decode_results *)v
void dump(decode_results *results) {
int count = results->rawlen;
if (results->decode_type == UNKNOWN) {
Serial.println(“Could not decode message”);
}
else {
if (results->decode_type == NEC) {
Serial.print("Decoded NEC: ");
}
else if (results->decode_type == SONY) {
Serial.print("Decoded SONY: “);
}
else if (results->decode_type == RC5) {
Serial.print(“Decoded RC5: “);
}
else if (results->decode_type == RC6) {
Serial.print(“Decoded RC6: “);
}
Serial.print(results->value, HEX);
Serial.print(” (”);
Serial.print(results->bits, DEC);
Serial.println(” bits)”);
}
Serial.print(“Raw (”);
Serial.print(count, DEC);
Serial.print(”): ");
for (int i = 0; i < count; i++) {
if ((i % 2) == 1) {
Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
}
else {
Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC);
}
Serial.print(" “);
}
Serial.println(”");
}
void setup()
{
pinMode(RELAY_PIN, OUTPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
int on = 0;
unsigned long last = millis();
void loop() {
if (irrecv.decode(&results)) {
// If it’s been at least 1/4 second since the last
// IR received, toggle the relay
if (millis() - last > 250) {
on = !on;
digitalWrite(RELAY_PIN, on ? HIGH : LOW);
digitalWrite(13, on ? HIGH : LOW);
dump(&results);
}
last = millis();
irrecv.resume(); // Receive the next value
}
}
the only part of the code I changed was to use pin 6 on the Xiao for receive and pin 7 for the relay. All the libraries were installed. This sketch works fine on an Arduino nano.
I even tried to get CHATGPT to write a sketch and it would not work.
I noticed an example sketch from Seed that uses an expansion board but that is no what is desired here, I am using the Xiao to save space,
Thanks for any input
I went back to square one as the saying goes and what I did was try the Blink example and that did not work.
So I made sure the correct board and port were selected with the 115200 baud rate
It then gave me an error for setting serail port parameters???Whatis the Baud rate?
this thread should be deleted
I tried another Xiao and it worked perfectly must have had a bad board
A challenge with the simple IR relay sketch from the Examples, and it’s not functioning as expected. I’ve checked the compatibility, ensured library dependencies are met, selected the correct port and board in the Arduino IDE, and confirmed that the XIAO board is receiving sufficient power. Despite these efforts, the sketch doesn’t seem to work as intended.