La comunicación de nuestro Arduino UNO o Arduino Leonardo a través del puerto Serie es la más sencilla que podemos ver, de hecho cada vez que subimos un programa a nuestra placa estamos haciendo uso de la comunicación Serie. También cuando utilizábamos Ardulab estábamos haciendo un uso intensivo de la comunicación Serie.

Pero este tipo de comunicación nos puede ser útil en muchos más aspectos pues podemos hacer que Arduino nos mande datos referentes a lo que está haciendo o pasando dentro de él directamente a nuestro ordenador de sobremesa.

Un detalle del que ya os habréis dado cuenta es que Arduino es un ordenador por derecho propio, pequeñito, pero un ordenador en toda regla y nos podemos comunicar con él siguiendo ciertos protocolos. Como ya he dicho el más sencillo es por el puerto Serie y es por este por el que podemos comunicarnos con otros periféricos, sensores o con el ordenador de sobremesa con el que escribimos los programas que luego le subimos.

Como ejemplo vamos a hacer que Arduino lea un sensor y que nos mande las lecturas al ordenador que usemos para escribir nuestro programa, esta es una utilidad real que podemos utilizar más adelante para monitorizar procesos controlados por Arduino y puede servirnos también para depurar un programa, pues de la misma forma podemos hacer que Arduino nos muestre valores de variables o mensajes al llegar a ciertas partes del programa y hacer que la depuración de un programa sea más sencilla.

Al lio … vamos a utilizar el sensor LDR conectado a la entrada analógica A3 de nuestro Shield de Prácticas y monitorizaremos los datos leídos en bruto, es decir, veremos números comprendidos entre 0 y 1023. El sensor LDR es una resistencia sensible a la luz por lo que ver como varían sus lecturas será tan sencillo como pasar la mano sobre ella y hacerle sombra.

Para decirle a Arduino que vamos a utilizar la comunicación Serie hay que iniciarla y esto lo hacemos en el setup() con la orden:

1
  Serial.begin(9600);

El número dentro del paréntesis es la velocidad de comunicación y admite muchas otras, pero para nuestros propósitos 9600 bits por segundo nos es suficiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Int valor;

void setup()
{
  // iniciamos la comunicación Serie
  Serial.begin(9600);
}

void loop()
{
  // Capturamos la lectura analogica y la guardamos en la
  // variable valor
  valor = analogRead(A3);
  // lo sacamos por el puerto Serie
  Serial.println(valor);
  // Introducimos una pausa para no saturar el puerto Serie
  // y ver como cambian los valores
  Delay(150);
}

Subimos el código a nuestra placa Arduino UNO o Arduino Leonardo y, en el Arduino IDE, en la esquina superior derecha hay un botón con una lupa, lo pulsamos y se nos abre una nueva ventana en la que comenzarán a mostrarse unos números. Si orientamos el Shield de Prácticas hacia una luz brillante los números serán altos, cercanos al 1023, y si al sensor le hacemos sombra con la mano los números irán bajando … podéis jugar un ratito con ello viendo como bailan los números.


Si este tutorial te ha sido de utilidad puedes considerar hacerme un donativo, por pequeño que sea estarás contribuyendo a que siga con esta labor.