En esta sección aprenderás a utilizar uno de los tipos de declaraciones condicionales en la programación de Arduino. En este caso nos referimos a la declaración Switch Case.
La declaración Switch Case, se usa para minimizar el uso de varias declaraciones if en nuestro código. Es decir, si son necesarias varias declaraciones IF, y en este caso deseamos reducir el número de líneas de código.
Al utilizar Switch Case, ontendremos un código más simple y en consecuencia más rápido y más optimizado.
¿Cuándo es necesario utilizar una declaración Switch Case?
Las declaraciones Switch Case serán bastante útiles, cuando tengamos múltiples rangos de entrada y sea necesario procesar de forma diferente cada uno de ellos.
En el siguiente ejemplo, podrás visualizar mejor lo anterior.
En el siguiente código se registra la lectura de datos de temperatura a través de un sensor (termistor). Luego se imprimirá en pantalla si el valor es bajo, medio o alto, según el rango de temperatura en la entrada:
const int termistorPin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int temperatura = analogRead(termistorPin);
temperatura = temperatura / 341;
switch (temperatura) {
case 1:
Serial.print("La temperatura es baja");
break;
case 2:
Serial.print("La tamperatura es media");
break;
case 3:
Serial.print("Tamperatura alta");
break;
default:
Serial.print("Error en el sensor");
}
}
En primer lugar, declaramos una variable pin llamada termistorPin
y luego, fue configurado igual al pin analógico A0.
setup()
, inicializa el monitor serial.
Los pines analógicos son las entradas, por lo que no necesitamos usar el pinMode()
.
Dentro del loop()
, declaramos una nueva variable que llamaremos temperatura
para almacenar el valor de lectura analógica del termistor, termistorPin
.
El Arduino tomará una lectura de la termistorPin
y almacenar el valor en la variable de nombre temperatura
.
El valor de entrada estará entre 0 y 1023, dependiendo de la temperatura medida por nuestro termistor.
Luego usamos la operación temperatura = temperatura / 341;
para convertir el valor almacenado en temperatura
uno, dos o tres.
Estos números representan los rangos de temperatura de entrada, que se imprimirán en la salida como temperatura baja, media y alta.
La instrucción switch examina la variable dentro de los paréntesis (temperatura
) y lo compara a través de la declaración Switch Case.
Si el valor almacenado en la variable coincide con el número en case, se ejecutará el código dentro del cuerpo de la declaración del case.
por ejemplo si temperatura
es igual a dos, case 2
se ejecutará y se imprimirá el mensaje «La temperatura es media».
Si temperatura
es igual a tres, case 3
se ejecutará y se imprimirá en pantalla «Temperatura alta».
Cada declaración Switch Case termina con la palabra reservada break.
Break, hace que el programa salga de la sentencia switch después de ejecutar la sentencia case.
Esto evita seguir en un loop infinito.
¿Cuando la declaración Switch Case termina en default?
Default se ejecutará si ninguna de las declaraciones case coinciden con la condición switch.
Por ejemplo, si no se ejecuta ninguna de las declaraciones case, puede haber un problema con el termistor.
De esta forma, nos aseguramos que el código dentro de la declaración default imprima «Error del sensor».
Esperamos que este breve tutorial te haya ayudado a comprender cómo utilizar las declaraciones Switch Case al programar el Arduino.