0% encontró este documento útil (0 votos)
12 vistas8 páginas

Arduino Serial

CONFIGURACIÓN DE PUERTO SERIAL CON ARDUINO

Cargado por

Juan Araujo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas8 páginas

Arduino Serial

CONFIGURACIÓN DE PUERTO SERIAL CON ARDUINO

Cargado por

Juan Araujo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Arduino Serial, ejemplos y

funcionamiento
Administrador marzo 22, 2019 Arduino, Comunicación 2 comentarios
El Serial en Arduino, se refiere a un puerto que se utiliza para comunicar dos dispositivos
digitales. Se usan dos pines, RX y TX. Por ejemplo dependiendo del tipo de tarjeta, puede
haber 1 o mas puertos. Estos puertos consisten de dos pines llamados RX y Tx. Por lo
general los datos a enviar estan codificados en caracteres.

Para Arduino, el modulo Serial se puede descomponer en dos elementos básicos:


 Hardware. En Arduino el Hardware Serial se refiere a la cantidad de puertos físicos que
puede tener una tarjeta, la velocidad máxima de comunicación así como las distintas
configuraciones posibles. En este enlace puedes encontrar más información sobre el puerto
serial.
 Software. En relación al software, estan las funciones del lenguaje Arduino, que son
utilizadas para controlar a dicho puerto, estas funciones son:
 Serial.print . Esta función se encarga de imprimir caracteres seriales.
 Serial.begin . Permite inicializar al puerto con una velocidad estándar.
 Serial.read . Se utiliza para, si hay datos disponibles sin leer, se puedan capturar y procesar
dichos caracteres seriales.
 Serial.available . Esta función nos indicará si existen bytes que no han sido leidos del
buffer.
 Verdadero. Hay datos sin leer.
 Falso. No hay datos nuevos en el puerto.
 Serial.write . Funciona de forma similar a la función de Arduino Serial print, pero con la
diferencia que se pueden escribir solo un byte a la vez en formato binario o hexadecimal.
ARDUINO SERIAL PINOUT O PINES DE CONEXIÓN
De acuerdo al tipo de Tarjeta Arduino Serial, los pines o pinout para conectar el serial, en la
siguiente imagen se muestran los pines para las tarjetas mas populares.

Por ejemplo, cada puerto esta identificado por un nombre unico, en el lenguaje Arduino
son:

 Serial. Para todas las tarjetas Arduino.


 Serial1. Para casi todos los Arduinos sin incluyer el Arduino UNO.
 Serial2
 Serial3

En el Arduino UNO R3, el serial se controla mediante los pines 0 y 1. Esto es para los
puertos reales, ya que se pueden usar otros pines como puertos seriales virtuales. En el
siguiente tema platicaremos que podemos enviar por un puerto serial.
COMUNICACIÓN ARDUINO SERIAL
Por lo general en la comunicación serial con Arduino, se envían caracteres codificados
en ascii. Estos caracteres representan la mayoria de los caracteres usados en los idiomas
que usan caracteres occidentales. Por ejemplo, para la agrupación de estos caracteres se
denomina con el estandanr UTF-8. En la siguiente tabla se muestran equivalencias para
algunos caracteres y su representación en numeros binarios y hexadecimales.
Para poder enviar caracteres en formato ascii se usan las funciones de Arduino Serial print
y println. Por ejemplo, la siguiente instrucción:

Serial.println(«Hola Mundo!);

En realidad envia 12 caracteres ascii o 12 bytes de informacion binaria.

EJEMPLOS PARA ARDUINO SERIAL


A continuación veremos una serie de ejemplos básicos para iniciar una comunicación Serial
en Arduino.

CONFIGURACIÓN DEL PUERTO SERIAL EN ARDUINO


El proceso de iniciar una comunicación mediante dos dispositivos seriales en Arduino,
comienza con la configuración e inicialización del modulo. Esto se realiza mediante la
siguiente instrucción:

Serial.begin(9600);
La instrucción anterior permite inicializar los pines RX y Tx para que puedan ser usados
como puerto serial. Además configura el puerto con una velocidad estandar de 9600
Baudios por segundo. El puerto en Arduino Serial se configura con los siguientes
parametros:

 Velocidad: 9600 BAUD.


 8 bits de datos.
 1 bits de parada.
 0 bits de paridad.
ENVIAR CARACTERES POR EL PUERTO SERIAL EN
ARDUINO
Para enviar caracteres por el puerto serial en Arduino, se requiere que el puerto este
inicializado. Una vez que el puerto este listo, se pueden usar cualquiera de estas dos
funciones:
 Serial.print( ).
 Serial.println( ).
EJEMPLO ENVIAR DATOS SERIALES:
En este ejemplo, se enviara la cadena de caracteres: «Hola Mundo!». Por ejemplo, dicha
cadena consta de los siguientes caracteres:

Si quieres ver como recibir datos seriales, o leer datos seriales te recomiendo que veas
nuestro tutorial sobre la funcion Arduino serialEvent.
Arduino serialEvent – recepción serial
asíncrona
Administrador enero 29, 2018 Arduino, Basicos generales 1 comentario
La función de Arduino serialEvent te permite recibir datos seriales de una forma parecida
a una interrupción o de forma asíncrona. Entonces está función sólo se ejecuta si existen
datos seriales en el buffer del puerto serial. La función de Arduino Serial Read se usa para
leer a estos datos seriales. Es importante mencionar que esta función no es asíncrona
propiamente, sino que es ejecutada en cada iteración de la función loop. Por lo tanto si la
función loop demora mucho, así será la demora de la recepción de los datos seriales. Esta
función no es compatible con el Arduino Esplora, Leonardo y Micro.
SINTAXIS DE LA FUNCIÓN DE ARDUINO
SERIALEVENT
La sintaxis de la función de Arduino serialEvent sólo requiere definir a la función void
serialEvent() después de la función loop. Entonces dentro de esta función se puede agregar
las instrucciones para la lectura de los datos seriales mediante el serial read. El propósito de
esta función es ejecutarse al inicio de cada iteración para la función loop. Esto se realizará
hasta encontrar un carácter del código ascii que nos permita saber si ya se termino la
transmisión. Para dicho evento, normalmente se utilizan a los caracteres \n o \r.

void serialEvent( ){

//Código para la recepción serial.

CÓDIGO DE EJEMPLO PARA LA FUNCIÓN DE


ARDUINO SERIALEVENT
El siguiente código de ejemplo, permite la recepción de caracteres numéricos y su posterior
conversión a una variable entera. Recordemos que el puerto serial esta «transportando»
bytes en forma de caracteres en código ascii. Entonces, una vez que hemos terminado de
recibir una línea que contenga exclusivamente numeros ascii, se procede a convertirlo a una
variable entera, (int) mediante la función de Arduino atoi.
String cadenaCharEntrada = "";

char vectorChar[20];

bool finCadena = false;

void setup() {

Serial.begin(115200);

cadenaCharEntrada.reserve(20);

void loop() {

if(finCadena){ //Se termino de recibir una cadena completa

finCadena = false; //Permitimos volver a recibir otra cadena

cadenaCharEntrada.toCharArray(vectorChar,20); //Convertimos el string a un vectorChar

int numeroEntero = atoi(vectorChar); //Convertimos un vectorChar a un entero

Serial.print("Se recibio ");

Serial.println(numeroEntero);

cadenaCharEntrada = "";

void serialEvent(){ //Recepción de datos Seriales

while (Serial.available()) { //Si existen datos seriales, leer a todos

char CaracterEntrada = Serial.read(); //Leer 1 byte serial recibido

cadenaCharEntrada += CaracterEntrada; //Agregar el nuevo char a una cadena String

if (CaracterEntrada == '\n') { //Si el char o byte recibido es un fin de linea, activa la bandera
finCadena = true; //Si la bandera finCadena = 1, entonces la transmision esta
completa

}
ELEMENTOS DEL CÓDIGO DE EJEMPLO
El código del ejemplo anterior contiene ciertas instrucciones que permiten la recepción
serial.

 String. La variable del tipo string permite guardar una cadena de caracteres. Por ejemplo,
un string es como un vector de variables char, pero con mejoras.
 bool. Es una variable que puede guardar dos estados, false o true. Esta variable se utiliza
para saber si ya recibió o no el fin de la línea de transmisión.
 Serial.available(). Está función te regresa verdadero, si hay dos sin leer en el buffer de
entrada serial. También regresa falso si ya no hay información para leer.
 Serial.read(). Lee un byte a la vez de puerto serial. Es por eso que se utiliza en conjunto con
el while(serial.avialable()) para leer todos y cada uno de los bytes recibidos.
 .toChayArray() . Permite convertir un string a un vector de caracteres.
 atoi. Esta función nos permite convertir un vector de caracteres a una variable entera.
OTRAS FUNCIONES DE ARDUINO
 Arduino serial Read.
 analogWrite.
 Arduino String.
 pinMode.
 Arduino Round.
 millis.
 Arduino atoi.

También podría gustarte