En el ejemplo anterior vimos como enviar un texto al monitor de serie o una serie de textos de forma indefinida, ahora vamos a hacer un proyecto en cual le enviamos al Arduino por el monitor de serie una orden y recibiremos una respuesta al interactuar por el monitor serial. En nuestro caso si el usuario digita la letra “a” en el monitor serial y le da enter o al botón enviar, el Arduino nos devolverá un mensaje de texto, “Has presionado la tecla a”.
Componentes
- Arduino UNO o placa compatible
- Computador
Código
char variable1; void setup() { Serial.begin(9600); } void loop() { variable=Serial.read(); if(variable1 == 'a') { Serial.println("Has presionado la tecla a"); } }
En este código podemos ver que tenemos 3 partes, la declaración de la variable, la función setup() y la función loop(). Vamos a desglosarlo un poco para que sea más claro:
char val;
Aquí vemos como declaramos una variable de tipo caracter, a la que le damos el nombre variable, esto quiere decir que separamos un espacio en memoria para almacenar una letra.
En el setup tenemos Serial.begin(9600), donde estamos declarado la velocidad de comunicación a 9600 baudios, que es con la cual nuestro Arduino se comunicará con nuestra computadora por el puerto serial, a través del monitor de serie
En el la función loop, temos que:
Variable1=Serial.read();
Ahora en la línea variable1=Serial.read() estamos asignado a la variable “variable1” lo que digitemos en el monitor serial, en nuestro caso guardará un caracter , ya que la variable es tipo char.
if(variable1 == 'a') { Serial.println("Has presionado la tecla a"); }
Aquí tenemos nuestra primer condicional el “if”, si la condición que está entre los paréntesis variable1==’a’, se ejecuta todo lo que está en los corchetes, en este caso es el Serial.print(), entonces si la variable1 es igual a el carácter a nos ha de mostrar en el monitor sería el texto “Has presionado la tecla a”
Ahora subamos al Arduino el programa y abramos el monitor serial, donde digitaremos la letra a.
Ahí podemos ver el resultado que nos regresó al haber presionado la tecla «a», si probamos utilizando otras teclas no tendremos ningún resultado en la consola.
Código 2
Ahora vamos a agregar una decisión más a nuestro programa anterior, el programa respondía si presionábamos la tecla «a», pero qué pasa si presionamos otra tecla, pues nada, el programa solo responde si se presiona la a. Ahora vamos a responder cuando se presione una tecla diferente a la «a», con un texto que dice «Has presionado una tecla diferente de a».
char variable1; void setup() { Serial.begin(9600); } void loop() { variable=Serial.read(); if(variable1 == 'a') { Serial.println("Has presionado la tecla a"); } else { Serial.println("Has presionado una tecla diferente de a"); } }
El código es básicamente el mismo solo que después del if
hemos agregado un else
.
else { Serial.println("Has presionado una tecla diferente de a"); }
Este else
se ejecuta sino se cumple que la variable1 sea igual a la letra «a», por lo que imprime por el monitor serial el texto «Has presionado una tecla diferente de a».
Resultado
En este segundo proyecto vamos a interactuar por el monitor serial con el Arduino, donde si digitamos una letra a el Arduino nos va a responder «Has presionado la tecla a» y en caso contrario nos mostrará «Has presionado una tecla diferente de a».