#include "Arduino.h" const byte numChars = 32; char receivedChars[numChars]; // an array to store the received data boolean newData = false; void setup() { Serial.begin(9600); pinMode(A0, OUTPUT); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT); pinMode(A3, OUTPUT); pinMode(A4, OUTPUT); pinMode(A5, OUTPUT); Serial.println("mc8051.de Speaker Switch"); } void loop() { recvWithEndMarker(); if (newData == true) { newData = false; if (strcmp(receivedChars, "ch00-l-0") == 0) { digitalWrite(A0, LOW); } else if (strcmp(receivedChars, "ch00-l-1") == 0) { digitalWrite(A0, HIGH); } else if (strcmp(receivedChars, "ch00-r-0") == 0) { digitalWrite(A3, LOW); } else if (strcmp(receivedChars, "ch00-r-1") == 0) { digitalWrite(A3, HIGH); } else if (strcmp(receivedChars, "ch01-l-0") == 0) { digitalWrite(A1, LOW); } else if (strcmp(receivedChars, "ch01-l-1") == 0) { digitalWrite(A1, HIGH); } else if (strcmp(receivedChars, "ch01-r-0") == 0) { digitalWrite(A4, LOW); } else if (strcmp(receivedChars, "ch01-r-1") == 0) { digitalWrite(A4, HIGH); } else if (strcmp(receivedChars, "ch02-l-0") == 0) { digitalWrite(A2, LOW); } else if (strcmp(receivedChars, "ch02-l-1") == 0) { digitalWrite(A2, HIGH); } else if (strcmp(receivedChars, "ch02-r-0") == 0) { digitalWrite(A5, LOW); } else if (strcmp(receivedChars, "ch02-r-1") == 0) { digitalWrite(A5, HIGH); } else { Serial.print("Unknown command "); Serial.println(receivedChars); } } } void recvWithEndMarker() { static byte ndx = 0; char endMarker = '\n'; char rc; while (Serial.available() > 0 && newData == false) { rc = Serial.read(); if (rc != endMarker) { receivedChars[ndx] = rc; ndx++; if (ndx >= numChars) { ndx = numChars - 1; } } else { receivedChars[ndx] = '\0'; // terminate the string ndx = 0; newData = true; } } }