String input; // Variable to store the incoming string
String value1, value2, value3, value4; // Variables to store extracted values
int led1 = 15;
int led2 = 2;
int led3 = 0;
int led4 = 4;
void setup() {
Serial.begin(9600); // Initialize Serial communication
Serial.println("Send a string in the format T1:1:50:60, L4ON, or L4OFF");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
}
void loop() {
// Check if data is available on Serial
if (Serial.available()) {
input = Serial.readStringUntil('\n'); // Read the input string until a newline character
// Check for specific commands to control LED4
if (input == "L4ON") {
digitalWrite(led4, HIGH); // Turn LED4 ON
Serial.println("LED4 is ON");
return; // Exit the loop to avoid further processing
} else if (input == "L4OFF") {
digitalWrite(led4, LOW); // Turn LED4 OFF
Serial.println("LED4 is OFF");
return; // Exit the loop to avoid further processing
}
// Extract substrings based on the known format
int firstColon = input.indexOf(':');
int secondColon = input.indexOf(':', firstColon + 1);
int thirdColon = input.indexOf(':', secondColon + 1);
if (firstColon != -1 && secondColon != -1 && thirdColon != -1) {
value1 = input.substring(0, firstColon); // Extract "T1"
value2 = input.substring(firstColon + 1, secondColon); // Extract "1"
value3 = input.substring(secondColon + 1, thirdColon); // Extract "50"
value4 = input.substring(thirdColon + 1); // Extract "60"
// Print extracted values
Serial.print("Value 1: ");
Serial.println(value1);
Serial.print("Value 2: ");
Serial.println(value2);
Serial.print("Value 3: ");
Serial.println(value3);
Serial.print("Value 4: ");
Serial.println(value4);
// Handle LEDs based on extracted values
if (value1 == "T1") {
if (value2 == "1") {
digitalWrite(led1, HIGH); // Turn LED1 ON
} else if (value2 == "2") {
digitalWrite(led1, LOW); // Turn LED1 OFF
}
if (value3 == "50") {
digitalWrite(led2, HIGH); // Turn LED2 ON
} else if (value3 == "60") {
digitalWrite(led2, LOW); // Turn LED2 OFF
}
}
if (value1 == "T2") {
if (value2 == "1") {
digitalWrite(led3, HIGH); // Turn LED3 ON
} else if (value2 == "2") {
digitalWrite(led3, LOW); // Turn LED3 OFF
}
}
} else {
Serial.println("Invalid format! Please send in the format T1:1:50:60, L4ON, or L4OFF");
}
}
}