Para conectarlo vamos a usar el puerto USB que establecerá una conexión en serie con nuestro PC.
La
comunicación en serie es muy sencilla, con solo dos cable podemos tener
una
diferencia de tensión entre ellos cuando la diferencia sea de (5V)
tendremos nivel alto y cuando sea de (0V) tendremos nivel bajo y con
esto podemos transmitir información digital. Ahora solo
nos falta establecer dos cosas entre el emisor y el receptor
El código común que vamos a usar con Arduino se llama código ASCII y es estándar en todos los PCs. Es una forma de codificar las letras mediantes números en código binario que representas estos caracteres. Recordad que solo podemos transmitir unos y ceros.
Prácticamente todos
los PCs utilizan este código y eso incluye a Windows, Mac y
Linux, pero es importante comprender que esté es uno más entre
varios códigos de caracteres posibles.
El otro factor que hay que establecer para realizar una comunicación serie es la velocidad. Dado que solo disponemos de dos hilos para transmitir, necesitamos saber cuándo hay que leer la línea y esto se hace estableciendo un acuerdo de velocidad. Si la velocidad de envío es distinta de la velocidad de lectura, el mensaje final será irreconocible.
Buena parte de los errores de comunicación serie programando con Arduino se suelen deber a una diferencia de velocidad entre el emisor y el receptor.
Esta velocidad se mide en bits por segundo y vamos a ver que Arduino soporta diferentes velocidades de comunicación serie.
Estableciendo la comunicación Serie
Arduino dispone de una librería serie incluida llamada Serial, que nos permite envía información al PC y para usarla, simplemente tenemos que pedirle en nuestro setup() que la incluya. La instrucción que se encarga es:
Serial.begin( velocidad ) ;
- ¡Ojo! que Serial tiene la S mayúsculas y que C++ diferencia entre mayúsculas y minúsculas
La velocidad es un valor entre 300 y 2.000.000 bits por segundo. Normalmente se establece en 9600 (el valor por defecto) pero no hay ninguna razón para que sea esta la velocidad por defecto, de hecho esta no es una velocidad especialmente alta.
Para
enviar un mensaje desde Arduino a nuestro PC podemos usar las
funciones
Serial.print()
Serial.println(). (ln hace que de un salto de línea)
Veamos un ejemplo que utilizaremos en el siguiente circuito para ver de manera práctica el puerto serie, además ese circuito será el mismo que montamos anteriormente para el interruptor:
El println() enviara "Pulsador suelto" o "Pulsador presionado" al puerto serie de Arduino (repetidamente), en función de valor que contenga la variable estado.
Para poder leer en nuestro PC lo que envía arduino, necesitamos un monitor de puerto serie. El IDE de Arduino incluye uno muy sencillo, pero suficiente que se invoca con el botón del monitor, que hemos resaltado con un rectángulo amarillo en la siguiente imagen:
Cuando lo pulsamos se despliega el monitor serie en sí
Para asegurarnos de que la velocidad de conexión es la misma en el PC como en arduino, nos fijamos en la parte inferior derecha vemos un botón en el que por defecto pone 9600 baudios o bits por segundo que es la velocidad por defecto y es en este botón, donde nos aseguramos que ponga la misma velocidad que hemos puesto en la función setup() de nuestro sketch. Si lo despliegas, verás las diferentes velocidades aceptables para Arduino.
Una vez montado el circuito, subimos el código a arduino. A continuación abrimos el monitor serie y comprobamos como cambia de "Pulsador suelto" a "Pulsador presionado" cuando presionamos el pulsador. De esta forma hemos aprendido a utilizar el monitor serie para monitorear los valores de los sensores de forma sencilla.