Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

LCD I2C en Arduíno - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 16 de diciembre de 2025 por Francisco J. G.

2 visualizaciones

LCD I2C en Arduíno

Descargar la transcripción

Buenos días, tenemos otro esquema aquí, con otro elemento que sería el LCD I2C. 00:00:04
Acordaos que había dos tipos de LCDs, aquí tengo todos, y tendría el LCD, el que hemos visto en el vídeo anterior, el 16x2, 00:00:13
que necesitaba una estructura un poco más compleja, con más conexiones, y el LCD 16x2 I2C. 00:00:25
Este LCD 16x2 con interfaz I2C 00:00:33
Este tipo de pantalla permite mostrar texto igual que el anterior 00:00:39
Valores de sensores, de mensajes 00:00:46
Y se llama 16x2 porque puede mostrar 16 caracteres por línea 00:00:49
Y tiene dos líneas 00:00:52
En eso es exactamente igual al LCD 16x2 que habíamos visto clásico 00:00:54
La gran ventaja de este modelo es que utiliza un protocolo I2C 00:00:59
lo que nos permite reducir mucho el número de cables necesarios para conectarlo 00:01:04
Mientras que un LCD tradicional necesita 16 pines 00:01:07
el LCD I2C, veis aquí, necesita nada más que 4 pines 00:01:11
y lo cual reduce bastante la complejidad 00:01:16
¿Pero qué es I2C y por qué se usa en el LCD? 00:01:20
El protocolo I2C es un sistema de comunicación que usa solo dos líneas 00:01:23
Una sería la SIDA, que transporta los datos, y otra es la SCL, que transporta la señal de reloj. 00:01:28
Arduino actúa como maestro y la pantalla LCD como esclavo. 00:01:36
Entonces, cada dispositivo I2C tiene una dirección y Arduino se comunica con él usando esa dirección. 00:01:42
Gracias al I2C se reduce el número de cables, el circuito queda más limpio 00:01:49
y se pueden conectar varios dispositivos al mismo bus. 00:01:54
Bien, en cuanto a los pins que tiene, hemos dicho que son cuatro y tendríamos el GND, que lógicamente se conecta al GND de Arduino, el AVCC, que sería exactamente igual que el anterior en el que se conecta a alimentación, el SDA, que sería el Serial Data, es la línea por la que se envían los datos, y luego tenemos el Serial Clock, que sería, por eso es SCL, que es la línea de reloj que sincroniza la comunicación. 00:01:58
En Arduino se conecta SSCL al pin analógico A5 00:02:25
Y el SDA se conecta siempre al pin analógico A4 00:02:33
Entonces, por tanto, el cableado que va a ser 00:02:38
Este irá a GND, este irá a alimentación 00:02:40
Y luego estos dos van a los pines A4 y A5 00:02:43
Acordaros que era un pin analógico 00:02:46
Pero no es que actúe como pin analógico 00:02:49
Sino que estos dos pines también tienen la funcionalidad 00:02:51
no solo de utilizarse como pines analógicos, sino también tienen la funcionalidad de poderse conectar a una placa LCD I2C a través de estos dos pines. 00:02:54
Bien, si veis el montaje, es mucho más sencillo. Lo vamos a hacer ahora desde cero. Aquí he añadido en el código, luego lo explicaré, pues nada más que aparezca un texto. 00:03:05
Si yo le doy a ejecutar, nos aparece el texto que había puesto aquí. Veis aquí que tiene igual los 16 columnas por dos filas, en el que por tanto como máximo se pueden visualizar de una sola vez 32 caracteres en total. 00:03:21
bien, vamos a generar un nuevo proyecto 00:03:36
le damos aquí 00:03:39
y vamos a generar 00:03:40
a crear un nuevo circuito 00:03:43
en el montaje 00:03:46
voy a ir más rápido porque es más sencillo 00:03:47
tenemos la placa de Arduino 00:03:49
tenemos 00:03:51
la placa de pruebas 00:03:52
y vamos primero a generar 00:03:55
una entrada 00:03:57
al GND 00:03:59
le ponemos de color negro 00:04:00
y una alimentación 00:04:02
que sería hasta aquí 00:04:03
hasta los 5 voltios 00:04:05
este le ponemos de color rojo 00:04:07
y ya lo tendríamos puesto 00:04:16
bien, hemos dicho que 00:04:19
esto si 00:04:20
utilizáramos la placa de pruebas 00:04:24
vamos a hacerlo mejor sin la placa de pruebas 00:04:26
vamos a ver, vamos a hacerlo sin la placa de pruebas 00:04:29
que no sería necesario porque no tenemos ningún componente más 00:04:31
vamos a hacerlo más sencillo 00:04:33
vamos a añadir directamente 00:04:35
el LCD 00:04:37
y 12, veis que es más pequeñito 00:04:37
y que tiene solo esos 4 pines 00:04:45
vamos a conectarlo directamente sin necesidad 00:04:47
de placa 00:04:49
unimos al 00:04:50
lo ponemos de color negro 00:04:55
y luego la alimentación iba al 00:05:01
5 voltios 00:05:04
vale, lo ponemos de color rojo 00:05:07
y ahora hemos dicho que había 00:05:11
estos dos pines se conectaban 00:05:13
al analógico A4 y A5 00:05:15
el A4 se conectaba a los datos 00:05:17
lo vamos a poner aquí 00:05:19
lo vamos a poner de color verde 00:05:21
para diferenciarlo de los otros dos 00:05:26
y luego tenemos que 00:05:28
él es el de 00:05:30
serial clock y va al 00:05:32
lo ponemos al A5 y tendríamos ya 00:05:35
conectado las cuatro conexiones 00:05:38
veis que es muchísimo más sencillo y la funcionalidad 00:05:40
es la misma que la que proporcionaba 00:05:42
un LCD clásico, un display LCD 00:05:44
16x2 clásico 00:05:46
a continuación vamos a 00:05:48
realizar o a programar 00:05:50
esto, porque yo os le doy a inicializar 00:05:53
y pasaba igual que vimos la otra vez 00:05:54
no hace absolutamente nada, entonces nos vamos 00:05:56
al código 00:05:58
y vamos a borrar estas líneas de aquí 00:05:59
necesitará también 00:06:04
una librería 00:06:06
para 00:06:06
una librería que tendremos que importar 00:06:07
con include, acordaos 00:06:10
y lo vamos a 00:06:12
concretamente para este tipo de 00:06:13
para este tipo de dispositivo 00:06:16
necesita de dos librerías 00:06:21
entonces necesitaríamos dos includes 00:06:22
el include en la primera librería 00:06:24
entre ángulos era wire 00:06:26
ahora explicaré lo que es 00:06:30
siempre son archivos cabecera 00:06:32
por tanto irán con el .h 00:06:34
y la segunda librería sería liquid cristal 00:06:36
que sería exactamente la que vimos en el otro ejemplo 00:06:43
Include 00:06:45
Cristal.h 00:06:47
Bien, ya tenemos las dos 00:06:58
librerías que vamos a necesitar. Luego lo explico 00:07:03
más detalladamente. Ahora lo que vamos a 00:07:04
generar es un objeto líquido cristal, igual que sucedía 00:07:06
con el otro 00:07:09
LCD 00:07:11
y este líquido cristal ahora 00:07:12
se le denomina 00:07:16
I2C 00:07:17
¿Veis la diferencia? 00:07:21
ahora para crear un objeto de tipo 00:07:22
liquid crystal es 00:07:24
un tipo liquid crystal 00:07:26
y 2D, le vamos a llamar 00:07:28
exactamente igual LCD al objeto 00:07:30
y ahora no tiene 00:07:32
esos 6 parámetros que tenía el anterior 00:07:34
ahora solo tiene 3 parámetros 00:07:36
un parámetro sería 00:07:38
lo voy a poner aquí 00:07:40
que sería el 35 00:07:43
luego diré que es esto 00:07:44
y luego los dos 00:07:45
y luego el 16 00:07:47
y 2 00:07:50
luego diré lo que son 00:07:52
estos tres parámetros 00:07:54
bien, cuando nosotros 00:07:55
seleccionamos, bueno, si lo vemos 00:07:58
ahora mismo, si veis cuando selecciono 00:08:00
el LCD I2C 00:08:02
nos permite dos tipos de 00:08:03
de placa, uno sería el MCP 00:08:07
23008 y otro que es el que más 00:08:10
utiliza, que es el PCF 00:08:12
8574, este al darle 00:08:14
veis que tiene diferentes 00:08:16
direcciones, vamos a elegir la dirección 00:08:18
35, por eso 00:08:20
cuando yo pongo el código 00:08:22
el primer parámetro es esa dirección 00:08:24
la 35 que voy a utilizar 00:08:26
los otros dos parámetros sencillamente son 00:08:27
las 16 columnas y las dos filas 00:08:29
y ya lo tendríamos hecho 00:08:32
a continuación vamos a generar una cadena también 00:08:33
por ejemplo string como sucedía en el otro ejemplo 00:08:36
y le vamos a poner un mensaje 00:08:38
a este mensaje lo ponemos entre comillas dobles 00:08:39
le vamos a llamar 00:08:42
hola 00:08:44
hola 00:08:44
lcd 00:08:46
y 2c 00:08:50
ya tendríamos el mensaje 00:08:52
acordado el punto y coma siempre 00:08:54
y luego nos vamos al setup 00:08:56
vamos a configurar el LCD 00:08:59
igual que sucedía con el otro 00:09:00
ahora en vez de no utilizar begin para inicializarlo 00:09:01
utiliza el método init 00:09:04
init sin parámetros 00:09:05
a continuación el LCD 00:09:08
necesitamos 00:09:10
que 00:09:11
encienda la retroalimentación 00:09:12
la luz de atrás 00:09:16
aquí es necesario a través de un método que hay que poner 00:09:17
que es el backlight 00:09:20
ght 00:09:21
y con esto nos encendería 00:09:22
lo que sería el led de la pantalla 00:09:25
bien, a continuación 00:09:28
utilizaríamos el objeto lcd 00:09:30
también para poner el cursor 00:09:32
igual que sucedía en el otro 00:09:34
y le pondríamos 00:09:35
en el 00 que es donde queremos que empiece 00:09:38
en columna 0, fila 0 00:09:40
y luego imprimimos el mensaje 00:09:42
acordaos que era print 00:09:44
lcd.print 00:09:46
y ponemos aquí 00:09:47
dentro la variable mensaje que contiene 00:09:49
hola desde lcd y 2d 00:09:51
ponemos aquí mensaje 00:09:54
bien, ya tenemos 00:09:56
configurado 00:09:58
pero como queremos también que 00:09:59
la segunda fila 00:10:01
sea ocupada por otro texto, vamos a poner 00:10:02
lcd set cursor 00:10:05
y vamos a pasar 00:10:08
a la segunda fila 00:10:09
por tanto, para poner la segunda fila 00:10:14
tenemos que poner primero la columna, que es la 0, y luego la fila, que sería la 1. 00:10:16
Esta es la 0, esta es la 1. 00:10:21
Entonces ahora estaríamos en este cuadradito para que lo escriba aquí. 00:10:24
Una vez puesto el cursor, lo imprimimos también. 00:10:29
LCD.print y ponemos el texto que queremos añadir. 00:10:31
Vamos a poner Arduino 1, por ejemplo. 00:10:36
Bien, ya tenemos lo que es en el setup todo configurado. 00:10:42
Ahora lo que queremos, como queremos que el texto se mueva a lo largo de la pantalla, tenemos que poner un scroll display, igual que sucedía con el caso del otro LCD clásico. 00:10:45
Entonces le ponemos LCD, punto, scroll, acordaros, display, que lo he puesto mal, display left, por ejemplo, vamos a ponerlo, y le damos punto y coma. 00:10:57
Este método de un objeto líquido cristal y 2C no tiene parámetros. 00:11:16
Dejamos que se ejecute cada cuarto de segundo, igual que sucedía en el otro ejemplo, y lo ponemos cada 250 milisegundos. 00:11:22
Si todo lo he escrito de manera correcta debería funcionar. 00:11:32
Vamos a darle y vemos que hemos puesto algo inválido a la cabecera. 00:11:36
Vamos a ver dónde he puesto algo mal. 00:11:42
el liquid crystal vale estaría bien bien el el include que hay que añadir lógicamente si 00:11:46
esta es una es una es una lcd y 2c tendrá otro tipo de librería esa librería la veis se llama 00:12:00
liquid crystal y 2c que hemos creado un objeto llamado lcd y aquí no lo he puesto bien porque 00:12:09
que la librería es liquidcrystal-i2c, vale, i2c, y ahora debería, ahora sí debería funcionar, 00:12:14
le damos y tiene otro error, vale, liquidcrystal-i2c, está correcto, 00:12:24
ah, que nos falta aquí el ángulo, vale, ahora sí, sigue habiendo errores, vamos a ver, 00:12:32
nos dice que la cabecera también está mal 00:12:42
esto está bien 00:12:44
vale, vamos a ver 00:12:46
liquid crystal 00:12:52
I2C 00:12:53
esto está correcto, es la 35 00:12:56
16.2 00:12:58
vamos a ver si nos hemos equivocado en algo aquí 00:13:00
a ver, las llaves 00:13:11
están bien, el LCD, scroll 00:13:13
display left 00:13:15
correcto, esto está bien 00:13:17
luego el set cursor, muy bien 00:13:18
0,1, lcd print, correcto, lcd print mensaje, correcto, lcd set cursor, también correcto, el backlight está también correcto, pero lo he puesto en mayúsculas, vamos a repasar ya todo por si acaso, el lcd init está bien, setup y está todo correcto, vamos a ver ahora, vale, ahora sí ya funciona, vamos a quitar el código para que se vea y vemos que se está moviendo el texto de 00:13:20
izquierda a derecha y con las dos líneas que habíamos puesto anteriormente veis arriba hola 00:13:52
desde lcd y 2c y abajo arduino 1 comentó el código igual que sucedía con el otro que hicimos aquí 00:13:58
Y añadimos, dimos con Include las librerías. 00:14:09
Aquí creamos un objeto Liquid Cristal I2C. 00:14:19
I2C. Ese objeto tiene tres parámetros que hemos visto que era la dirección, 35, del que estamos utilizando, 16 columnas y dos files. 00:14:40
Aquí creamos una cadena, creamos una cadena de tipo string, pasamos al setup y en el setup inicializamos, inicializamos el objeto LCD, ¿vale? 00:14:51
A continuación, iniciamos la pantalla y encendemos la luz. 00:15:21
Encendemos la luz LED que tiene la propia pantalla. 00:15:27
Aquí situamos el cursor en la fila 0 y columna 0, imprimimos en la pantalla el texto mensaje, 00:15:37
aquí cogeríamos a través del cursor 00:16:07
y situamos el cursor a continuación 00:16:12
el cursor en la fila 00:16:15
sería la fila 0 y columna 1 00:16:20
y por último aquí imprimimos 00:16:23
en la pantalla 00:16:26
arduino 1 00:16:31
y con esto pues nos quedaría nada más que 00:16:39
el método scrollDisplayLeft 00:16:43
que lo que estamos haciendo es que 00:16:48
se mueva 00:16:49
texto 00:16:53
de derecha 00:16:55
a izquierda 00:16:57
bien, ya tendríamos 00:17:00
nos quedaría el comentario aquí también 00:17:03
que sería 00:17:05
retrasa 00:17:05
la ejecución 00:17:09
o pausala 00:17:12
un cuarto de segundo 00:17:12
y con esto tendríamos todo el texto 00:17:17
que hemos puesto para hacer funcionar 00:17:20
el LCD y 2D 00:17:23
le damos otra vez a ejecutar 00:17:28
después de todos los comentarios 00:17:30
y vemos que funciona 00:17:31
Idioma/s:
es
Materias:
Informática
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Francisco José González Constanza
Subido por:
Francisco J. G.
Licencia:
Todos los derechos reservados
Visualizaciones:
2
Fecha:
16 de diciembre de 2025 - 9:35
Visibilidad:
Público
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
17′ 43″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
1.71

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid