Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Código esquema caja fuerte Arduino. Vídeo 2 - 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:
Código esquema caja fuerte Arduino. Vídeo 2
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
if
00:07:16
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
i,
00:09:01
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
1
00:16:05
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:
- 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:
- 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