Comunicación Serial

Pues de momento, sin saber exactamente qué deseas que haga tu programa, en el bucle while, donde pones datos=c supongo que quieres decir datos*=c. EDITO: supongo que sí has puesto datos(i), ya que yo lo he puesto y se come la "i" entre corchetes.*
¿Por qué pones if datos[0], datos[3] y datos[5]?¿Se supone que cada letra debe ir en una posición concreta de la cadena o algo así?
Si sólo se trata de ir leyendo cada carácter y actuando según lo leído, te podría valer algo así:
void loop(){

  • if (Serial.available()){*
  • switch(Serial.read()){*
  • case 'a':*
  • digitalWrite(13,HIGH);*
  • break;*
  • case 'g':*
  • digitalWrite(13,HIGH);*
  • break;*
  • case 't':*
    ........etc.
  • }*
  • }*
    }