El puerto serie de arduino

Arduino UNO, posee un puerto serie por hardware instalado en los pines 0 (Rx) y 1 (Tx). La comunicación serie o UART, se caracterza porque envía y recibe los datos seguidos, en línea, de uno detrás de otro. Cada dato que llega al dispositivo, se almacenan en una memoria de entrada llamada buffer.

Cuando conectamos un periférico a esta línea, el pin Rx de la placa se conecta al pin Tx del periférico y el Tx de la placa al Rx del periférico, es el caso del bluetooth.

Aunque solo posee un puerto serie por hardware, existe la posibilidad de crear alguno más por software, usando una librería especial. Esto, en muchos casos, es necesario porque el pin0 y el pin1 comparten puerto con el USB. Si ocupamos estos dos pines, no podremos depurar el programa usando el terminal del ordenador.







Velocidad de transmisión de datos

Cuando enviamos o recibimos información por el puerto serie, podemos notar como parpadean los leds Tx y Rx de la placa

La velocidad con la que se transmite la información se mide en Baudios. En arduino, un baudio equivale a un bit por segundo (bps).

La velocidad del emisor y del receptor deben coincidir. Estas velocidades están normalizadas: 115200, 56700, 38400, 19200, 9600

Comunicación: Arduino <---> PC (monitor serial)


Comunicación: PC (monitor serial) --> Arduino

CUDIDADO, COMILLAS SIMPLES ' '

Comunicación: PC (Processing) --> Arduino


Comunicación: Arduino --> PC (Processing)

Usamos la función write() para mandar datos desde arduino y la función read() para recibir los datos en Proscessing. La función write() solo envia un bite de información, por lo que sólo podemos mandar enteros hasta 255.

Práctica de joystick con potenciómetro para controlar juego de bolas en Processing aquí.

Comunicación: Arduino <---> Bluetooth



Podemos conetar el famoso módulo bluetooth HC-05, al puerto serie de arduino y de esta forma, conectarnos al bluetooth del nuestro smartphone.

Arduino bluetooth <---> Smartphone bluetooth



Ejemplo de App Inventor con 2 botones: un botón para evniar un "0" y otro para enviar un "1"