Leer Monitor serial
OBJETIVO DE LA SESIÓN
Conocerás la página oficial de Arduino para saber cómo funcionan algunos comandos de programación. Comprenderás la funcionalidad de los comandos: Serial. available(); para validar que el monitor serial esté recibiendo datos y Serial.read(); para captar información desde el Monitor Serial.
Actividad 1. Arduino Reference
MATERIALES PARA TRABAJAR DURANTE LA SESIÓN
> Computadora
> Arduino UNO
> Cable de descarga
> Página Arduino

> LED RGB
> Resistencias 220 Ω
> Lápiz
> Colores
> Reference: https://www.arduino.cc/reference/en/
Abre la página oficial de Arduino reference y completa la tabla con lo que se solicita.
Comando Descripción (¿Para qué sirve?)
digitalRead();
digitalWrite();
Lee el valor de un pin especificado, ya sea HIGH o LOW.
Ejemplo
int boton = 7; //pulsador conectado al pin 7 void setup(){ Serial.begin(9600); // establece la velocidad de transmisión a 9600 bits por segundo pinMode(boton, INPUT);
}
void loop(){
int valor = digitalRead(boton); // lee el valor del boton
Serial.write(valor); // escribe en el monitor serial el valor del del boton }
int LED = 3; //LED conectado al pin 3 void setup(){ pinMode(LED, OUTPUT);
pinMode();
Escribe un valor de HIGH o LOW a un pin digital.
Configura el pin especificado para comportarse como un pin de salida (OUTPUT) o de entrada (INPUT).
} void loop(){
digitalWrite(LED, HIGH); // enciende el LED }
void setup(){ pinMode(5, OUTPUT); // establece el pin 5 como salida }
void loop(){
digitalWrite(5, HIGH); // enciende el pin 5 delay(1000); // pausa el programa durante 1 segundo
digitalWrite(5, LOW); // apaga el pin 5 delay(1000); // pausa el programa durante 1 segundo }
Comando Descripción (¿Para qué sirve?)
random(); Genera números pseudoaleatorios en un intervalo especificado.
Ejemplo
void setup(){
Serial.begin(9600); }
void loop(){
int randomNumber = random(1, 99); // genera un número aleatorio entre el 1 y el 99 y lo almacena en una variable Serial.println(randomNumber); // muestra la variable en el monitor serial } delay();
Pausa el programa durante el tiempo (en milisegundos) especificado como parámetro.
Serial. available();
Obtiene el número de bytes disponibles para leer desde el puerto serial.
Serial.read(); Lee datos seriales entrantes.
int LED = 3; //LED conectado al pin 3 void setup(){ pinMode(LED, OUTPUT);
}
void loop(){ digitalWrite(LED, HIGH); // enciende el LED delay(1000); // pausa eel programa por un segundo (1000 milisegundos) digitalWrite(LED, LOW); }
int data = 0; //datos del monitor serial
void setup(){
Serial.begin(9600); // establece la velocidad de transmisión a 9600 bits por segundo
}
void loop(){
// se ejecuta solo cuando recibe datos del monitor serial.
if(Serial.available>0); { data = Serial.Read(); // lee los datos del monitor serial
Serial.print(“Obtuve: “); Serial.println(data, DEC); // muestra el valor obtenido en formato decimal } }
int data = 0; //datos del monitor serial
void setup(){
Serial.begin(9600); // establece la velocidad de transmisión a 9600 bits por segundo
}
void loop(){
// se ejecuta solo cuando recibe datos del monitor serial.
if(Serial.available>0); { data = Serial.Read(); // lee los datos del monitor serial
Serial.print(“Obtuve: “); Serial.println(data, DEC); // muestra el valor obtenido en formato decimal } }
Comando Descripción (¿Para qué sirve?)
Serial.write();
loop();
Escribe datos binarios en el puerto serial. Los datos se envían como bytes o series de bytes.
Ejemplo
void setup() { Serial.begin(9600); }
void loop() { Serial.write(45); // envía un byte con valor de 45
int bytesSent = Serial.write(“hola”); //manda el string “hola” y devuelve la longitud del string }
int LED = 5; void setup(){ pinMode(LED, OUTPUT); }
void loop(){
Realiza un bucle consecutivo que permite que el programa cambie y responda.
// el LED encenderá un segundo, se apagará 1 segundo y volverá a encender durante 1 segundo, todo esto en un bucle que se repite consecutivamente
digitalWrite(LED HIGH); // enciende el LED delay(1000); // pausa el programa durante 1 segundo
digitalWrite(LED, HIGH); // apaga el LED delay(1000); // pausa el programa durante 1 segundo }
int boton = 3; // conexión de un pulsador al pin 3 de Arduino
setup();
if(){ }
#define (define);
Se escribe cuando inicias un sketch. Sirve para inicializar variables, pin modes, empezar a usar librerías, etc. En otras palabras, inicializa y establece los valores iniciales en el programa.
Verifica una condición y ejecuta una declaración o serie de declaraciones si la condición se cumple (es verdadera).
Permite darle un nombre a un valor constante antes de que el programa se compile.
void setup(); Serial.begin(9600); pinMode(boton, INPUT); // se establece como un pin de entrada
void loop(){ // ... }
if (x < 100){ digitalWrite(LED, HIGH); }
#define LED 3 // el programa escribirá el valor 3 cada vez que se haga mención de LED
Actividad 2. Reto de programación
Realiza un diagrama de flujo de un programa en Arduino, el cual deberá encender y apagar un led y un buzzer cuando se haya enviado por el monitor serial una palabra secreta, por ejemplo, pide a tus compañeros y compañeras que adivinen tu color favorito y lo ingresen por el monitor serial, en el caso de que lo adivinen se encenderán el led y el buzzer.
Recuerda que el diagrama de flujo expresa la lógica de programación, este diagrama debe ser capaz de pasarse al lenguaje de programación de Arduino sin ambigüedad.
Posteriormente reflexiona y comparte con el grupo dónde podrías utilizar esta programación en la vida cotidiana.
Inicio
Declarar las constantes para los pines del led y del buzzer
Declarar una variable que contenga la palabra secreta
Asignar los pines del led y del buzzer como salidas digitales
Establecer la velocidad de transmisión serial a 9600 bits por segundo
Mostrar en el monitor serial el mensaje “Adivina mi color favorito: ”
Leer la respuesta y almacenarla en una variable
Mostrar en el monitor serial “Inténtalo de nuevo.”
Fin
Encender el led y el buzzer
NO
SI
Si la respuesta es igual a la palabra secreta