Nota
¡Hola, bienvenido a la Comunidad de Entusiastas de Raspberry Pi, Arduino y ESP32 en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Vistas previas exclusivas: Obtén acceso anticipado a nuevos anuncios de productos y avances.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones festivas y sorteos: Participa en sorteos y promociones especiales de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
1.8 Lectura Serial
Resumen
Además de leer datos de los componentes electrónicos, la placa Mega2560 puede leer datos desde el monitor serie, y puedes usar Serial.read() como controlador para los experimentos del circuito. En este caso, utilizamos un LED para experimentar con la instrucción Serial.read() para controlar el encendido y apagado del LED.
Componentes necesarios
Circuito Fritzing
En este ejemplo, utilizamos el pin digital 9 para controlar el LED. Cuando se ingresa el valor «1» en el monitor serie, el LED se enciende. Cuando se ingresa «0», el LED se apaga.
Diagrama esquemático
Código
Nota
Puedes abrir el archivo
1.8_serialRead.inoen la rutasunfounder_vincent_kit_for_arduino\code\1.8_serialReaddirectamente.O copiar este código en el IDE de Arduino.
Después de cargar el código en la placa Mega2560, abre el monitor serie. Al escribir «1», el LED se enciende, y al escribir «0», se apaga.
Análisis del código
Declara el pin digital 9 como ledPin.
const int ledPin = 9;
Serial.read() lee un solo byte de valor ASCII, por lo que debes declarar una variable de tipo int, incomingByte, para almacenar los datos recibidos.
int incomingByte = 0;
Inicia la comunicación serial en setup() y establece la tasa de transmisión a 9600.
Serial.begin(9600);
Configura el pin ledPin en modo OUTPUT.
pinMode(ledPin,OUTPUT);
En loop(), se evalúa el estado del monitor serie, y la información solo se procesa cuando se reciben datos.
if (Serial.available() > 0){}
Lee el valor ingresado en el monitor serie y lo almacena en la variable incomingByte.
incomingByte = Serial.read();
Cuando se obtiene el carácter “1”, se enciende el LED; cuando se obtiene “0”, el LED se apaga.
if(incomingByte=='1'){digitalWrite(ledPin,HIGH);}
else if(incomingByte=='0'){digitalWrite(ledPin,LOW);}
Nota
Serial.read() toma el valor ASCII de un solo carácter, lo que significa que cuando ingresas “1”, el valor obtenido no es el número “1”, sino el carácter “1” cuyo valor ASCII correspondiente es 49.
※ Tabla ASCII
El código ASCII (Código Estándar Americano para el Intercambio de Información) data de la década de 1960. Es la forma estándar en que se codifica el texto numéricamente.
Cabe destacar que los primeros 32 caracteres (0-31) son caracteres no imprimibles, comúnmente llamados caracteres de control. Los caracteres más útiles están etiquetados.
Imagen del fenómeno