En el código que detallo a continuación se encienden ciertos led's al pulsar la tecla que corresponde al puerto digital al que hemos conectado cada uno de los led. Por ejemplo si pulsamos el 0, se encenderá o se apagará el led conectado al puerto 10 digital de nuestro arduino. Y si pulsamos el 3, pues el led conectado al puerto 13.
Este es nuestro código en C ...
// Array del 0 al 3 para usar los puertos digitales del 10 al 13
bool puerto[4];
// Variable que usaremos para capturar el teclado
char Captura;
// Para convertir el Char en String
String capturaS;
void setup()
{
// Preparamos los puertos digitales del 10 al 13 para ser de salida
for (int i = 10; i <= 13; i++)
{
pinMode(i, OUTPUT);
}
// Se abre la comunicación tipo Puerto Serie a 9600 baudios
Serial.begin(9600);
}
void loop()
{
// Vaciamos la tecla capturada
Captura = ' ';
capturaS = "";
if (Serial.available() > 0)
{
// Si la librería Serial mediante available es mayor que 0, entonces es que está funcionando el puerto serie
// Leemos el puerto Serie para ver si han pulsado algo
Captura = Serial.read();
// Convierto el char en String para luego poderlo convertir en entero
capturaS = Captura;
// Avisamos si no ha pulsado la tecla correcta
if ( (Captura != '0')
&& (Captura != '1')
&& (Captura != '2')
&& (Captura != '3') )
{
// Como tenemos la comunicación serial abierta con la terminal
// presentamos mensaje de elección incorrecta
Serial.println("No es correcto, elija entre 0-3");
}
}
for (long i = 10; i <= 13; i++) // Recorro los puertos digitales del 10 al 13
{
if (
// Convierto el valor de la tecla pulsada en entero
// y le sumo 10 para ver a que puerto digital relaciono
((capturaS.toInt() + 10) == i) &&
// El puerto serie nos puede devolver algo sin pulsar
((capturaS) != "" )
)
{
// Guardamos el On/Off del puerto
puerto[(i - 10)] = not puerto[(i - 10)];
// Le decimos al puerto que se ponga en On o en Off
digitalWrite(i, puerto[(i - 10)]);
}
}
}
Este sería el esquema del circuito que deberíamos de crear para que este código funcionara ...