HOWTO · Arduino
Cómo imprimir en la consola en Arduino
Este tutorial tratará sobre cómo imprimir texto o variables en la consola usando el Monitor Serial del IDE de Arduino.
En esta página
La consola, a menudo llamada Monitor Serial, sirve como una ventana virtual al funcionamiento de su Arduino.
Le permite enviar información desde su microcontrolador a su computadora y recibir datos a cambio. Esta comunicación bidireccional es una herramienta potente para principiantes y entusiastas experimentados de Arduino.
Este tutorial tratará sobre cómo imprimir texto o variables en la consola usando el Monitor Serial del IDE de Arduino. Comenzando con los fundamentos del uso de Serial.print() y Serial.println(), avanzaremos hacia estrategias más avanzadas como utilizar Serial.write() para la transmisión de datos binarios.
Imprimir en la consola usando el Monitor Serial en Arduino
El IDE de Arduino tiene una consola en la parte inferior, pero no podemos imprimir nada en ella. La consola solo sirve para mostrar la información en la verificación y compilación del código.
La consola muestra el uso de memoria del código en bytes y los errores al verificar o cargar el código. Para imprimir o mostrar el valor almacenado dentro de una variable, podemos usar el Monitor Serial del IDE de Arduino.
El Monitor Serial es una herramienta integrada en el IDE de Arduino que le permite comunicarse con su placa Arduino. Proporciona una manera conveniente de enviar datos desde su Arduino a su computadora y de recibir datos de su computadora a su Arduino.
Podemos iniciar el Monitor Serial usando la pestaña Tools en la barra de herramientas del IDE de Arduino.
Usar las funciones Serial.print() y Serial.println() en el Monitor Serial
Podemos usar la función Serial.begin() para iniciar la comunicación serial con una velocidad en baudios o velocidad específica. Podemos usar las funciones Serial.print() y Serial.println() para imprimir texto y variables en el Monitor Serial.
Sintaxis de Serial.print() y Serial.println():
Serial.print(data);
Serial.println(data);
Parámetros:
data: Los datos que desea enviar al puerto serial. Pueden ser de varios tipos, incluidos enteros, flotantes, caracteres y cadenas.
Parámetros adicionales (opcionales):
format: Este parámetro le permite especificar el formato en el que se imprimirán los datos. Puede ser uno de los siguientes:DEC: Imprimir como un número decimal.BIN: Imprimir como un número binario.OCT: Imprimir como un número octal.HEX: Imprimir como un número hexadecimal.
La diferencia entre Serial.print() y Serial.println() es que la función print() imprimirá la variable y el cursor permanecerá en la misma línea, mientras que en la función println() el cursor se mueve a la línea siguiente después de imprimir la variable.
Por ejemplo, queremos imprimir dos variables en la misma línea y la tercera variable en la línea siguiente. En ese caso, usaremos la función print() para imprimir la primera variable, luego usaremos la función println() para imprimir la segunda variable y mover el cursor a la línea siguiente, y luego usaremos de nuevo la función print() para imprimir la tercera variable.
Definamos algunas variables e imprimámoslas en el Monitor Serial. Vea el código siguiente.
Ejemplo:
int My_Int = 10;
unsigned long My_TimeStamp = 1416803716;
const char *My_CharArray = {"This is My_CharArray"};
float My_Float = 3.14159266759;
void setup() {
Serial.begin(9600);
Serial.println(My_Int);
Serial.println(My_TimeStamp);
Serial.println(My_CharArray);
Serial.print(My_Float, 5); // prints to five places right of the decimal
}
void loop() {
// put your code here to run repeatedly
}
Este código comienza declarando varias variables de diferentes tipos de datos. En setup(), la comunicación serial se configura a una velocidad de 9600 baudios. A continuación, imprime los valores de las variables usando Serial.print() y Serial.println().
Si solo queremos imprimir las variables una vez en el Monitor Serial, podemos usar la función Serial.print() dentro de la función setup(), porque solo se ejecuta una vez cuando se enciende la placa Arduino.
Si queremos imprimir una variable continuamente, debemos imprimirla dentro de la función loop(), porque el código dentro de ella se ejecuta en un bucle mientras el Arduino está encendido. Podemos imprimir variables de todos los tipos de datos usando el Monitor Serial.
Salida:
10
1416803716
This is My_CharArray
3.14159
También podemos definir el segundo argumento en la función Serial.print() (como en el código de ejemplo anterior), que es el formato para imprimir el valor de la variable.
Por ejemplo, en el caso de un tipo de datos entero o long, podemos definir en qué sistema numérico queremos mostrarlo, como BIN para binario y DEC para decimal. Por defecto, el número se mostrará en el sistema numérico decimal.
En el caso de un número de punto flotante, podemos definir el número de decimales del número que queremos imprimir en el Monitor Serial. Consulte este enlace para obtener más detalles sobre la función Serial.print().
Usar la función Serial.write() para enviar datos binarios al Monitor Serial
Los datos dentro de la función Serial.print() se convertirán en representación ASCII. Si queremos enviar los datos como un flujo de bytes, podemos usar la función Serial.write() en lugar de la función Serial.print().
En la programación de Arduino, la función Serial.write() se usa para enviar datos binarios a través de la conexión serial. Le permite enviar un byte o una serie de bytes directamente y sin interpretación.
Esto es particularmente útil cuando necesita transmitir datos sin procesar o códigos de control.
Sintaxis:
Serial.write(data);
Parámetros:
data: El byte o la matriz de datos que desea enviar a través de la conexión serial. Puede ser un solo byte (charsin signo) o una matriz de bytes.
Parámetros adicionales (opcionales):
length: El número de bytes que se enviarán desde la matriz. Este parámetro se usa cuando se envía una matriz de datos.
Serial.write() permite enviar datos binarios a la consola. Es útil cuando se trabaja con datos que no son de texto o cuando se interactúa con otros dispositivos que requieren comunicación binaria.
Ejemplo:
void loop() {
byte data[] = {0x48, 0x65, 0x6C, 0x6C, 0x6F}; // ASCII values of "Hello"
Serial.write(data, sizeof(data));
delay(1000);
}
Este código envía los valores ASCII de 'H', 'e', 'l', 'l' y 'o' al Monitor Serial uno tras otro, con un retraso de 1 segundo entre cada transmisión. Cuando ejecuta este código y abre el Monitor Serial, "Hello" aparece en la consola.
Conclusión
En conclusión, imprimir en la consola equivale a esgrimir una potente herramienta de depuración y supervisión. A través de esta guía, hemos explorado varios métodos usando el Monitor Serial, desde las funciones fundamentales Serial.print() y Serial.println() hasta estrategias avanzadas como la transmisión de datos binarios con Serial.write().
Puede comunicarse sin problemas entre su Arduino y su computadora si comprende y utiliza eficazmente estas técnicas. Esto abre posibilidades, desde la supervisión de datos de sensores en tiempo real hasta la resolución de problemas de lógica de código intrincada.