Saltar navegación

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

Código esquema caja fuerte Arduino. Vídeo 2 - 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 19 de diciembre de 2025 por Francisco J. G.

22 visualizaciones

Código esquema caja fuerte Arduino. Vídeo 2

Descargar la transcripción

bien abrir que es beige lo indicará primero en el cursor lo limpia le ponen la posición 0 0 00:00:00
pone acceso ok y luego se pone en la columna 1 fila 0 esa fila 1 columna 0 y dice que está 00:00:14
abriendo y luego le comunica al servo o le escribe un valor de ángulo abierto de 180 grados que es 00:00:22
que abre la caja fuerte. De 80, 180 no, es de 90 grados. Aquí lo tenemos. Abre la caja fuerte, 00:00:29
pausaría la ejecución 3.000 milisegundos, o sea, 3 segundos, y a continuación volvería a poner 00:00:38
ángulo cerrado. Posteriormente se produciría también una pausa de medio segundo y limpiaría 00:00:45
la entrada a cero para que de nuevo y me llamaría a mostrar intro para que de nuevo nos pusiera lo 00:00:57
que hacía la función intro que era poner introduce clave y las cuatro líneas o sea que realmente lo 00:01:03
que hace es que abre la caja fuerte luego la cierra y llama a mostrar intro para que podamos 00:01:10
introducir de nuevo la clave vamos a verlo es bueno no lo podemos ver bueno lo tengo 00:01:16
no lo podemos ver hasta que tengamos todo el código 00:01:23
luego veréis 00:01:28
cuando 00:01:29
como llama esta función a abrir 00:01:30
que será cuando 00:01:33
porque hace todas estas cosas cuando llama la función a abrir 00:01:35
cuando metemos la contraseña y coincide 00:01:38
con la real 00:01:40
que nos queda de añadir 00:01:40
nos queda de añadir otra función 00:01:43
o método que ahora que vamos a crear 00:01:46
también, todos estos que estamos haciendo aquí 00:01:47
los estamos creando nosotros, que sería 00:01:49
error clave 00:01:51
ahora también es un sin parámetros de entrada y con un parámetro de salida voy que lo que hace 00:01:52
error clave es cuando nos equivocamos hemos metido una contraseña que nos hemos equivocado que lo que 00:01:58
hace limpia el lcd lo pone en el fila columna 0 pone clave incorrecta y luego pasa a la fila 1 00:02:03
columna 0 y le dice y reintenta de nuevo le da un retardo de dos segundos limpia la entrada y 00:02:10
a continuación llama otra vez a mostrar intro para que para que vuelva para aparecer el introduce 00:02:17
clave y las cuatro líneas para que podamos efectuar de nuevo la entrada de la contraseña. 00:02:22
Y esta sería la función error clave. Esta sería la función cuando no acertamos la contraseña. 00:02:27
Bien, si veis algo nos falta en el programa, lo último que nos faltaría sería la parte del 00:02:44
Boil Loop. Necesitamos que esté recorriendo continuamente el programa para que podamos 00:02:51
introducir los datos 00:02:56
de la contraseña y que 00:02:59
el programa funcione 00:03:01
ese void loop es el que se va a repetir de manera 00:03:02
infinitas veces, que estaría aquí 00:03:05
y ya sabéis como es este void loop 00:03:06
y lo único que hemos añadido aquí 00:03:09
ha sido una serie de condicionales 00:03:10
que aparecen aquí, ¿qué harán estos 00:03:13
condicionales? estos condicionales lo que van a 00:03:15
es testear o ver 00:03:17
que tecla 00:03:19
sea 00:03:20
se ha clickeado. ¿Para qué? Si nosotros tenemos que saber cuándo se va a dar a teclas de disco, 00:03:22
que sería borrar, cuándo dar a esta otra tecla, que sería la de confirmar y luego ver si se ha 00:03:32
dado pues alguna de las teclas de 0 a 9. Entonces lo primero que hace es comprobar si una tecla con 00:03:41
un if, comprueba si tecla 00:03:50
se ha cliqueado 00:03:52
o ha habido un evento sobre alguna tecla 00:03:57
para recoger ese evento del cliqueo sobre la tecla 00:04:01
se tiene que lograr a través de una función 00:04:05
o método de keypad, del objeto keypad, y ese se llama getKey 00:04:10
getKey lo que nos va a hacer, vamos a poner aquí 00:04:13
El método getKey del objeto keypad nos permite saber si una tecla ha sido cliqueada o pulsada. 00:04:16
vamos a poner y nos devuelve en dicha tecla el carácter de dicha tecla aquí si nosotros le damos 00:04:52
al 1 al recoger esto es un boi loop está haciendo continuamente entonces por tanto en cuanto 00:05:14
efectuemos imaginaos doy a la tecla 0 cuando doy a la tecla 0 lo que va a hacer es que va a recoger 00:05:19
ese ese evento y lo que nos va a devolver es un valor de esa tecla que sería el cero que lo 00:05:25
cogería como un chat entonces si tecla existe o sea si ha sido pulsada alguna de las teclas lo 00:05:32
que hace es que el primero bueno escribe en el monitor en serie tanto un encafeado de tecla y 00:05:38
luego que tecla sea pulsado y entonces a continuación entra en otro condicional ese 00:05:45
condicional que nos va a comparar es si esa tecla es el asterisco entonces hay que borrar y como se 00:05:51
borraba pues pone la entrada vacía se borra todo lo que hay en la entrada se llama otra vez a 00:05:56
mostrar intro acordaos es el principio que aparecía contraseña y luego las cuatro líneas y se sale de 00:06:02
este de este de este condicional vale que sucede si la tecla que se pulsa es esta otra pues está 00:06:10
la de confirmar entonces si al confirmar en entrada vamos a colocar lo que vale la clave la clave 00:06:18
será 00:06:26
la clave será 1234 en todo lo que hace es que en la entrada que está añadiendo si 00:06:29
cuando nosotros pulsamos cada una de las teclas esta entrada que se está generando aquí o los 00:06:36
cuatro caracteres que necesitamos añadir lo va a comprobar si coincide con la clave 00:06:42
Esta era una constante que valía 1, 2, 3, 4. Si coincide, llama al método abrir. Acordaos, abrir, hacía aceso OK y decía abriendo y además giraba el servo. Si no, pues entonces llamará al otro método, que es error clave, que nos dirá, limpiará, nos dirá que la clave es incorrecta y nos pondrá un mensaje de, oye, reinténtalo. 00:06:47
el último 00:07:13
sería este que aparece aquí 00:07:18
en el que nos va a comprobar 00:07:20
si aceptamos solo números 00:07:21
para la clave, entonces nos dirá 00:07:24
si esa tecla 00:07:26
o sea el carácter que está recogiendo 00:07:28
del evento, si es 00:07:30
mayor o igual que 0 00:07:32
o menor o igual que 9 00:07:34
entonces nos dice si entrada 00:07:35
la longitud de la entrada 00:07:37
esto es una función que se llama length 00:07:39
en el que nos va a determinar el número de caracteres o la longitud de caracteres que tiene la entrada. 00:07:41
Acordaos que entrada es un string. Ese string va a tener que tener una longitud menor de 4 00:07:49
porque son 4 los dígitos que tenemos que añadir. 00:07:56
Entonces, entrada nos va a decir si la longitud de entrada es menor que 4, 00:07:58
entonces nos va a permitir añadir a la entrada una tecla más o un carácter más. 00:08:04
y así sucesivamente, cuando sea 4 00:08:10
parará, no podrá 00:08:13
y la entrada se quedará 00:08:15
con los caracteres que hayan quedado 00:08:17
ahora lo haremos con un ejemplo 00:08:19
entonces 00:08:20
si eso se cumple 00:08:22
al mismo tiempo lo que está haciendo es que 00:08:24
en la línea de abajo del 00:08:29
LCD, o sea en esta de aquí 00:08:31
le está añadiendo un for 00:08:33
un bucle for que va a ir de 00:08:37
de 0 a 4. 00:08:38
Lo que va a hacer es que va 00:08:40
a coger 00:08:42
cada uno de los caracteres que vaya 00:08:43
añadiendo y en vez de poner 00:08:48
el carácter que es, lo que va a hacer 00:08:51
es ir poniendo asteriscos para que 00:08:53
no se vea la contrasiña 00:08:54
que estamos aportando. 00:08:56
Bien, nos está diciendo 00:08:59
que si 00:09:00
va a recorrer el for de i igual a 0 00:09:04
a i menor que 4, o sea que lo va a recorrer 4 veces. 00:09:06
Está diciendo, si la entrada o la longitud de entrada, 00:09:10
si este i es menor que la longitud de entrada, 00:09:15
pues entonces que imprima el asterisco. 00:09:19
Como tiene que imprimir, lo que queremos es que imprima 4 asteriscos, 00:09:21
porque son 4 los caracteres que tienen que aparecer, 00:09:25
pues lo que va a hacer este condicional es comprobar que sea menor que 4. 00:09:27
Entonces irá mirando si esa entrada todavía tiene dos caracteres, pues entonces permitirá poner más asteriscos. Así hasta los cuatro. Si no, el resto del LCD lo dejará con los guiones, indicando que no se ha escrito ningún carácter más. 00:09:33
Vamos a poner un ejemplo que sería, imaginaos que yo arranco, vamos a ir un poco a poco 00:09:53
Yo arranco, le doy a ejecutar, bueno primero le voy a dar a ejecutar para que veáis como funciona 00:10:02
Vale, nos dice que aquí hay un error 00:10:08
Primero vamos a comprobar que el LCD es el correcto 00:10:11
Bien, tenéis que cliquear el LCD y ver que es el PCF 8564 00:10:19
y que y que al configurar el lcd que lo teníamos aquí sea la dirección 0 x 27 y eso está correcto 00:10:24
vale que tenemos en cuanto al resto del código nos falta esto estaría bien tiene algunos errores 00:10:38
valores, ¿vale? Vamos a comprobar que los pines están correctos, 13, 12, 11 y 10 y que el otro son 7, 6, 5 y 4, ¿vale? Vamos a verlo desde el principio, ¿vale? Los includes están perfectos, el objeto líquido cristal también está bien, luego tenemos el servo, también está bien y las dos constantes de filas y columnas, ¿bien? 00:11:02
La matriz de teclas, filas y columnas está también bien y tenemos los pines de filas y columnas que también está bien. Tenemos el keypad que hemos hecho un mapeo, está correcto y tenemos tanto la clave, que era 1, 2, 3, 4, como la entrada que estaba vacía. 00:11:31
Bien, luego tenemos el mostrar intro, que está bien, y tenemos el setup, el setup sería, vale, está también bien, y inicialización servo, aquí tenemos, que lo he puesto sin llaves, vale, lo estaba cogiendo, yo quería que estuviera esto comentado, yo creo que eso está bien ya, a ver. 00:11:52
Bien, si veis, lo que hace el programa es que lo primero que hace, ¿qué es? Voy a ir paso a paso. 00:12:26
Lo primero que hace es, el programa entra y coge las librerías. 00:12:32
Bien, crea un objeto LCD, crea estas constantes, estas son las dos constantes, 00:12:37
crea la matriz de filas y también los dos arrays de filas y columnas para crear el keypad y crea el servo. 00:12:43
Ya tenemos el objeto servo, tenemos el objeto LCD y tenemos el objeto keypad. 00:12:50
crea la clave y la entrada vacía 00:12:55
entonces lo primero que hace 00:12:58
se va al setup, o sea que vendrá 00:12:59
hasta este setup, cuando viene al setup 00:13:01
que es lo que hace, limpia 00:13:04
el LCD y le pone 00:13:05
pues el que, le introduce clave y las cuatro 00:13:08
líneas, y a continuación 00:13:10
llama al método mostrar intro 00:13:11
y esto que es lo que hace 00:13:14
bueno 00:13:15
miento 00:13:16
lo que hace al principio 00:13:18
es muy rápido y no se ve, vamos a ponerle 00:13:21
porque es LCD OK y arrancando. Vamos a ponerle aquí, porque no da tiempo a verlo, 00:13:24
vamos a poner aquí un delay para que nos dé tiempo a verlo. 00:13:32
Vamos a poner una pausa de dos segundos y veis ahora cómo aparece. 00:13:37
Entonces lo primero que hace es en el setup, lo primero que hace es LCD OK, arrancando. 00:13:43
Y a continuación, cuando llama al método mostrar intro dentro del setup, 00:13:49
Como solo lo leo una vez, cuando termine aquí se acabó el setup. 00:13:54
Llama a mostrar intro y entonces muestra la introducción. 00:13:58
Introduce clave y las cuatro líneas. 00:14:00
¿Veis? Este método y este método ya están, ha llegado ya a ellos. 00:14:01
A continuación, nosotros nos vamos al keypad para ir introduciendo clave. 00:14:07
Vamos a hacer el recorrido de la clave real. 00:14:14
Si yo le pongo un 1, ¿veis? ¿Qué es lo que ha hecho? 00:14:16
Al poner un 1, él lo que hace ahora a continuación, se salta el método de abrir, se salta el método de error clave y lo único que va a leer es el loop. 00:14:20
Entonces lo primero que hace es recoge el evento, como el loop está repitiéndose infinitas veces, está todo el tiempo recogiendo los eventos que ocurran en el keypad. 00:14:29
Yo lo que he hecho es darle al 0, entonces aquí lo ha recogido y aquí tecla ahora vale 0. 00:14:40
entonces nos dice, si tecla, o sea, si existe 00:14:45
alguna de las que ha tocado, existe carácter porque es 0 00:14:48
ya lo he puesto yo, entonces pone 00:14:51
esto sería en el monitor, que seguramente que ha puesto, veis 00:14:53
tecla 1 00:14:57
que sería, yo he dado al 0 o al 1 00:14:59
a ver, vamos a ver 00:15:04
vamos a poner 8, vale 00:15:09
el 7 y el 4 00:15:16
Lo vamos a confirmar y nos dará clave incorrecta. Vamos a poner 1. Vale, está correcto. Bien, entonces, ¿qué es lo que sucede? Yo lo primero que he hecho es, vamos a suponer que hemos dado al 1. Hemos dado al 1 y ¿qué es lo que hace? Lo que hace es que nos dice si tecla es asterisco, que no lo es, se lo salta. Si tecla es a esta otra, que no lo es, se lo salta. Y ahora dice, si tecla es mayor que 0 o menor que 9, que lo es, porque es un 1, o sea que está comprendido, es un valor numérico. 00:15:19
entonces entran en el siguiente condicional 00:15:48
y que es lo que hace, si la longitud de entrada 00:15:50
es menor que 4, es menor que 4 00:15:52
porque el valor ahora mismo 00:15:54
de la entrada es de 0, lo que hace es que 00:15:56
añade tecla, o sea 00:15:58
añade ese 1, se lo añade 00:16:00
a la entrada, ahora que vale la entrada 00:16:02
la entrada aquí valdrá 00:16:04
bueno, la entrada valdrá 1 00:16:07
que es lo que 00:16:11
hace, se va a 00:16:12
la segunda fila 00:16:14
Y en la posición indicada recorre con un for esa longitud y nos pone un asterisco en la longitud adecuada. En el resto le añade guiones. ¿Cómo lo comprueba? Como la entrada hemos dicho que el valor es 1, entonces le comprueba el que si i es menor que 4, que lo es, escribe un asterisco. 00:16:16
Pero ¿cuándo entrará aquí? Primero empezará con el valor de i igual a cero. ¿Cero es menor que cuatro? Sí, asterisco. ¿Qué sucederá cuando la entrada solo tenga un valor? Cuando la entrada solo tenga un valor, escribirá el asterisco en la posición. 00:16:40
si tuviera dos, escribiría dos asteriscos 00:17:00
y el resto lo seguirá escribiendo 00:17:02
con guiones 00:17:04
vamos a añadir otro número 00:17:05
que sea el 2 y que ha hecho ahora 00:17:08
va a comprobar, recoge 00:17:10
el evento, lo mete en tecla, si tecla 00:17:12
existe, que sí, que es un 2, nos sacará 00:17:14
la tecla 2, que aparece aquí 00:17:16
con el monitor y comparará 00:17:18
el asterisco, no es asterisco, no es esta 00:17:20
tampoco, sino que es un número, sería esta 00:17:22
y ahí dice, si la longitud de entrada es menor que 00:17:24
4, es menor que 4, porque entrada 00:17:26
Ahora que vale, valdría 1, 2. Le añade, bueno, valdría 1. Ahora lo que está haciendo es que en entrada le está añadiendo el valor de 2. Y ahora que tenemos en entrada, entrada valdrá 1, 2. Recordad que esto es lo mismo que entrada igual a entrada más tecla. 00:17:28
Bien, a continuación recorre toda la entrada para ver dónde poner asteriscos y dónde guiones 00:17:44
y volverá otra vez cuando yo le dé otro, hará lo mismo, le añadirá a la entrada el valor de 3 00:17:51
y cuando yo le ponga el 4, le añadirá el 4. 00:17:56
¿Veis? Ahora ya pone 4 asteriscos porque la entrada ya tiene 4 valores, 00:18:01
entonces no tendrá que poner ningún guión. 00:18:06
Bien, una vez que ya tenemos los 4 valores, cuando le demos a la tecla de confirmar 00:18:10
que será esta que lo que hará si le damos a la tecla de confirmar y llamará a abrir si coincide 00:18:13
si no coincide le llamará a error clave donde venía eso viene cuando comprueba que hemos dado 00:18:21
a la tecla de confirmar que es esta y yo le voy a confirmar veis y se hace eso que y abriendo y 00:18:27
abre la el servo porque porque ha llamado a la función a abrir porque porque ha comparado cuando 00:18:34
hemos dado este carácter de confirmar ha comparado la entrada que teníamos con 00:18:41
que con la clave como coinciden llama el método de abrir cuando no coincide que 00:18:44
haría llama error clave vamos a poner otra clave 1 4 4 4 y cuando le dé a 00:18:49
confirmar no llamaría veis clave incorrecta reintenta habría llamado la 00:18:54
función error clave y habría puesto clave incorrecta reintenta 00:18:59
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:
22
Fecha:
19 de diciembre de 2025 - 23:52
Visibilidad:
Público
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
19′ 16″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
420.81 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid