Activa JavaScript para disfrutar de los vídeos de la Mediateca.
LCD I2C en Arduíno - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
LCD I2C en Arduíno
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
A5
00:05:34
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
00:08:06
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
1.
00:10:40
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
el
00:16:52
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
00:17:22
el
00:17:23
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:
- 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
- Ciclo formativo de grado básico
- 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