preciso passar uma palavra inteira pelo falo de que vou utilizar "todas" as portas digitais e analógicas do meu arduino, sendo assim eu passaria a porta a ser acionada pela Serial.
Tu tens prazer em lidar com strings?
Tendo em conta que "todos" os pinos do Arduino são enderecados por números... andar com strings para cima e para baixo é uma perda de tempo, recursos, paciência e alguma falta de visão.
Queres actuar o pino 13 (o do led)? Envias 13N
Queres desligar o pino? Envias 13F.
Queres saber o estado? Envias 13S.
Queres saber o valor analógico das entradas? Envias 13A.
Depois no Arduino:
#include <stdlib.h>
char temp[3];
unsigned char pino;
temp[2] ='\0'; //preciosismos... indispensáveis...
if (Serial.available() > 3) { //minimo indispensável... embora fosse bom colocar um caracter de termino.
temp[0] = Serial.read();
temp[1] = Serial.read();
pino = atoi(temp);
switch(Serial.read()) {
case 'N': {
digitalWrite(pino, HIGH);
break;
}
case 'F': {
digitalWrite(pino, LOW);
break;
}
case 'S': {
//assumindo que fizeste pinMode() antes
Serial.print("S");
Serial.print(pino);
Serial.print('-');
Serial.println(digitalRead(pino));
break;
}
case 'A': {
Serial.print("A");
Serial.print(pino);
Serial.print('-');
Serial.println(analogRead(pino));
break;
}
}//end switch
}//end if.