Arduino Serial.read() y Serial.write()

Arduino Serial.read() y Serial.write()

Si eres un principiante en Arduino, probablemente ya hayas escuchado sobre Serial.read() y Serial.write(). Estas dos funciones son muy importantes cuando se trabaja con comunicación serial. Este artículo te enseñará cómo usarlas adecuadamente y te proporcionará algunos ejemplos prácticos.

📋 Aquí podrás encontrar✍
  1. Qué es comunicación serial
  2. Serial.read()
    1. Flujo de ejemplo - Serial.read()
    2. Usos comunes de Serial.read()
  3. Serial.write()
    1. Flujo de ejemplo - Serial.write()
    2. Usos comunes de Serial.write()
  4. Ejemplos prácticos
  5. Conclusión
  6. Preguntas frecuentes
    1. ¿Qué ocurre si no hay datos presentes cuando utilizo Serial.read()?
    2. ¿Puedo enviar una cadena de caracteres a través de Serial.write()?
    3. ¿Qué tipo de datos se pueden enviar a través de Serial.write()?
    4. ¿Puedo usar Serial.write() para enviar datos a un programa en la computadora?

Qué es comunicación serial

Antes de entrar en detalles sobre Serial.read() y Serial.write(), es importante entender qué es la comunicación serial. En términos simples, es una forma de enviar datos de un dispositivo a otro a través de un cable.

En un sistema Arduino, la comunicación serial puede usarse para enviar datos entre el Arduino y otros dispositivos, como una computadora o un módulo GPS. El Arduino tiene puertos de comunicación serial que se utilizan para enviar y recibir datos.

Serial.read()

La función Serial.read() se utiliza para leer datos que se han enviado al Arduino a través del puerto serial. La sintaxis para usar Serial.read() es la siguiente:

int dato = Serial.read();

El valor de "dato" será el próximo byte que se haya transferido a través del puerto serial. Es importante tener en cuenta que Serial.read() solo leerá un byte a la vez, por lo que si se están enviando datos múltiples, debes llamar a esta función varias veces.

Flujo de ejemplo - Serial.read()

Supongamos que se está enviando el número "50" al Arduino a través del puerto serial. Para leer este número en el Arduino, debe usar Serial.read() de la siguiente manera:

int dato = Serial.read();

El valor de "dato" será 50.

Usos comunes de Serial.read()

Serial.read() suele utilizarse en situaciones en las que se necesitan leer datos de sensores o dispositivos externos conectados al Arduino.

Serial.write()

La función Serial.write() se utiliza para enviar datos desde el Arduino a otros dispositivos a través del puerto serial. La sintaxis para usar Serial.write() es la siguiente:

Serial.write(valor);

El parámetro "valor" puede ser cualquier dato que se desee enviar, desde un número hasta un conjunto de caracteres. Es importante tener en cuenta que la función Serial.write() solo envía un byte a la vez, por lo que si se están enviando múltiples bytes, debe llamar a esta función varias veces.

Flujo de ejemplo - Serial.write()

Supongamos que deseamos enviar el número "100" al puerto serial. Para hacer esto, debemos usar la siguiente línea de código:

Serial.write(100);

Este comando enviará el número "100" al puerto serial.

Usos comunes de Serial.write()

Serial.write() se utiliza comúnmente para enviar datos de sensores o enviar comandos a otros dispositivos.

Ejemplos prácticos

A continuación, se muestra un ejemplo práctico de cómo usar Serial.read() y Serial.write() para enviar y recibir datos desde un Arduino:


void loop() {
if (Serial.available() > 0) {
int input = Serial.read();
if (input == 1) {
Serial.write("LED encendido");
digitalWrite(LED_PIN, HIGH);
}
else if (input == 0) {
Serial.write("LED apagado");
digitalWrite(LED_PIN, LOW);
}
}
}

Este código escuchará por cualquier byte que llegue al puerto serial. Si el valor recibido es 1, encenderá el LED y enviará "LED encendido" a través del puerto serial. Si el valor recibido es 0, apagará el LED y enviará "LED apagado" por el puerto serial.

Conclusión

Serial.read() y Serial.write() son funciones muy útiles que pueden facilitar la comunicación entre dispositivos en un sistema Arduino. Recuerda que Serial.read() se utiliza para leer datos entrantes en el Arduino, mientras que Serial.write() se utiliza para enviar datos a otros dispositivos. Espero que este artículo te haya sido útil.

Preguntas frecuentes

¿Qué ocurre si no hay datos presentes cuando utilizo Serial.read()?

Si no hay datos presentes cuando se utiliza la función Serial.read(), esta función simplemente devolverá -1.

¿Puedo enviar una cadena de caracteres a través de Serial.write()?

Sí, puedes enviar cualquier dato que desees a través de Serial.write(), incluyendo cadenas de caracteres. Sin embargo, ten en cuenta que solo se envía un byte a la vez, por lo que si estás enviando una cadena de caracteres, debes llamar a la función Serial.write() varias veces.

¿Qué tipo de datos se pueden enviar a través de Serial.write()?

Puedes enviar cualquier tipo de datos a través de Serial.write(), siempre y cuando se pueda representar en un solo byte. Los ejemplos incluyen números enteros, caracteres únicos y valores booleanos.

¿Puedo usar Serial.write() para enviar datos a un programa en la computadora?

Sí, puedes usar Serial.write() para enviar datos a un programa en la computadora, pero debes asegurarte de que el programa esté escuchando el puerto serial correcto y que esté configurado para recibir los datos que estás enviando.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza Cookies propias y de terceros de análisis para recopilar información con la finalidad de mejorar nuestros servicios, así como para el análisis de su navegación. Si continua navegando, se acepta el uso y si no lo desea puede configurar el navegador. CÓMO CONFIGURAR