Вы находитесь на странице: 1из 3

1

INFORME C.P. SISTEMAS EMBEBIDOS


MANEJO DE COMUNICACIÓN SERIAL I2C EN
ARDUINO
PRÁCTICA 11
Jossue Camacho
Escuela Politécnica Nacional
Facultad de Ingenierı́a Eléctrica y Electrónica
jossue.camacho@epn.edu.ec

Abstract—En el siguiente informe se establecerá una tabla I. E STABLECER UNA TABLA COMPARATIVA DE LOS
comparativa de los protocolos de comunicación revisados PROTOCOLOS DE COMUNICACI ÓN SERIAL (SPI,
UART,
durante la realización de las dos últimas prácticas y se I2C) QUE MANEJA A RDUINO U NO .
diferenciarán ventajas y desventajas del uso de protocolos de
comunicación UART frente a I2C. Protocolo Ventajas Desventajas
1. El tamaño de la trama de
Index Terms—UART, I2C, SPI, LCD. 1. Fácil de operar, bien datos está limitado a solo
documentado, ya que es 9 bits.
un método ampliamente 2. No se pueden utilizar
utilizado con muchos varios sistemas maestros y
recursos en lı́nea. esclavos.
UART 2. No se necesita señal 3. Las velocidades en baudios
de reloj. de cada UART deben estar
3. Usa un bit de paridad dentro del 10% entre
O BJETIVOS para sı́ para evitar la
poder permitir la pérdida de datos.
verificación de errores 4. Maneja velocidades de
transmisión bajas.
• Relacionar al estudiante con el uso y manejo de comu- 1. Velocidad más lenta ya
1. Tiene un recuento bajo de
que requiere resistencias
nicación serial I2C en Arduino Uno. pines señales incluso con
pull-up en lugar de
numerosos dispositivos en
• Establecer comparaciones entre los diferentes tipos de el bus.
resistencias push-pull
comunicación serial en Arduino Uno.[2] utilizadas por SPI.
2. Flexible, ya que admite
También tiene
comunicación multimaestro
un diseño de drenaje
y multiesclavo.
abierto lo que se traduce
I2C 3. Simple, ya que solo usa 2
en velocidad
cables bidireccionales para
limitada.
establecer comunicación
2. Requiere más espacio
entre múltiples dispositivos.
fı́sico
4. Adaptable ya que puede
I NTRODUCCI ÓN adaptarse a las necesidades
3. Puede volverse complejo
a medida que aumenta el
de varios dispositivos esclavos.
número
5. Soporta múltiples maestros.
de dispositivos.
1. El protocolo es simple,
Actualmente, UART, SPI e I2C son las interfaces de ya que no existe un sistema
1. Más pines están ocupados,
hardware más comúnmente usados en el desarrollo de micro- de direccionamiento esclavo
lo que significarı́a un
complicado como I2C.
controladores. Hablando de I2C especı́ficamente, se trata de lı́mite práctico
2. Es el protocolo más
para el número de dispositivos.
un protocolo de comunicación serial similar a UART, pero rápido en comparación
2. No se especifica ningún
que no se usa para la comunicación entre dispositivos y PC, con UART e I2C.
control de flujo y ningún
3. Sin bits de inicio y parada
sino se usa entre módulos y sensores. Es un bus en serie mecanismo de reconocimiento.
a diferencia de UART, lo
SPI 3. Utiliza cuatro lı́neas:
sı́ncrono de dos cables bidireccional simple y solo requiere que significa que los datos
MOSI, MISO, NCLK, NSS
dos cables para transmitir información entre los dispositivos se pueden transmitir
4. No hay forma de
continuamente
conectados al bus. Este protocolo es útil para proyectos que verificación de errores
sin interrupciones
a diferencia de UART
requieren muchas partes diferentes (por ejemplo, sensores, 4. Lı́neas MISO y MOSI
(usando bit de paridad)
pines, expansiones y controladores) trabajando juntos, ya separadas, lo que significa
5. Solo se puede tener
que los datos
que pueden conectar hasta 128 dispositivos a la placa un maestro a la vez.
se pueden transmitir y recibir
principal mientras mantienen una vı́a de comunicación clara. al mismo tiempo.

Tabla I
TABLA COMPARATIVA ENTRE EL PROTOCOLO UART, SPI E I2C[1]
2

II. E SCRIBIR VENTAJAS Y DESVENTAJAS DEL USO DE 41 B11111,


42 B11111,
LOS PROTOCOLOS DE COMUNICACI ÓN UART FRENTE A 43 B11111,
I2C. 44 B11111,
45 B11111,
A. Ventajas 46 B10110,
47 B00010,
• UART puede enviar información a distancias más 48 B00011
largas. 49 };
50 byte cabezaD[8] = {
• Permite conectar de forma rápida dos dispositivos. 51 B11111,
• No requiere mucha complejidad en el hardware. 52 B11001,
53 B10000,
• I2C es solo puede trabajar en un esquema half-duplex. 54 B00000,
• El software de I2C puede sobrecargar al procesador[1] 55 B00000,
56 B00000,
57 B00000,
58 B00000
B. Desventajas 59 };
60 byte cabezaA[8] = {
• I2C puede enviar información a tasas de bit más altas. 61 B11111,
• UART usa comunicación asincrónica, por lo que añade 62 B10111,
63 B11111,
sobrecarga a las tramas que envı́a y pierde eficiencia. 64 B11111,
• I2C puede manejar varios maestros. 65 B11100,
66 B11111,
• I2C usa acuses de recibo. 67 B11100,
• UART tiene un máximo de dispositivos que intervienen 68 B11100
69 };
en su comunicación.[1] 70 byte cabezaR[8] = {
71 B10000,
72 B11000,
III. M ODIFICAR EL PROGRAMA 3.5 DEL TRABAJO 73 B11000,
74 B11000,
PREPARATORIO DE MODO QUE EL S ÍMBOLO DIBUJADO 75 B00000,
CON FORMA DE D INOSAURIO REALICE UN 76 B10000,
77 B00000,
DESPLAZAMIENTO DE IZQUIERDA A DERECHA EN LA 78 B00000
PANTALLA LCD, SIMULANDO UNA ANIMACI ÓN . E L 79 };
80 void setup() {
ARCHIVO QUE SE GENERAR Á EN EL AULA DE 81 //Genero cada una de las celdas que conforman la figura
T INKERCAD RESPONDER Á AL SIGUIENTE NOMBRE :” 82 lcd.createChar(0, cola1);
83 lcd.createChar(1, cola2);
A PELLIDO N OMBRE I NF N11 EJE 1 G RX ”, D ÓNDE “ X ” 84 lcd.createChar(2, torsoA);
REPRESENTA EL GRUPO AL QUE PERTENECEN . 85 lcd.createChar(3, torseD);
86 lcd.createChar(4, cabezaA);
1 /* Informe 11 Cp-Sistemas Embebidos
87 lcd.createChar(5, cabezaD);
2 El siguiente codigo realiza el desplazamiento
88 lcd.createChar(6, cabezaR);
3 del simbolo "Dinosaurio" a traves de toda la
89 lcd.begin(16, 2);
4 pantalla LCD*/
90 //Los cursores indican las posiciones dentro de la matriz
16x2
5 //Autor: Jossue Camacjho
91 lcd.setCursor(0, 0);
6 #include <LiquidCrystal.h>
92 lcd.write(byte(0));
7 //Pines que se van a utilizar para el control del LCD
93 lcd.setCursor(0, 1);
8 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
94 lcd.write(byte(1));
9
10 byte cola1[8] = {
95 lcd.setCursor(1, 0);
11 B00000,
96 lcd.write(byte(2));
12 B00000,
97 lcd.setCursor(1, 1);
13 B00000,
98 lcd.write(byte(3));
14 B00000,
99 lcd.setCursor(2, 0);
15 B10000,
100 lcd.write(byte(4));
16 B10000,
101 lcd.setCursor(2, 1);
17 B11000,
102 lcd.write(byte(5));
18 B11100
103 lcd.setCursor(3, 0);
19 };
104 lcd.write(byte(6));
20 byte cola2[8] = {
105 }
21 B11111,
106
22 B11111,
107 void loop()
23 B01111,
108 {
24 B00111,
109 //Hago un lazo for para cambiar la posicion del cursor
25 B00011,
110 //y asi generar la sensacion de movimiento
26 B00011,
111 for(int i=0;i<16; i++)
27 B00010,
112 {
28 B00011
113 lcd.setCursor(i, 0);
29 };
114 lcd.write(byte(0));
30 byte torsoA[8] = {
115 lcd.setCursor(i, 1);
31 B00000,
116 lcd.write(byte(1));
32 B00001,
117 lcd.setCursor(i+1, 0);
33 B00001,
118 lcd.write(byte(2));
34 B00001,
119 lcd.setCursor(i+1, 1);
35 B00001,
120 lcd.write(byte(3));
36 B00011,
121 lcd.setCursor(i+2, 0);
37 B01111,
122 lcd.write(byte(4));
38 B11111
123 lcd.setCursor(i+2, 1);
39 };
124 lcd.write(byte(5));
40 byte torseD[8] = {
125 lcd.setCursor(i+3, 0);
3

126 lcd.write(byte(6));
127 delay(65);
128 lcd.clear();
129 }
130 }

Código 1. Código usado para poder mover al caracter creado de izquierda


a derecha

Fig. 1. Esquemático del circuito diseñado

IV. C ONCLUSIONES Y R ECOMENDACIONES


A. Conclusiones
• UART tiene las mejores caracterı́sticas para ser usado
como un protocolo punto a punto.
• I2C al igual que SPI maneja el principio de maestro
esclavo, mientras que UART no.
• La comunicación serial permite seleccionar cualquier
velocidad desde muy bajas a altas velocidades.

B. Recomendaciones
• Si se desea realizar una comunicación a través de
una distancia relativamente larga, se recomienda usar
UART.
• Si se desea que un dispositivo maestro se comunique
con varios dispositivos (por ejemplo sensores), es re-
comendable usar I2C o SPÌ.

V. R EFERENCIAS
[1]”UART vs SPI vs I2C | Difference between
UART,SPI and I2C”. https://www.rfwireless-
world.com/Terminology/UART-vs-SPI-vs-I2C.html
(accedido ago. 29, 2020).
[2] E. Tatayo, ”MANEJO DE COMUNICACIÓN SERIAL
I2C EN ARDUINO”. C.P. SISTEMAS EMBEBIDOS,
Accedido: agos. 29, 2020. [En lı́nea].

Вам также может понравиться