You are on page 1of 4

Materia: Robótica I – Prof.

Rosas, Antonio 2023


COMUNICACIÓN DE ARDUINO CON PUERTO SERIE

¿QUÉ ES EL PUERTO SERIE?

Un puerto es el nombre genérico con que denominamos a los interfaces, físicos o virtuales, que permiten la comunicación
entre dos ordenadores o dispositivos.

Un puerto serie envía la información mediante una secuencia de bits. Para ello se necesitan al menos dos conectores para
realizar la comunicación de datos, RX (recepción) y TX (transmisión). No obstante, pueden existir otros conductores para
referencia de tensión, sincronismo de reloj, etc.

ARDUINO Y EL PUERTO SERIE

Los puertos serie están físicamente unidos a distintos pines de la placa Arduino. Lógicamente, mientras usamos los puertos
de serie no podemos usar como entradas o salidas digitales los pines asociados con el puerto serie en uso.

En Arduino UNO y Mini Pro los pines empleados son 0 (RX) y 1 (TX). En el caso de Arduino Mega y Arduino Due, que tienen
cuatro puertos de serie, el puerto serie 0 está conectado a los pines 0 (RX) y 1 (TX), el puerto serie 1 a los pines 19 (RX) y
18 (TX) el puerto serie 2 a los pines 17 (RX) y 16 (TX), y el puerto serie 3 a los pines 15 (RX) y 14 (TX).

Muchos modelos de placas Arduino disponen de un conector USB o Micro USB conectado a uno de los puertos de serie,
lo que simplifica el proceso de conexión con un ordenador. Sin embargo algunas placas, como por ejemplo la Mini Pro,
prescinden de este conector por lo que la única forma de conectarse a las mismas es directamente a través de los pines
correspondientes.

CONEXIÓN DEL ARDUINO CON UN ORDENADOR

Para realizar la conexión mediante puerto serie únicamente es necesario


conectar nuestra placa Arduino empleando el mismo puerto que
empleamos para programarlo. A continuación abrimos el IDE Standard de
Arduino y hacemos click en el "Monitor Serial" como se indica en la imagen.

El monitor de puerto serie es una pequeña utilidad integrada dentro de IDE


Standard que nos permite enviar y recibir fácilmente información a través
del puerto serie. Su uso es muy sencillo, y dispone de dos zonas, una que
muestra los datos recibidos, y otra para enviarlos. Estas zonas se muestran
en la siguiente imagen.

Pese a su sencillez este


monitor de puerto serie es suficiente para los ejemplos de esta
entrada, y resulta muy útil para realizar test o experimentos rápidos.

16
Materia: Robótica I – Prof. Rosas, Antonio 2023

Comandos importantes para la programación:

Serial.begin(rate)
Abre el puerto serie y fija la velocidad en baudios para la transmisión de datos en serie. El valor típico de velocidad para
comunicarse con el ordenador es 9600, aunque otras velocidades pueden ser soportadas.

void setup()
{
Serial.begin(9600); // abre el Puerto serie
}
Nota: Cuando se utiliza la comunicación serie los pins digital 0 (RX) y 1 (TX) no puede utilizarse al mismo tiempo.

Serial.println(data)
Imprime los datos en el puerto serie, seguido por un retorno de carro automático y salto de línea. Este comando toma la
misma forma que Serial.print (), pero es más fácil para la lectura de los datos en el Monitor Serie del software.

Serial.println(analogValue); // envía el valor 'analogValue' al puerto

Nota: Para obtener más información sobre las distintas posibilidades de Serial.println () y Serial.print () puede consultarse
el sitio web de Arduino.

El siguiente ejemplo toma de una lectura analógica pin0 y envía estos datos al ordenador cada 1 segundo.

void setup()
{
Serial.begin(9600); // configura el puerto serie a 9600bps
}
void loop()
{
Serial.println(analogRead(0)); // envía valor analógico
delay(1000); // espera 1 segundo
}

Serial.avaible()

int Serial.available()
Obtiene un número entero con el número de bytes (caracteres) disponibles para leer o capturar desde el puerto serie.
Equivaldría a la función serialAvailable(). Devuelve Un entero con el número de bytes disponibles para leer desde el buffer
serie, o 0 si no hay ninguno. Si hay algún dato disponible, SerialAvailable() será mayor que 0. El buffer serie puede
almacenar como máximo 64 bytes.
17
Materia: Robótica I – Prof. Rosas, Antonio 2023
Ejemplo

int incomingByte = 0; // almacena el dato serie


void setup() {
Serial.begin(9600); // abre el puerto serie, y le asigna la velocidad de 9600 Bps
}
void loop() {
// envía datos sólo si los recibe:
if (Serial.available() > 0)
{
incomingByte = Serial.read(); // lee el byte de entrada
//lo vuelca a pantalla
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
}

Serial.Read()

int Serial.Read()
Lee o captura un byte (un caracter) desde el puerto serie. Equivaldría a la función serialRead(). Devuelve :El siguiente byte
(carácter) desde el puerto serie, o -1 si no hay ninguno

Ejemplo

int incomingByte = 0; // almacenar el dato serie


void setup() {
Serial.begin(9600); // abre el puerto serie,y le asigna la velocidad de 9600 bps
}
void loop() {
// envía datos sólo si los recibe:
if (Serial.available() > 0) {
// lee el byte de entrada:
incomingByte = Serial.read();
//lo vuelca a pantalla
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
}

18
Materia: Robótica I – Prof. Rosas, Antonio 2023

TRABAJO PRÁCTICO N2

Puerto Serie
Actividad N1

El siguiente nos permite entrar un dato (A o B ) y según el caso podremos encender o apagar un led. Realizar la simulación
en UnoArduSim o en Proteus o en algún simulador que crea conveniente, enviar captura de pantalla, también puede
realizar un video de su trabajo en el momento que disponga de los componentes.

int letra; // declaramos la variable letra como entero


void setup() {
Serial.begin(9600);
pinMode (6, OUTPUT);
}
void loop() {
if (Serial.available () > 0) // ¿en el puerto serie hay algún carácter? ¿alguien ingresó algún dato?
{
letra = Serial.read (); //colocar en la variable "letra" lo que haya en en puerto serie
Serial.write (letra);
if (letra == 'A')
{
digitalWrite (6, HIGH);
}
if (letra == 'B')
{
digitalWrite (6, LOW);
}
}
}

Actividad N2

Utilizando el programa escrito en la actividad dos del práctico número uno, realizar los cambios necesarios para que
ingresando las letras A, B o C, se enciendan las tres series de leds diferentes, enviar el programa compilado y las capturas
de pantallas correspondiente en alguno de los simuladores.

Recuerden llevar los programas compilados para trabajar en clases

19

You might also like