Uso del terminal serie virtual en Proteus y Arduino
Contenidos
Vídeos
- 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
yD1
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ónVirtual Terminal
.
Previa configuración del terminal serie
- En
void setup()
→Serial.begin(9600)
, donde en este ejemplo9600
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 ejemplo9600
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()