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.
}
}
}