Как преобразовать символ в строку?

То, что я собрал в сети, у меня не работает. У меня есть Visual Studio и обработка, отправляющие эту функцию через последовательный порт на тот же COM-порт 9 с той же скоростью передачи данных, и я ничего не получаю. Единственный способ, которым этот код выше будет выполняться, — это если я изменю тип данных на char на стороне Arduino, несмотря на то, что и Visual Studio 2013, и обработка отправляют строки через последовательный порт.

String id; 
int led = 6;

void setup() {
 Serial.begin(9600);
 pinMode(led, OUTPUT); 
}

 void loop() { 
id = Serial.readString(); 

if (id == "1") {
 digitalWrite(led, HIGH); 
} 

/* ОБРАБОТКА*/

if (mousePressed == true) { //если мы щелкнули в окне
myPort.write('1'); //отправить 1
} 
else { //иначе
myPort.write('0'); //отправить 0
} 
}

/* Визуальная Студия */

if (r == "switch") { port.Open(); port.WriteLine("1"); port.Close(); }

Даже в моем новом обновлении для Arduino я все еще не получаю ничего, что могло бы выполнить нужную мне функцию, несмотря на то, что я нашел новые функции, которые, как предполагается, преобразуют символы в строки.

Подойдет любой из этих типов данных: char, byte, int
< a href="http://www.arduino.cc/en/Reference/ASCIIchart.html">http://www.arduino.cc/en/Reference/ASCIIchart.html

char id;
int led = 6; 

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);

}

void loop()
{
  //id = Serial.read();//id = Serial.read() - '0';
  //id = Serial.read();
  String idi = String(idi);

  /*

    will only read the 1st bit on the buffer so
    no 10s...90s because the whole char so we
    need to use Strings datatype somehow but
    the thing is that the Serial.Read func only
    reads the first byte. R&D

  */
  if (idi == "1")
  {
    digitalWrite(led, HIGH);
    //    Serial.println("on");
  }
  else if (idi == "B2")
  {
    digitalWrite(led, LOW);

    Serial.println("off");
  }
  else if (idi == "C")
    for (int I = 0; I < 15; I++)
      //  for (int ledP = 0; ledP < 15; ledP++)
    {
      digitalWrite(led, HIGH);
      delay(100);
      digitalWrite(led, LOW);
      delay(100);
    }
  Serial.flush();
}

Что мне действительно хотелось бы, так это превратить переменную idi в строку, чтобы я мог просто быть более описательным с моими вызовами функций, и в то же время, чтобы я мог быть более креативным с моими вызовами функций, так как мне придется много писать, а написание вызовов с использованием символов от 0 до 9 недостаточно, так как если я начну использовать последовательный порт 10/99, будет считываться только первый байт, вызывая 1/9. Например:

  if (Serial.available())
  { // If data is available to read,
    dat = Serial.read(); //  dat = Serial.read() - '0';

  }
  if (dat == "angel")
  { 
    digitalWrite(6, HIGH); // turn the LED on
    //Serial.println("angel" + dat);
  } 
  //  delay(10); // Wait 10 milliseconds for next reading
}

в отличие от

  if (Serial.available())
  { // If data is available to read,
    dat = Serial.read(); //  dat = Serial.read() - '0';

  }
  if (dat == '1')
  { // If 1 was received
    digitalWrite(6, HIGH); // turn the LED on
    //Serial.println("A" + dat);
  } else {
    digitalWrite(6, LOW);
   }
  //  delay(10); // Wait 10 milliseconds for next reading
}

, 👍-2