Xiao Rp2040:
#include <Arduino.h>
// Constants for pin assignments
const int buttonPin = 26; // Assuming D1 maps to GPIO 26
const int ledPin = 22; // Assuming the first LED is on GPIO 22
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.begin(9600); // For debug output to the Serial Monitor
Serial1.begin(9600); // UART communication
Serial.println("Setup complete - RP2040");
}
void loop() {
// Check if the button is pressed
if (digitalRead(buttonPin) == LOW) {
Serial.println("Button pressed - Sending '1'");
Serial1.write('1'); // Send '1' to turn on LED on ESP32-C3
delay(200); // Debounce delay
}
// Listen for incoming commands to control the LED
if (Serial1.available()) {
char cmd = Serial1.read();
Serial.print("Received command: ");
Serial.println(cmd);
if (cmd == '1') {
digitalWrite(ledPin, HIGH); // Turn on the LED when '1' received
delay(500);
digitalWrite(ledPin, LOW);
}
}
delay(100); // Short delay to avoid flooding with serial data
}