Interrupcion UART y bucle while

este es un bucle infinito si los datos son '1' ...

  while (dato == '1') ///¿Como salgo de este blucle?????
  {
    digitalWrite(led, HIGH);
  }

no use while, use if

pero podrías hacer esto:

const byte ledPin = 13; // LED_BUILTIN

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

void loop() {
  switch (Serial.read()) { // -1 si no hay datos para leer
    case '0': digitalWrite(led, LOW); break;
    case '1': digitalWrite(led, HIGH); break;
    default: break; // ignorar otros valores
  }
}