Uso del terminal serie virtual en Proteus y Arduino

Sirve para enviar datos de los sensores al ordenador o para enviar comandos del PC al Arduino.

También puede ser útil para depurar programas, observando el valor de ciertas variables que nos interesen.

Importante: Si la comunicación serie está activada, no se pueden usar los pines D0 y D1 como entradas/salidas digitales.

Configuración en el Proteus 8.11

Si no apareciera la ventana del terminal durante la simulación, escoger en el menú Depuración (Debug) la opción Virtual Terminal.

Previa configuración del terminal serie

En void setup() → Serial.begin(9600), donde en este ejemplo 9600 es la velocidad de transmisión en baudios.

Envío de datos en el programa

Serial.print(“Hola Mundo”); Envía esa frase por el terminal serie. El cursor queda en la mísma línea, al final de la frase.

Serial.println(“Hola Mundo”); Envía esa frase por el terminal serie y añade un retorno de línea, saltando a la siguiente.

Si la transmisión es muy rápida podemos poner un delay(400) para añadir un retardo, en este caso de 400 milisegundos.

Ejemplo

// Programa para escribir algo a través del terminal serie
void setup() {
// Configuración del puerto serie
Serial.begin(9600);
}
void loop () {
// Envío de datos
Serial.println("Hola Mundo");
delay(400);
}

Lectura de datos en el programa

Serial.read()

Serial.write()

Ejemplo

// Programa para recibir algo a través del terminal serie
// Declaración de variables
int mensaje=0; // Almacenará el código ASCII del caracter recibido
void setup() {
// Configuración del puerto serie
Serial.begin(9600);
}
void loop () {
if(Serial.available() > 0)
{
// Terminal serie disponible
// Se almacena el código ASCII recibido
mensaje=Serial.read();
// Se visualiza el código ASCII del caracter
Serial.print("Recibí: ");
Serial.println(mensaje);
// Se visualiza el caracter recibido
Serial.print("Recibí: ");
Serial.write(mensaje);
Serial.println();
}
}

Resumen

Previa configuración del terminal serie

En void setup() → Serial.begin(9600), donde en este ejemplo 9600 es la velocidad de transmisión en baudios.

Envío de datos en el programa

Serial.print(“Hola Mundo”); Envía esa frase por el terminal serie. El cursor queda en la mísma línea, al final de la frase.

Serial.println(“Hola Mundo”); Envía esa frase por el terminal serie y añade un retorno de línea, saltando a la siguiente.

Lectura de datos en el programa

Serial.read()

Serial.write()

Consulta

Contenidos Comunicación Serie Arduino Vídeos 1Terminal virtual Proteus 8 parte 25 (10m 47s) 2Monitor serial de Arduino con Proteus (10m 21s)