//cpp With the support of Google AI and Grok AI
#include <SoftwareSerial.h>
//SoftwareSerial link(10, 11); // RX, TX
void setup() {
for (int i = 2; i <= 5; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
Serial.begin(9600);
Serial.println("Ready. Type 'LED 3 ON' or 'LED 4 OFF'");
}
void loop() {
if (Serial.available()) {
String line = Serial.readStringUntil('\n');
line.trim(); // remove whitespace / \r
// Very basic check if it even looks like a command
if (!line.startsWith("LED ")) {
// Serial.println("Not a LED command");
return;
}
// Remove "LED " prefix
String rest = line.substring(4);
// Find space between number and ON/OFF
int spacePos = rest.indexOf(' ');
if (spacePos <= 0) return;
String numStr = rest.substring(0, spacePos);
String cmdStr = rest.substring(spacePos + 1);
// Convert number
int led_num = numStr.toInt();
if (led_num < 2 || led_num > 5) {
// Serial.println("Invalid LED number");
return;
}
// Normalize and check command
cmdStr.trim();
bool turnOn;
if (cmdStr.equalsIgnoreCase("ON")) {
turnOn = true;
}
else if (cmdStr.equalsIgnoreCase("OFF")) {
turnOn = false;
}
else {
Serial.println("Invalid ON/OFF");
return;
}
Operate_Pin(led_num, turnOn);
// Optional debug
// Serial.print("LED "); Serial.print(led_num);
// Serial.println(turnOn ? " ON" : " OFF");
}
}
void Operate_Pin(int pin, bool state)
{
digitalWrite(pin, state ? HIGH : LOW);
}