Activa JavaScript para disfrutar de los vídeos de la Mediateca.
LCD I2C y sensor distancia 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 sensor distancia en arduíno
Hola a todos, tengo aquí otro esquema de otro circuito en el que he añadido dos elementos.
00:00:05
Un elemento sería el sensor de distancia, el HCSR04 que está aquí, que ya vimos,
00:00:12
y tenemos también un LCD I2C que tenía cuatro pines nada más.
00:00:20
En cuanto a la idea del proyecto es sencilla, el sensor mide cuántos centímetros hay hasta un objeto
00:00:26
y el LCD lo enseña en tiempo real.
00:00:33
Este montaje es muy útil como base para proyectos más avanzados,
00:00:36
por ejemplo, una barra automática, un medidor de aparcamiento o una alarma de proximidad.
00:00:40
Bien, con respecto al LCD, teníamos los cuatro pines, acordaos,
00:00:44
el GND que iba a masa, el VCC que iba a alimentación y luego el SDA que era los datos
00:00:49
y el SCL que lo que era la señal o el serial clock,
00:00:54
que iban a los pines A4 y A5 analógicos
00:00:59
Y con esto ya tendríamos este componente. En cuanto al sensor, HCSR04, recordaros que mide distancia por ultrasonidos, entonces este sensor lo que va a tener es una, cuando detecte un objeto en esta posición a una determinada distancia, pues hará una determinada cosa.
00:01:02
El mide distancia por ultrasonidos y lo que tiene es que este sensor envía un pulso al pin que sería este, que sería el trigger, le veis, aquí aparece como trig, que sería el trigger, y el sensor lo que hará es que cuando reciba esa señal, el sensor emite ultrasonidos.
00:01:23
entonces cuando el eco vuelve
00:01:44
cuando hay un objeto aquí
00:01:47
que ese ultrasonido choca contra el objeto
00:01:48
ese sonido rebotará
00:01:51
y volverá otra vez al sensor
00:01:54
entonces cuando lo detectará
00:01:55
a través de lo que es el eco
00:01:58
se activará
00:02:00
entonces se vuelve el pin eco
00:02:01
se activa durante ese tiempo
00:02:04
cuando lo recibe
00:02:06
entonces Arduino mide ese tiempo
00:02:07
y lo convierte en centímetros
00:02:09
La distancia la obtiene porque la señal que va hasta el objeto recibe una señal de vuelta o eco y en cuanto calcula esa distancia.
00:02:11
¿Cómo la calcula? Pues la calcula en centímetros. Esa distancia sería la duración, lo que tarda, por 0,034 partido de 2. ¿Qué son 0,034? Pues son los 0,034 centímetros por microsegundo, que es la velocidad del sonido aproximadamente. Por eso utiliza esa constante, que sería 0,034.
00:02:28
Es una fórmula fácil de física clásica en la que distancia es igual a velocidad por tiempo. Por tanto, la velocidad sería en esos 0.034 centímetros por microsegundo, que es la velocidad del sonido aproximada, y la divide entre dos porque el sonido va y vuelve.
00:02:50
eso sería lo que va a hacer
00:03:10
si le damos a ejecutar
00:03:14
veis en un principio nos aparece sensor distancia
00:03:16
iniciando y nos dice la distancia que hay aproximada
00:03:20
que serían 66 centímetros
00:03:23
si yo selecciono el sensor
00:03:25
moviendo este circulito verde
00:03:28
nos sacará distintas distancias
00:03:30
en función del objeto donde esté localizado
00:03:35
Y esto sería el circuito que vamos a realizar. Lo vamos a realizar desde cero. Vamos a detener la simulación y vamos a crear un nuevo circuito. Le damos a crear, le decimos circuito y vamos sacando cada uno de los elementos del circuito.
00:03:37
En un principio necesitaremos la placa de Arduino, necesitamos la placa de pruebas que la vamos a poner aquí, vamos a ponerla más abajo y vamos a necesitar también un LCD. Vamos a poner todos los elementos y buscamos el LCD.
00:03:56
Queremos el LCD I2C, que es el que tiene menos pines
00:04:12
Una vez que lo tenemos aquí, vamos a hacer las conexiones
00:04:16
Vamos rápido en cuanto a esto
00:04:19
Lo que hacemos es que alimentamos la placa de pruebas
00:04:21
Primero con una línea de alimentación de 5 voltios
00:04:24
Que iría hasta la placa de pruebas
00:04:32
Y alimentaría esta línea
00:04:37
Vamos a ponerla de color rojo
00:04:39
luego tenemos el gnd para alimentar la otra línea de la placa de pruebas que sería la de aquí bien
00:04:42
ya la tenemos y la ponemos de color negro bien una vez que ya están alimentadas a través y hemos
00:04:52
cerrado el circuito con la placa de pruebas ya podemos derivar líneas desde aquí a cada uno de
00:04:59
los componentes que tenemos vamos a bajarlo un poco y vamos a primero a crear primero el gnd
00:05:04
que el GND iría aquí
00:05:11
a esta línea
00:05:16
y la de alimentación del LCD
00:05:24
que iría a la línea roja.
00:05:33
Esta la vamos a poner de color rojo
00:05:38
y ya tendríamos esas dos líneas alimentadas.
00:05:39
Nos quedaría el SDA y el SCL.
00:05:42
Acordaos, el SCL iba al pin 5
00:05:44
para que no se crucen más líneas
00:05:47
vamos a poner el SDA primero, que iría, bueno, no va a quedar junto, pero bueno, va a ir
00:05:51
al 4, vamos a ponerlo de color verde, y el SCL, que iría al 5. Vamos a crear otro punto
00:06:02
aquí, para que quede un poquito mejor. Y ya tendríamos lo que es toda la placa de
00:06:14
LCD y 2D. Ahora, a continuación, tendríamos que sacar el sensor. Vamos a por él, que estaría aquí.
00:06:25
Vamos a coger este. Y igual, tenemos, por un lado, tenemos la alimentación o potencia que tendrá que ir.
00:06:41
Vamos a hacerlo de tal manera que nos quede un poquito ordenado. Iría hasta la línea de alimentación,
00:06:51
que ya lo hemos puesto ahí, la vamos a poner de color rojo
00:07:03
para que lo identifiquemos
00:07:05
y el GND
00:07:07
que iría
00:07:08
a la otra línea de 0 voltios
00:07:10
que sería esta de aquí
00:07:17
la ponemos
00:07:18
y la ponemos de color negro
00:07:20
bien, ya lo tenemos, ahora lo único que nos queda
00:07:21
es tanto el trigger
00:07:24
como el eco que iban a dos pines
00:07:26
vamos a poner este por ejemplo
00:07:28
al pin número
00:07:30
3
00:07:31
le ponemos de color verde
00:07:34
y este otro que iría al pin número 4
00:07:35
y con esto ya tendríamos todo lo que es el montaje del LCD unido al sensor
00:07:41
bien, vamos a pasar a lo que es la programación
00:07:54
entonces vamos a crear todo el código necesario para que esto funcione
00:07:57
entonces nos vamos al código, quitamos todo esto
00:08:04
y para que el vídeo no sea excesivamente largo
00:08:11
primero voy copiando y pegando
00:08:21
ya tengo las líneas y las voy explicando
00:08:24
entonces esto era igual que en el LCD
00:08:28
teníamos las dos librerías que necesitábamos incluir
00:08:31
que eran estas dos, que eran tanto Wire como Liquid Crystal y 2C
00:08:34
la creación del objeto Liquid Crystal y 2C
00:08:38
que sería aquí
00:08:44
vale, acordaos que era el 35
00:08:47
la dirección y luego
00:08:52
de 16 por 2, vamos a seleccionar el mismo
00:08:54
y le vamos a poner el
00:08:56
igual que aparecía en el
00:08:58
vídeo anterior, bien
00:09:01
ya estaría configurado eso
00:09:02
y pasaríamos ahora a lo que es
00:09:04
la
00:09:06
el
00:09:07
lo que sería el disparo del sensor
00:09:08
Bien, entonces primero vamos a generar dos constantes en C++ para generar una constante se hace con define, vamos a generarlo aquí y lo que vamos a hacer es que estamos generando la constante trig con define en el que va a albergar un valor de 9.
00:09:12
La otra constante sería eco y que albergaría un valor de 10, que van a ser, concretamente en nuestro caso, no lo he puesto en el 9 y en el 10, sino que lo he puesto en el 3 y en el 4.
00:09:33
¿Lo veis? El 3 es el trigger y el pin 4 es el eco.
00:09:47
Entonces el trigger es un 3 y el eco es un 4.
00:09:55
A continuación necesitamos medir la distancia y lo vamos a hacer a través de un método
00:10:00
Un método en C++, nada más que un método al que vamos a llamar
00:10:10
Y que ejecutará una serie de comandos o de líneas dentro de ese método
00:10:14
Y luego devolverá un valor
00:10:18
El método que va a ser es una función
00:10:20
Esta función va a ser esta que aparece aquí
00:10:24
La ponemos aquí como si fuera un método más
00:10:27
tenemos aquí, si veis aquí tenemos dos funciones
00:10:31
que devolvían setup y loop
00:10:34
no devolvían ningún valor
00:10:36
tenían void
00:10:38
y ahora vamos a generar aquí otra función que sería esta de aquí
00:10:39
en el que lo que vais a ver
00:10:42
es que devuelve un valor
00:10:44
long, un valor decimal
00:10:46
le hemos llamado
00:10:48
a la función, le llamamos medir distancia
00:10:50
en centímetros y
00:10:52
dentro vamos a tener
00:10:54
primero le estamos indicando
00:10:55
un digital write en el que
00:10:58
le estamos diciendo que al trigger le confiera un valor bajo, un valor de cero.
00:11:00
Después retrase la ejecución dos microsegundos
00:11:07
y después de esos dos microsegundos le confiere desde el pin del trigger,
00:11:13
que era el pin 3, le está diciendo que le proporciona un valor alto.
00:11:21
¿Para qué? Para que envíe la onda de ultrasonidos.
00:11:25
Una vez que se le ha enviado el trigger o ha sido lanzada, le espera 10 microsegundos.
00:11:31
Veis que este delay es diferente al que teníamos anteriormente.
00:11:36
El delay sin microseconds lo medía en milisegundos.
00:11:39
Esto al ponerle aquí este nombre, este otro método, lo que lo va a hacer es microsegundos.
00:11:46
Queremos que sea un tiempo muy corto.
00:11:51
después de otros 10 microsegundos lo que hace es que
00:11:54
DigitalWrite le vamos a conferir
00:11:57
al valor del trigger
00:11:59
le ponemos a 0
00:12:00
después tenemos la lectura
00:12:02
del eco, la lectura del eco se hace
00:12:05
a través de, lo vimos en
00:12:07
en el vídeo en el que
00:12:09
explicábamos el sensor, le decimos
00:12:11
que
00:12:13
reciba el eco
00:12:14
al chocar contra el objeto
00:12:16
reciba un
00:12:18
valor de high y lo
00:12:21
metemos con esta función pulseIn, lo metemos dentro de una variable que se llama duración.
00:12:23
A continuación, convertimos esa duración en distancia, ¿cómo? Pues con la fórmula que he dicho anteriormente.
00:12:31
Esta sería 0.034, que sería la velocidad aproximada del sonido, partido de 2 porque hay una ida y una vuelta.
00:12:39
Esta operación nos daría el valor de la distancia y luego retorna o devuelve el valor de distancia que ha obtenido a través de esta función que devuelve un valor log.
00:12:46
Bien, ya tendríamos esto. Después en el setup tendríamos que configurar tanto el sensor como el LCD.
00:12:59
En el sensor y el LCD, pues igual que poníamos el pin y estamos diciendo que el pin mode del trigger, del trig, acordaos, la constante trig está diciendo que es un pin 3, pues que el trig sea un valor de salida.
00:13:07
mientras que el otro pin que sería el pin mode el eco tenga un valor de entrada luego explicaré
00:13:29
cuando explique y ponga los comentarios del código lo explicaré más detalladamente el eco tiene que
00:13:45
ser de entrada porque es la señal que vamos a recibir de cuando choca con el objeto el trigger
00:13:50
es una señal de salida porque está enviando un señal de sonidos hacia el objeto por eso este
00:13:55
de salida y este es de entrada. Bien, a continuación pasamos al LCD, que bueno, esto ya lo vimos,
00:14:01
LCD.init, que lo inicializamos. Después de inicializarlo le ponemos el backlight para
00:14:10
que encienda el LED y luego pasamos al mensaje inicial. El mensaje inicial sería LCD.init
00:14:20
el objeto LCD que imprima, primero habrá que localizar el cursor, set cursor,
00:14:34
y ponemos en el 00, 0, 0.
00:14:42
Posteriormente imprimimos en el LCD con print, vamos a poner hc-sr04,
00:14:50
0.4 que sería el sensor
00:15:06
más
00:15:08
LCD
00:15:09
y lo tendríamos ya
00:15:11
a continuación
00:15:16
seleccionamos otra parte del cursor
00:15:17
que sería con set
00:15:19
cursor
00:15:21
y pondríamos el que
00:15:23
tendríamos ahora
00:15:25
queremos que sea
00:15:27
la columna 0
00:15:29
pero la fila 1
00:15:32
bien
00:15:34
Le ponemos que aquí vamos a poner que ponga el texto imprimir inicializando y ya tendríamos esto.
00:15:35
Ponemos un retraso de, vamos a poner un segundo y medio y por último le decimos que después de ese tiempo nos borre la pantalla.
00:15:54
Clear nos dice que nos borre la pantalla, el método clear.
00:16:11
Bien, ¿qué nos quedaría?
00:16:16
Nos quedaría ahora lo que es programar lo que sería el loop.
00:16:17
El loop, vamos a, aquí desde el loop vamos a llamar a la distancia
00:16:22
y lo tiene que hacer, necesitamos un método que esté continuamente recorriéndose
00:16:28
y que mejor que el loop que se está recorriendo
00:16:33
mientras está en ejecución de manera infinitas veces.
00:16:36
Por tanto, tenemos que ir recogiendo la distancia que va determinando el sensor.
00:16:39
Eso lo vamos a coger en un valor long, de tipo long, y le vamos a poner distancia.
00:16:44
¿Qué vamos a recoger aquí? Pues el valor que obtenemos del método medir distancia en centímetros.
00:16:52
Por tanto, habrá que llamar al método medir distancia en centímetros.
00:16:58
Es así, ¿no? Bien. Una vez que ya hemos llamado, a continuación queremos que en el LCD aparezca el valor que hemos obtenido al llamar al método medir distancia a centímetros.
00:17:08
Entonces, lcd, le damos a set cursor, y lo ponemos en la fila y columna 0.
00:17:24
Una vez que hemos localizado el cursor, imprimimos, vamos a poner que la distancia,
00:17:36
Vamos a poner en texto dist, dos puntos, espacio y comillas. Esa va a ser la distancia.
00:17:47
Entonces, si la distancia, vamos a introducir aquí un if. El if nos va a decir que si la distancia es menos que cero o la distancia es mayor de 400, pues que no ponga, vamos a ponerle unos guiones en el que de tal manera que no nos ponga ningún valor.
00:17:57
Si no, nos va a poner exactamente el valor de la distancia que se determina.
00:18:15
Entonces tendremos que utilizar un condicional que será if en el que la condición que vamos a meter dentro del condicional va a ser
00:18:21
Si distancia es menor o igual a cero o distancia es mayor que 400,
00:18:28
entonces lo que vamos a decir es que en el LCD
00:18:47
en el LCD imprima cuatro rayas
00:18:53
que nos va a indicar que esos valores no nos interesan
00:19:10
sería así
00:19:15
ahora ponemos el ELSE
00:19:17
si no, entonces
00:19:25
que nos escriba, vamos a poner esto mejor identado
00:19:28
ahí. Pondremos que el LCD lo que va a imprimir es la distancia que nos está dando el método al que
00:19:32
hemos llamado, medir distancia en centímetros. Entonces meteremos aquí la variable distancia.
00:19:42
Y a continuación de esto le pondremos unos centímetros para que aparezca la distancia del
00:19:50
número con el centímetro, con las unidades a su derecha. Entonces pondremos LCD.print
00:19:56
y aquí pondremos centímetros y un espacio. Cerramos la llave del ELSE y tendríamos ya
00:20:03
así. Bien, ya tenemos este condicional ya creado. ¿Qué sucede ahora? Esto sería lo que es la primera
00:20:18
línea, que sería la de la distancia. Si yo quiero ahora, vamos a copiar esto y le vamos a poner otra
00:20:30
a través del condicionar. Pero esta va a ser ahora la segunda línea. Ahora en la segunda
00:20:43
línea, esta sería la primera línea, vamos a ponerla como línea 1, que nos va a aparecer
00:20:47
la distancia, mientras que esto va a ser la línea 2, la de debajo, que sería línea
00:21:01
2 y que sería estado por rangos. Ahora veremos qué es eso. Bien, ¿qué vamos a sustituirlo? Como lo
00:21:09
vamos a sustituir en la segunda línea, estamos sustituyéndolo en la 01. ¿Y aquí qué vamos a
00:21:23
poner? Vamos a poner esto. Todavía no vamos a imprimir nada. Lo borramos. Y ahora lo que vamos
00:21:29
a decir es que si distancia es mayor que 0 y distancia es menor de 20, este va a ser
00:21:37
el rango, le vamos a decir que imprima muy cerca, ¿vale? Vamos a dejarle aquí un espacio,
00:22:03
vale
00:22:19
si no
00:22:20
si no está entre 0 y 20
00:22:22
vamos a poner un
00:22:25
el set if
00:22:26
si no, si
00:22:28
ponemos otra condición, que será
00:22:30
si distancia
00:22:32
es mayor
00:22:33
o igual
00:22:37
vamos a poner
00:22:39
20
00:22:42
y distancia
00:22:43
es menor
00:22:46
o igual
00:22:52
a 100
00:22:53
fijaos lo que estamos haciendo
00:22:55
estamos poniendo que si distancia está entre 0 y 20
00:22:57
que ponga muy cerca
00:23:00
pero si ahora esta distancia está entre 20 y 100
00:23:01
entonces que imprima
00:23:04
distancia ok
00:23:06
ok
00:23:08
vale
00:23:15
por último nos quedaría
00:23:20
esto vamos a borrarlo
00:23:22
el último else
00:23:24
que sería else
00:23:28
abrimos llave
00:23:30
y aquí le vamos a decir que es LCD, imprima, lejos, cerramos la llave y después le dejamos que lo haga cada, vamos a poner 200 milisegundos para que lo vaya actualizando.
00:23:32
bien, entonces que hemos hecho
00:24:09
en la primera línea hemos dicho
00:24:11
esto está mal
00:24:12
que coja en la variable distancia
00:24:13
y de tipo long
00:24:17
reciba
00:24:19
el valor medir distancia de centímetros
00:24:21
que venía de esta función
00:24:23
de aquí arriba
00:24:25
una vez que lo recoge
00:24:26
el cursor 00, o sea aquí
00:24:28
va a poner distance dist
00:24:30
y luego si la distancia está
00:24:32
es menor que 0 o mayor que 400
00:24:34
o sea rangos que no nos van a importar
00:24:36
que le ponga las rayitas.
00:24:38
Si no, si está entre 0 y 400,
00:24:42
pues entonces que imprima distancia con el valor en centímetros.
00:24:49
Eso sería en la línea de arriba.
00:24:52
En la línea de abajo sería listado por rangos.
00:24:54
Ahora, en la línea de abajo, en la fila 1, lo colocaría aquí.
00:24:56
Si distancia es mayor que 0 y distancia es menor que 20,
00:25:00
o sea, una distancia sería muy cercana,
00:25:03
Entonces pone ahí, aquí pondrá muy cerca. Si eso no se cumple y le pregunta si distancia ahora está entre 20 y entre 100. Si está entre 20 y 100 es lo que nosotros queremos y por tanto pondrá distancia, ok. Y si ni siquiera está entre 0 y 20 y tampoco entre 20 y 100, entonces será que será mayor que 100 y entonces tendremos que poner que está lejos.
00:25:05
Y esto sería todo el código de este proyecto. Vamos a ver si lo he codificado bien. Vamos a darle a ejecutar, a simular y vamos a ver.
00:25:30
Nos dice que inválida cabecera. A ver, tenemos algo mal. Vamos a repasar todo. Esto estaría bien. El liquid crystal I2C LCD 35162. Bien.
00:25:47
Luego hemos definido dos constantes, que serían Trigger 3 y Echo 4, que están bien. El Trigger era esta y el Echo es la 4. Luego hemos dicho definir distancia en centímetros.
00:26:01
Hemos dicho digital write, hemos dicho que el trigger sea low, delay microseconds también estaría bien. ¿Qué más? Sí, está correcto. Esto está bien. ¿Qué tenemos más? La distancia, eso está bien. Pin mode de salida, de entrada, LCD, backlight, que también está bien.
00:26:15
Vale, hemos vuelto a poner esto en mayúscula y vamos a ver si era eso.
00:26:45
Vale, dice que hay más errores, lcd setCursor, está perfecto, esto también, setCursor01, print, delay y clear, borrar.
00:26:53
Vale, en cuanto a la distancia hemos llamado al método o a la función medir distancia en centímetro, vamos a ver si le he puesto el mismo nombre, medir distancia en centímetro, correcto.
00:27:03
y hemos puesto ese excursor, lcd print
00:27:13
y correcto, si distancia menor o igual que cero
00:27:16
o distancia, distancia
00:27:19
es mayor que 400, perfecto, esto también
00:27:21
y está correcto, todas las llaves están bien
00:27:24
vale, si veis aquí
00:27:30
no hemos cerrado la llave
00:27:34
vale, a ver, me falta
00:27:36
cerrar la llave del condición
00:27:40
no, estaría cerrada aquí, tendríamos que haberla cerrada
00:27:43
aquí. No hemos cerrado esa llave. Eso estaba mal. Aquí está bien. Aquí tampoco lo hemos
00:27:47
cerrado. Y yo creo que está todo bien. Vamos a darle. Y ya nos funciona. ¿Veis? Lo que
00:27:54
está haciendo ahora mismo está midiendo una distancia de 112 centímetros. Ahí hemos
00:28:11
puesto que era lejos de los intervalos o rangos que eran OK. Era en cuanto la distancia
00:28:15
estaba entre 20 y 100. Vamos al sensor y lo vamos a bajar un poco para que nos dé una distancia más
00:28:20
adecuada. Veis, lo bajamos de 100 y ya nos está poniendo que la distancia es ok. ¿Por qué? Porque
00:28:30
está entre 20 y 100. Si bajamos de 20, como hemos visto anteriormente, nos tendría que salir las
00:28:34
rayas indicando que no queremos esos valores y que aparece que está muy cerca. Si el valor que
00:28:40
habíamos puesto para las cuatro líneas que había puesto aquí era cuando era menor que
00:28:47
cero o mayor que 400. Entonces vamos a hacer que el sensor llegue a 400. Vamos a seleccionarla
00:28:55
aquí y vamos a hacer que llegue a 400 para que nos salgan las rayas. O incluso sería
00:29:03
más fácil porque no llega a llegar a cero. Si llegamos a cero centímetros nos tendrá
00:29:11
que aparecer aquí. Cuando se sale de aquí ya no mide el valor de cero o sea que el propio
00:29:16
sensor no habría hecho falta ni siquiera poner el valor de cero. Pero si por ejemplo
00:29:31
si ponemos que sea por ejemplo menor de 10, vamos a cambiarlo en el código, vamos a ver
00:29:37
si se aparecen las rayas vamos a poner que éstas sean cuando sean menor que 10 y vamos a poner que
00:29:42
por ejemplo sea cuando sea mayor de 250 le damos a ejecutar ahora y veremos que cuándo
00:29:48
está por debajo de 10 está inicializando cuando veis aparecen las cuatro rayitas cuando están por
00:30:00
encima también de 250 vamos a poner 250 aquí nos aparecería también 248 vamos a un poquito más
00:30:06
y veis que nos aparecen las líneas en el que ya no esos valores no nos interesa y esto sería todo
00:30:16
todo lo que es el esquema de este circuito. Voy a comentar el código como último paso
00:30:24
del vídeo para que repasemos todas las partes del código. Entonces, lo primero que hacíamos
00:30:43
aquí, en el include, era
00:30:50
incluimos
00:30:51
librerías
00:30:55
tanto wire como
00:30:57
liquid, cristal y 2C
00:31:02
aquí creamos
00:31:04
un objeto
00:31:05
liquid
00:31:09
cristal
00:31:14
y 2C
00:31:17
bien, esto es la definición
00:31:20
en C++ de dos constantes. Definimos dos constantes. La primera se llamaría trick, que albergaría
00:31:23
un valor de 3 y la segunda sería echo, que albergaría un valor de 4. A continuación
00:31:35
Creamos la función MedirDistanciaEnCentímetros.
00:31:41
La función devuelve un valor de tipo log, que es un valor decimal de gran tamaño.
00:31:57
A continuación, el disparo del sensor, que es el DigitalWrite, ya está puesto aquí
00:32:17
Entonces lo que hace es que el trigger, que es el que va a enviar la señal de ultrasonidos
00:32:22
En un principio lo pone a un valor de 0 y luego tras 2 microsegundos lo pone a un valor de 1
00:32:28
Lo veis aquí, el disparo del sensor serían estas tres líneas
00:32:34
Luego retrasa, esto sería para la ejecución o la pausa 10 microsegundos y a continuación
00:32:39
apaga el
00:32:59
le da
00:33:01
al
00:33:04
trigger
00:33:07
un
00:33:09
valor
00:33:13
de 0 voltios
00:33:15
lo que está haciendo aquí es que
00:33:17
lo está parando el trigger
00:33:21
solo queremos que envíe una señal
00:33:23
envíe en un principio
00:33:25
cuando se ha llamado este método
00:33:28
envíe una señal
00:33:29
el trigger y después
00:33:30
deje de enviarlas.
00:33:32
Ese trigger recibirá luego una señal de eco
00:33:34
cuando rebote en el objeto al que ha lanzado.
00:33:38
Aquí es la lectura del eco, ¿veis?
00:33:41
El eco ahora, como veremos aquí abajo,
00:33:43
en la definición de los pin mode,
00:33:48
el eco es una señal de entrada,
00:33:49
el trigger es una señal de salida.
00:33:51
El trigger es el que ha salido un valor de 1
00:33:53
y luego a los 10 microsegundos
00:33:57
ha dejado de enviar esa señal.
00:34:00
En cuanto aquí a la lectura del eco, con el pulse in, pues claro que eco es un pin de entrada, estamos leyendo lo que no vamos a recibir o la señal de ultrasonido es que vamos a recibir y por eso le pone un valor de 1 y lo mete dentro de duración.
00:34:02
A continuación, ha convertido esa duración o ese tiempo en microsegundos.
00:34:16
Esta es una fórmula que ya nos da el propio sensor.
00:34:21
Esto sería velocidad igual, perdón, espacio igual a velocidad por tiempo.
00:34:28
Fórmula física en la que la velocidad sería la duración, que hemos determinado,
00:34:39
que lo multiplica además por 0.04
00:34:43
que es la velocidad de sonido partido de 2
00:34:46
porque hay dos señales, una de salida y una de entrada
00:34:47
y luego retorna
00:34:49
esta función que una vez que hemos obtenido
00:34:51
el valor de la distancia
00:34:53
generado por ese trigger
00:34:54
lanzado y ese echo recibido
00:34:57
en una fracción de segundo
00:34:59
lo mete
00:35:02
en la variable de distancia que ya tiene un valor
00:35:04
de long y lo devuelve en la función
00:35:05
devuelve cuando ya esa función
00:35:07
sea llamada, medir distancia de centímetro
00:35:09
recibirá esa distancia
00:35:11
En el setup tenemos aquí la definición de los pines, tanto el trigger como el eco, en el que uno, el trigger lógicamente tiene que ser de salida porque sale en busca del objeto y el eco tiene que ser de entrada, tenemos que leer lo que rebota esa señal de tres sonidos que vamos a recibir.
00:35:13
Luego aquí tenemos los parámetros de configuración del LCD
00:35:38
En el que tenemos el init, que ya lo vimos, cómo se inicializa, cómo se enciende la luz
00:35:48
Después colocamos el cursor en la opción 00 o sea aquí
00:35:53
Y le imprime esta cadena
00:35:58
Después lo posiciona en el 01, que sería aquí, y pone inicializando
00:36:00
espera un segundo y medio
00:36:06
y luego limpia toda la pantalla
00:36:08
porque después en el loop
00:36:09
tiene que ir apareciendo la distancia
00:36:11
que está midiendo el sensor
00:36:12
esto lo va a realizar solo una vez
00:36:15
entonces aparecerá al principio
00:36:18
cuando le demos a ejecutar
00:36:19
y luego desaparecerá
00:36:20
y aparecerá ya lo que queremos
00:36:21
por último tenemos el loop
00:36:23
que tiene dos líneas
00:36:26
una primera línea es la de arriba
00:36:27
que sigue a la distancia
00:36:29
entonces al llamar al método
00:36:30
medir distancia en centímetros
00:36:32
o sea la función de arriba
00:36:33
está recibiendo la distancia que está creando este método.
00:36:34
Lo recibe con un valor log y luego lo que hace aquí
00:36:41
es que sitúa el cursor en el 00 otra vez aquí y le pone dist.
00:36:44
A continuación aquí tenemos una serie de condicionales,
00:36:53
este condicional que sería este de aquí,
00:36:57
en el que lo que nos va a medir es condicional que comprueba que la distancia esté entre 10 y 250 centímetros.
00:36:59
Si distancia es menor que 0 o mayor de 250, entonces imprime las cuatro rayitas.
00:37:28
seguido de centímetros. ¿Qué sucede si no? Si no es así, imprime la distancia. Esto lo va a hacer
00:38:01
¿Cuándo? Cuando sea un valor entre 10 y 250 centímetros.
00:38:26
A continuación pasamos a la línea 2, que es el estado por rangos.
00:38:53
Va a hacer lo mismo, ahora se sitúa en esta otra línea, con el SD aquí,
00:38:57
y después tenemos otro condicional, en el que ahora la distancia,
00:39:01
lo que nos va a medir es que, vamos a coger esto de aquí,
00:39:04
Y en este nudo condicional, el condicional comprueba si la distancia está entre, entre si la distancia es menor que 0 y, perdón, mayor que 0, que 0 y menor de 20.
00:39:08
Si la distancia es menor que 0 y mayor de 20, pues imprimirá el que muy cerca.
00:39:39
Bien, luego tenemos otro, el else, el else if, nos está diciendo si no, si esto no se cumple,
00:40:00
si el valor no está comprendido entre el valor entre 0 y 20, entonces comprueba otro condicional,
00:40:09
¿Qué sucede si ahora está entre 20 y 100?
00:40:15
Si está entre 20 y 100, pues que imprime distancia, ok.
00:40:22
Y si no cumple ninguno de los dos, si ya pasamos a este último else,
00:40:43
y ya no cumple ni el intervalo de 0 a 20, ni el de 20 a 100, nos dirá que está lejos.
00:40:48
Y esto sería todo el código. Ya nos hemos metido en un ejemplo en el que necesitamos bastante más código para poder programar este ejemplo.
00:41:26
- 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:
- 5
- Fecha:
- 16 de diciembre de 2025 - 9:47
- Visibilidad:
- Público
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 41′ 49″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 3.94