Saltar navegación

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

LCD I2C y Servo 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.

3 visualizaciones

LCD I2C y Servo en Arduíno

Descargar la transcripción

Buenas tardes, tengo otro esquema aquí en el que he añadido un LCD I2C, o sea, ya hemos dado el LCD I2C y tampoco voy a hablar demasiado sobre él. 00:00:04
aquí tenemos un servo y también hemos hablado del componente y ahora lo que quiero es unificar los dos 00:00:20
y hacer un esquema utilizando la lectura en vez de a través del monitor de serie de los ángulos que aparezcan en el LCD I2C 00:00:28
en cuanto a la estructura del esquema 00:00:38
si veis he añadido tanto la parte del LCD 00:00:45
a través de sus cuatro pines con la placa de arduino 00:00:54
y los tres pines del servo también con la placa de arduino 00:00:57
en resumen, ¿qué he hecho aquí? 00:01:02
si veis, primero he creado dos puentes 00:01:04
uno entre estas dos líneas de masa y otro puente entre las dos líneas de alimentación. 00:01:08
¿Para qué? Para tener las dos funcionando, porque estas dos líneas, 00:01:15
una la he alimentado a través del GND de la placa de arduino y otra a través de los 5 voltios. 00:01:19
Una vez que estas dos líneas han establecido el circuito, 5 voltios, 0 voltios, 00:01:25
se comunican a través de estos dos puentes para que pueda utilizar también las dos líneas de abajo. 00:01:30
Por lo tanto, si 5 voltios proviene de la placa de Arduino y llega hasta aquí, con el puente, me está llegando también hasta aquí para que pueda luego alimentar al servo. 00:01:35
Acordaos que el servo tenía tres pines, uno era el de potencia, entonces estamos alimentando en ese recorrido que he dicho hasta el servo y también estamos alimentando a través de aquí el VCC del LCD para que también le llegue alimentación. 00:01:45
La línea de tierra del LCD también está alimentada aquí, lo veis, se uniría a la del GND y la del GND del servo, que era esta, está alimentada a través de la línea de abajo, a través de este puente que he creado. 00:02:05
bien, ya tenemos todo el circuito 00:02:23
lo único que nos quedaría serían los dos pines del LCD y el pin del servo 00:02:26
el pin del servo va concretamente hasta el pin digital número 9 00:02:32
le veis, sería esta señal 00:02:36
y luego los dos, el SDA y el SCL del LCD y 2C 00:02:38
tanto el de datos va al pin analógico 4, eso era siempre así 00:02:43
y el serial clock iba al analógico A5 00:02:47
y con esto estaría todo el circuito 00:02:57
no hace falta que lo haga de cero 00:03:00
porque ya lo hemos dado y no tiene una gran dificultad 00:03:02
bien, una vez que está todo configurado 00:03:06
vamos a darle a ejecutar para ver qué es lo que hace 00:03:10
y estáis viendo que nos está comunicando 00:03:13
Cuando se pone a 90 grados, cuando se pone a 180 grados, cuando se pone a 0 grados, etc. 00:03:18
Y así lo hace en bucle de manera infinita. 00:03:23
Bien, vamos a ver el código en que consiste. 00:03:26
Tendríamos que el código sería todo este y vamos a verlo por partes. 00:03:28
Por lo tanto, lo voy a cortar y lo vamos a hacer desde cero. 00:03:33
Vamos a poner el código poco a poco para que no tenga que escribirlo por completo 00:03:42
y vamos explicando cada parte. 00:03:51
bien lo primero que hemos hecho es he añadido las dos librerías acordados wire y liquid cristal y 00:03:54
2c de lcd para poder utilizar sus métodos y luego hemos añadido otra librería que era servo punto h 00:04:03
que era la librería del servo esto ya lo vimos en los dos vídeos anteriores que explicaban tanto el 00:04:11
lcd como el servo a continuación lo único que hemos hecho aquí sería crear el objeto un liquid 00:04:16
cristal y 2c llamado lcd acordados en el que se creaba con tendríamos que el lcd que utilizábamos 00:04:31
Vamos a ir al PCF 8574 y la dirección era 35, por eso sería 35. 00:04:40
Y luego el tipo de LCD, que eran 16 columnas por dos filas. 00:04:45
Esos eran los tres parámetros que tenía este objeto. 00:04:50
Bien, hemos establecido ya la dirección y las 16 columnas y las dos filas. 00:04:53
A continuación, tenemos, creamos también, aparte de crear un objeto en líquido cristal, 00:04:59
tenemos que crear un objeto servo que provendrá de la librería de servo.h. 00:05:09
Ese objeto servo le vamos a llamar miservo. 00:05:13
A continuación hemos creado una variable, 00:05:17
creamos la variable de tipo entera ángulo. 00:05:23
Esta variable lo que... y la inicializamos a un valor de cero. 00:05:34
Esta variable va a alojar cada uno de los ángulos que va a aparecer en el LCD y que vamos a conferir al siervo, tanto 0, 90 como 180 grados. 00:05:37
Bien, ya tenemos hasta aquí y vamos a configurar primero el voice setup. 00:05:46
El voice setup, lo primero que hacemos es inicializar el LCD, lo vimos en el vídeo del LCD, se hacía a través del método init, 00:05:56
le inicializábamos y le conferíamos el backlight, que os acordaos que es la luz de fondo que tiene el propio LCD. 00:06:05
Estos dos métodos son de tipo Liquid Crystal y 2C y hemos utilizado los dos métodos para inicializar el LCD. 00:06:11
Por otro lado, también hemos inicializado el servo. 00:06:18
Acordaos, cuando con el objeto MiServo le aplicábamos el método Attach y para configurarle en este pin del servo 00:06:21
tenía que ir enlazado a un pin digital. 00:06:33
En este caso lo hemos enlazado al pin 9 y este es el que le va a conferir o le va a escribir, como queramos llamarlo, le va a indicar que ángulo tiene que adquirir el propio servo. 00:06:35
A continuación, una vez que ya tenemos configurado el LCD y tenemos configurado el servo, tenemos el mensaje inicial que va a aparecer en el LCD. 00:06:53
primero acordaos primero que se hacía se hacía se colocaba el cursor se utilizaba el método set 00:07:00
cursor y se le decía que se posicionará aquí hemos dicho en el 00 pues está posicionando en 00:07:06
este rectángulo de aquí una vez que se posicionaba en esa posición le decíamos que aquí que imprima 00:07:11
servo más lcd como un título que aparecerá en esta fila de aquí y a continuación pasábamos 00:07:17
el cursor con setCursor que aparecerá aquí a la posición 0 1 o sea en la columna 0 pero en la 00:07:24
fila 1 en este rectángulo y a partir de aquí va a escribir iniciando le conferimos un retraso o una 00:07:33
pausa de un segundo y medio acordaos delay era en milisegundos como son 1500 milisegundos es un 00:07:41
segundo y medio y después de esos de ese segundo y medio le decimos que limpie la pantalla si 00:07:46
ejecutamos esto de aquí nos dice que la cabecera tiene errores a ver bueno en principio lo que 00:07:53
tiene de error es que no tiene el void loop vamos a ponerlo pero es que no quería ponerlo 00:08:06
le vamos a poner vacío y luego ya lo rellenaremos vamos a darle a ejecutar 00:08:14
y algo hemos puesto mal aquí está esto bien lcd backlight voy a poner todo el código vale 00:08:20
A ver. Bien. Si le hemos llamado a la función, si yo quito todo esto y cerramos la llave, no debería dar ningún problema. Vale. ¿Veis? El loop no lo hemos rellenado. Creo que es que antes no he puesto void, pero ya estaría. 00:08:54
¿Qué tenemos? ¿Veis? Hemos incluido las librerías, hemos creado los dos objetos, servo y lcd, hemos creado una variable entera que sea ángulo inicializado a un valor de cero y hemos inicializado el lcd para que se vea la luz y se inicialice. 00:09:27
hemos unido al objeto mi servo el pin 9 y hemos inicializado poniendo primero en la fila de arriba 00:09:42
servo más lcd y el abajo iniciando y espera un segundo y medio y lo limpia veis es lo que ha 00:09:51
hecho otra vez a ejecutar y veis aparece las dos líneas que hemos indicado y cuando pasa un segundo 00:09:56
y medio lo borra si yo le pongo aquí tres segundos y medio pues vamos a pararlo lo pausará tres 00:10:02
segundos y medio y vamos viendo durante tres segundos y medio ese mensaje que aparece en el 00:10:10
lcd veis tarda más hasta que se borra con el método clear bien vamos a pasar al método loop 00:10:14
vale bien que nos queda nos quedaría el método loop y luego una función que ha creado aquí voy 00:10:24
a hablar de ella que esta es función para mostrar los datos en el lcd la función le llaman mostrar 00:10:43
estado y la va a llamar en el loop esa función que hace lo primero que hace veis limpia la pantalla 00:10:49
posiciona el cursor en la posición 00 aquí a continuación imprime ángulo servo luego pone 00:10:54
el cursor en la posición 01 que sería esta de aquí imprime el valor del ángulo de la variable 00:11:02
ángulo, el que le hayamos añadido y por último aparecerá grados, o sea que aquí aparecerá ángulo 00:11:13
servo, el valor del ángulo seguido de grados, que serían las unidades. Esa sería la función que vamos 00:11:20
a llamar en el loop. Y en el loop ¿qué tenemos? Lo primero que hace es que inicializa el ángulo a 00:11:26
cero, lo veis, aquí estaría, en el loop este lo va a repetir de manera infinitas veces, con lo cual 00:11:32
Servo más LCD iniciando solo aparece una vez, lo limpia y luego aquí en el loop va a aparecer cada uno de los grados, va a aparecer infinitas veces. 00:11:37
Y va a recorrer, si veis, aquí hay tres partes, una con 0 grados, otra con 90 grados y otra con 180 grados. 00:11:48
O sea que primero va a imprimir en LCD que el servo se ha puesto a 0 grados, luego a 90 y luego a 180. 00:11:54
como lo hacemos primero el ángulo le dice que va a tener un valor de cero a continuación en 00:12:01
el objeto de servo que se llamaba mi servo le va a escribir o le va a indicar que es un valor a 00:12:07
través del pin 9 de 0 ángulo 0 pues de 0 para que el servo se ponga en una posición de 0 grados y a 00:12:15
continuación lo que hace es llamar a mostrar estado al llamar a mostrar estado le está 00:12:24
diciendo que imprima en el LCD en todo el ángulo servo y debajo 0 grados. Una vez que ha hecho la 00:12:29
primera parte del loop a continuación espera un segundo y medio y pasaría a 90 grados que lo que 00:12:39
hace ahora ángulo le pone un valor de 90 le dice al servo que adquiera ese valor de 90 grados que 00:12:46
se posicione en 90 grados y después llama a la función mostrar estado. La función mostrar estado 00:12:52
imprime ángulo servo y 90 grados y una vez que ha terminado vuelve aquí y espera un segundo y medio 00:12:57
lo mismo para la tercera parte del loop que sería ahora la ángulo le pone un valor de 180 grados 00:13:04
a servo le dice que se ponga en una posición de 180 grados y luego llama a la función mostrar estado 00:13:12
que lo que hace es limpiar pantalla escribir en la posición 00 ángulo servo y en la posición 01 180 grados 00:13:18
espera otro segundo y medio y terminaría el loop iría otra vez al loop y lo recorrería de otra 00:13:26
otra vez pasando por 0 90 y 180 terminaría y volvería otra vez y así infinitas veces hasta 00:13:32
que paremos o detengamos la simulación y esto sería el código es un poco largo pero el código 00:13:39
no es demasiado complicado si le damos a iniciar lo que va a hacer en principio en base pone la 00:13:46
primera parte y luego ya va recorriendo con ángulo servo 0 180 0 90 180 grados 0 90 180 grados veis 00:13:55
infinidad de veces esto se corresponde con el servo porque al mismo tiempo estamos haciendo 00:14:07
que el servo pase por 0 por 90 y por 180 grados veis y conforme el servo pasa por esos tres 00:14:12
distintos grados, se lo va comunicando al LCD y van apareciendo impresos aquí. 00:14:22
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:
3
Fecha:
16 de diciembre de 2025 - 9:28
Visibilidad:
Público
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
14′ 35″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
769.25 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid