Arduino Intermedio
Semana 3: Comunicación Serial.
¿Qué es la comunicación serial?
La comunicación serial es una forma de comunicación entre dispositivos digitales
en la que los datos se transmiten de forma secuencial, es decir, bit a bit, por un
único canal. En el contexto de Arduino, la comunicación serial es comúnmente
utilizada para dos propósitos principales:
¿Qué es la comunicación serial?
Comunicación entre el Arduino y la computadora: Esto se usa con frecuencia durante la
etapa de desarrollo para enviar datos desde el Arduino a la computadora (por ejemplo,
leer sensores y mostrar los valores en el Monitor Serial del IDE de Arduino) o enviar datos
desde la computadora al Arduino (por ejemplo, instrucciones o configuraciones).
Comunicación entre el Arduino y otros dispositivos: Esto puede ser con otros
microcontroladores, sensores, módulos o componentes electrónicos que utilicen
comunicación serial. Por ejemplo, módulos GPS, Bluetooth
Ventajas y limitaciones
La comunicación serial, ya sea en el contexto de Arduino o en otros sistemas, tiene ventajas y
limitaciones:
o Ventajas:
✓ Simplicidad: La comunicación serial suele requerir menos líneas o pines que la comunicación
paralela.
✓ Distancia: Es posible transmitir datos a mayores distancias con comunicación serial que con
comunicación paralela.
✓ Facilidad de Uso: En muchos sistemas, como Arduino, las bibliotecas y herramientas para la
comunicación serial están bien desarrolladas, lo que facilita su implementación.
o Desventajas:
✓ Velocidad: Dado que los datos se transmiten bit a bit en lugar de enviar múltiples bits
simultáneamente (como en la comunicación paralela), la comunicación serial puede ser más lenta
para transmitir grandes cantidades de datos.
Deferencias: Serial vs Paralela
La comunicación serial y la comunicación paralela son dos técnicas fundamentales para transmitir datos
entre dispositivos o sistemas. Aquí te presento una comparativa de sus características:
➢ Modo de Transmisión:
• Serial: Los datos se transmiten bit a bit, uno tras otro, a través de una única línea o canal.
• Paralela: Los datos se transmiten simultáneamente a través de múltiples canales. Por ejemplo, un bus de
8 bits transmitirá 8 bits al mismo tiempo, uno por cada línea.
➢ Velocidad:
▪ Serial: Aunque la transmisión es secuencial, las altas velocidades de transmisión disponibles hoy en día
permiten que la comunicación serial sea rápida, especialmente para aplicaciones que no requieren la
transferencia de grandes cantidades de datos simultáneamente.
▪ Paralela: Es inherentemente más rápida para transferir grandes volúmenes de datos en distancias
cortas debido a la transmisión simultánea de múltiples bits.
Baud rate
El baud rate es una medida de cuán rápido se transmiten los símbolos o señales en un canal
de comunicación. Es esencial para configurar correctamente las comunicaciones entre
dispositivos y garantizar una transferencia de datos precisa.
Unidad: El baud rate se mide en baudios (o simplemente baud). Por ejemplo, si un
dispositivo transmite datos a 9600 símbolos por segundo, se dice que tiene un baud rate
de 9600 baud.
Funciones básicas
Serial.begin(baud_rate):
• Esta función inicializa el puerto serial y establece la velocidad de transmisión.
• baud_rate especifica la tasa en baudios (por ejemplo, 9600, 115200).
o Serial.print(data):
• Envía datos como texto.
• Puede ser usado para enviar números, caracteres y cadenas.
o Serial.println(data):
▪ Similar a Serial.print(data), pero añade un carácter de nueva línea (\n) al final, lo que
provoca un salto de línea en la visualización.
Diferencia entre Serial.print y Serial.println
Serial.print: Esta función envía los datos especificados al puerto serial como texto, pero no
añade ningún carácter adicional al final. Es decir, después de enviar los datos, el cursor
permanece en la misma línea.
Serial.println: Al igual que Serial.print, esta función envía los datos especificados al puerto
serial. Sin embargo, añade automáticamente un carácter de salto de línea al final.
Diferencia entre Serial.print y Serial.println
EJEMPLO: Si se tiene el siguiente código:
Serial.print("Hola");
Serial.print("Mundo");
La salida en el Monitor Serial será:
HolaMundo
Mientras que con:
Serial.println("Hola");
Serial.print("Mundo");
La salida en el Monitor Serial será:
Hola
Mundo
Visualización de datos en el
monitor serial
Visualización
de datos en
el monitor
serial
Visualización de datos en el monitor serial
Explicación:
• Se lee el valor del potenciómetro, que estará en el rango de 0 a 1023.
• Se utiliza la función map() para convertir ese valor a un rango de 0 a 255, que es el rango
aceptado por analogWrite() para controlar el brillo del LED.
• Se establece el brillo del LED usando analogWrite().
• Se envía el valor del potenciómetro al Monitor Serial usando Serial.print() y Serial.println().