Activa JavaScript para disfrutar de los vídeos de la Mediateca.
LCD I2C y Servo 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 y Servo en Arduíno
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:
- 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:
- 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