#include <SoftwareSerial.h>
SoftwareSerial swSerial(4, 5); // RX=4, TX=5
const int MY_BUTTON = 2;
const int MY_LED = 10;
const int BUILTIN_LED = LED_BUILTIN;
bool myLedState = false;
bool lastButtonState = HIGH;
void setup() {
pinMode(MY_BUTTON, INPUT_PULLUP);
pinMode(MY_LED, OUTPUT);
pinMode(BUILTIN_LED, OUTPUT);
swSerial.begin(9600);
}
void loop() {
if (swSerial.available() >= 2) {
char cmd = swSerial.read();
char val = swSerial.read();
if (cmd == 'U') {
myLedState = (val == 'T') ? !myLedState : (val == '1');
digitalWrite(MY_LED, myLedState ? HIGH : LOW);
digitalWrite(BUILTIN_LED, HIGH);
delay(50);
digitalWrite(BUILTIN_LED, LOW);
}
}
bool curr = digitalRead(MY_BUTTON);
if (lastButtonState == HIGH && curr == LOW) {
swSerial.write('N');
swSerial.write('T');
digitalWrite(BUILTIN_LED, HIGH);
delay(50);
digitalWrite(BUILTIN_LED, LOW);
delay(50);
}
lastButtonState = curr;
}