6. Comunicación entre dispositivos electrónicos

6.5. Propuesta 10

Enviar datos desde Arduino al ordenador

Para empezar, vamos a enviar datos desde el Arduino al PC. El IDE de Arduino tiene un monitor serie para comunicarse con el ordenador a través del puerto USB. Un monitor serie es un programa que en todo momento examina el tráfico que sale o entra por el puerto serie, y nos lo muestra por pantalla.

Copia los siguientes programas y abre el monitor serie cuando los hayas descargado. Para ello, una vez subido a Arduino, abre el monitor pulsando sobre su icono en la parte superior derecha del IDE. Se abrirá una ventana como esta:

En ella puedes ajustar la velocidad de la comunicación serie y otros aspectos. El monitor serie permite enviar datos en la línea de comandos y recibirlos en la ventana grande. Veamos varios ejemplos de uso:



a) Vamos a enviar el valor 81 en formato decimal al PC. El sketch sería el siguiente:

	void setup()
	{
		Serial.begin(9600);
	}
	void loop()
	{
		Serial.println(81);
		delay(1000);
	}

Observa que va imprimiendo el valor 81 constantemente:

También podemos determinar el formato de salida del valor que enviamos (decimal, binario, hexadecimal, octal o byte)

b) Para enviar el valor 81 en formato decimal, podemos hacerlo con el programa anterior o también con este:

	void setup()
	{
		Serial.begin(9600);
	}
	void loop()
	{
		Serial.println(81,DEC); 	//Imprime "81"
		delay(1000);
	}

c) Para enviar el valor 81 en formato hexadecimal:

	void setup()
	{
		Serial.begin(9600);
	}
	void loop()
	{
		Serial.println(81,HEX);	//Imprime "51"
		delay(1000);
}

d) Para enviar el valor 81 en formato octal:

	void setup()
	{
		Serial.begin(9600);
	}
	void loop()
	{
		Serial.println(81,OCT);	//Imprime "121"
		delay(1000);
	}

e) Para enviar el valor 81 en formato binario:

	void setup()
	{
		Serial.begin(9600);
	}
	void loop()
	{
		Serial.println(81,BIN);	//Imprime "1010001"
		delay(1000);
	}

f) Y para enviar el valor 81 como un byte usa la función write():

	void setup()
	{
		Serial.begin(9600);
	}
	void loop()
	{
		Serial.write(81);	//Imprime "Q", representa el carácter 81 de ASCII
		delay(1000);
	}