1 00:00:00,000 --> 00:00:09,179 el problema que tenemos es que todo este código que hemos efectuado es para la entrada pero no 2 00:00:09,179 --> 00:00:18,199 hemos configurado la salida vamos a ponerlo aquí ya ves como comentario esto sería la entrada 3 00:00:19,359 --> 00:00:26,480 pero me queda configurar la salida claro tenemos que tener otro otra parte en el loop en el que 4 00:00:26,480 --> 00:00:32,479 establezca cuando un vehículo sale y eso todavía no lo hemos hecho no hemos implicado ni al sensor 5 00:00:32,479 --> 00:00:36,740 de distancia ni hemos aumentado el número de plazas cuando un vehículo sale sólo hemos hecho 6 00:00:36,740 --> 00:00:48,140 la entrada entonces vamos a hacer ahora la salida y la vamos a hacer aquí después del if y vamos a 7 00:00:48,140 --> 00:00:58,450 poner la salida vamos a poner aquí salida bien qué es lo que tenemos que hacer en la salida 8 00:00:58,450 --> 00:01:09,890 Tenemos que hacer también un condicional. Tenemos que comprobar si los centímetros son menor, por ejemplo, de 30 centímetros, es que el vehículo ya no está cerca del sensor y por tanto es que se ha ido. 9 00:01:10,629 --> 00:01:16,469 Y además tenemos que comprobar, bueno, vamos a poner aquí las llaves de apertura y de cierre y ponemos la condición. 10 00:01:16,469 --> 00:01:36,629 Y ponemos, si centímetros es menor que 30 y además, acordaos que esto es un i, el número de plazas es menor que el máximo de plazas, max plazas, entonces ¿qué sucederá? 11 00:01:36,629 --> 00:01:44,379 ¿Por qué? Porque queremos ahora que incremente el número de plazas porque un vehículo se está yendo 12 00:01:44,379 --> 00:01:49,319 Comprobamos si la distancia la cumple, si es que se ha ido 13 00:01:49,319 --> 00:01:52,239 Y comprobamos que el número de plazas no sea el máximo 14 00:01:52,239 --> 00:01:55,180 Porque ahora lo que vamos a hacer es incrementar el número de plazas 15 00:01:55,180 --> 00:02:00,140 Si el número de plazas es el máximo no podemos incrementarlo 16 00:02:00,140 --> 00:02:06,579 Porque si son 5 plazas y se va el vehículo y hay 5 plazas no podemos incrementar las 6 17 00:02:06,579 --> 00:02:08,840 Porque son 5 las que tiene el parking 18 00:02:08,840 --> 00:02:31,889 Entonces, hacemos las comprobaciones, pues tendremos que hacer ahora igual los LED. Aquí tendremos que el LED verde tendremos que se activará y el rojo se apagará. 19 00:02:31,889 --> 00:02:44,310 ¿Qué más tendremos? Además tendremos que abrir de nuevo la barrera, tenemos que llamar a la función abrir y cerrar barrera, que era esta. ¿Para qué? Para que el vehículo se pueda ir. 20 00:02:44,310 --> 00:02:58,490 Lo ponemos aquí. ¿Y qué nos quedaría? Aumentar el número de plazas. Si un vehículo se va, pues tendremos que se aumenta en una plaza el número de plazas. 21 00:02:58,490 --> 00:03:23,669 A continuación hay que actualizar la pantalla porque si hemos aumentado un número de plazas hay que actualizar la pantalla con la plaza incrementada. Entonces habrá que llamar a la función mostrar pantalla y esperar un tiempo para que le dé tiempo a actualizar. Vamos a ponerle de 800 milisegundos. 22 00:03:23,669 --> 00:03:32,270 Y ya estaría. Eso sería el condicional para la salida. ¿Qué más nos quedaría? 23 00:03:32,270 --> 00:04:13,960 Pues ahora nos quedaría aquí añadir digital, nos quedaría el digital, tal, right, y digital, tal, right, que serían LED verde, vamos a ponerlo aquí, y LED rojo. 24 00:04:13,960 --> 00:04:31,560 Esto lo que va a hacer es invertir otra vez los valores. Entonces, ahora, ¿qué pondremos? En el led verde, o sea, el sáfaro verde, pondremos número plazas mayor que cero. 25 00:04:31,560 --> 00:04:40,660 Y ahora explico esto. En el led rojo pondremos número de plazas igual a cero. 26 00:04:42,240 --> 00:05:01,220 Si veis, está añadiendo aquí dos condiciones. Le está diciendo, oye, enciéndeme luz verde, el semáforo en verde o el led que hace de semáforo, me enciendes el semáforo en verde si el número de plazas es mayor que cero. 27 00:05:02,399 --> 00:05:08,100 Con esto nos está diciendo que si el número de plazas es mayor que 0, será un 1. 28 00:05:08,420 --> 00:05:13,939 Si el número de plazas es 0 o menor que 0, será un 0. 29 00:05:14,560 --> 00:05:22,060 Eso que hace al generar un 1 o un 0, hará que o lo encienda o lo apague. 30 00:05:22,639 --> 00:05:25,519 Si hay plazas, lo encenderá. Si no hay plazas, no lo encenderá. 31 00:05:25,519 --> 00:05:29,579 y el rojo hará 32 00:05:29,579 --> 00:05:33,620 solo que se encienda cuando el número de plazas sea igual a 0 33 00:05:33,620 --> 00:05:37,980 cuando el número de plazas sea igual a 0 esto recibirá un 1 y por tanto entenderá el red rojo 34 00:05:37,980 --> 00:05:42,079 si no es así estará apagado porque recibirá un 0 35 00:05:42,079 --> 00:05:45,240 y ya tendríamos, esto sería el 36 00:05:45,240 --> 00:05:49,519 hemos puesto el loop, tenemos la llave de cierre 37 00:05:49,519 --> 00:05:53,600 que no nos habíamos equivocado y tendríamos todo el código del, vamos a ver si funciona 38 00:05:53,600 --> 00:06:24,670 y se enciende, llegamos al, vamos a poner esto así y le damos al pulsador, al darle al pulsador nos va a decir que bienvenido placer 2, está abierto el, bueno vamos a detenerlo para que se vea, que no lo he visto, vale, al darle, veis, nos abre la, y nos, el vehículo entra en el parking, 39 00:06:24,670 --> 00:06:46,029 Lo actualiza y lo que hace es que disminuye las plazas en una. Vamos a hacerlo otra vez. Vamos a poner el potenciómetro un poquito menos para que veamos que el tiempo que tarda la barrera es menos. Le damos otra vez y veis que tarda un poquito menos. 40 00:06:46,990 --> 00:06:52,050 Quedaría una. Vamos a comprobar que se queda el parking y nos sale el parking lleno. 41 00:06:52,170 --> 00:06:53,310 ¿Cuándo se queda sin plazas? 42 00:06:53,589 --> 00:06:59,930 Nos queda parking lleno y aunque demos al pulsador, nos quedaría una plaza. 43 00:07:00,870 --> 00:07:02,529 ¿Veis? Aquí tenemos un error. 44 00:07:03,670 --> 00:07:05,089 Ahora lo vamos a subsanar. 45 00:07:05,089 --> 00:07:09,449 En cuanto al sensor de distancia, vamos a ver si se comprueba que funciona. 46 00:07:09,569 --> 00:07:09,990 ¿Veis? Sí. 47 00:07:11,209 --> 00:07:17,269 Sale un vehículo, cierra y pasa por parking lleno porque ha llegado un valor de menos uno. 48 00:07:17,269 --> 00:07:36,370 Pero veis que funciona. Le hacemos otra vez y quedaría las plazas en una. Todo funciona. Lo único que no nos funciona es que llega un valor negativo. No se para cuando está lleno. 49 00:07:36,370 --> 00:07:41,470 Y para eso, vamos a verlo, vamos a detenerlo y vamos a ver el código para subsanar eso. 50 00:07:43,410 --> 00:07:50,290 Bien, concretamente, el problema lo tenemos en la entrada. 51 00:07:50,970 --> 00:07:58,230 Tiene que comprobar que el parking está lleno. 52 00:07:58,230 --> 00:08:09,970 Y aunque demos al pulsador, si está el parking lleno, aunque demos al pulsador, no tendría que llamar a la función, no tendría que realizar todo esto. 53 00:08:12,129 --> 00:08:22,930 El problema que hemos tenido es que cuando estaba totalmente lleno, le hemos dado al pulsador y aún así nos ha descendido en una plaza, quedando un valor negativo. 54 00:08:22,930 --> 00:08:40,470 Pero aquí no debería poder entrar. Entonces, aquí tenemos que si está lleno haga esto, pero que si no, descienda en una unidad. Y lo que no sé es por qué ha entrado en esta parte del condicional. 55 00:08:40,470 --> 00:09:06,519 Vamos a verlo otra vez. Vamos a ejecutarlo y vamos a darle... Luego tenemos otro problema en el que debería aparecernos nada más llegar la pantalla con... quedaría más vistoso que apareciera con el número de plazas que tiene nada más llegar, sin necesidad de dar al pulsador. 56 00:09:06,519 --> 00:09:09,259 vamos a ir descendiendo 57 00:09:09,259 --> 00:09:13,809 otra 58 00:09:13,809 --> 00:09:19,059 y ahora con el parking lleno 59 00:09:19,059 --> 00:09:21,279 veis está en rojo, yo no tendría 60 00:09:21,279 --> 00:09:23,059 la posibilidad de 61 00:09:23,059 --> 00:09:25,179 aún dando al botón que esto 62 00:09:25,179 --> 00:09:26,960 se activara y veis 63 00:09:26,960 --> 00:09:28,960 se activa, vamos a eliminar eso 64 00:09:28,960 --> 00:09:30,539 y lo vamos a modificar 65 00:09:30,539 --> 00:09:33,059 y acabamos modificando que el LED 66 00:09:33,059 --> 00:09:35,039 aparezca de partida nada más entrar 67 00:09:35,039 --> 00:09:36,220 bueno eso lo podemos hacer ahora 68 00:09:36,220 --> 00:09:38,539 llamando 69 00:09:38,539 --> 00:09:41,889 claro en el 70 00:09:41,889 --> 00:09:53,179 Eso lo podemos hacer llamando a la función mostrar pantalla. 71 00:09:53,539 --> 00:10:05,759 A ver si lo voy a poner en el setup para que de inicio aparezca ya la pantalla con el bienvenidos. 72 00:10:05,919 --> 00:10:06,940 Vamos a ver si lo hace. 73 00:10:08,940 --> 00:10:10,940 Y veis, ya lo hemos mejorado. 74 00:10:10,940 --> 00:10:32,799 Hemos puesto en el setup, en la inicialización, que nos aparezca para que esté de inicio ese bienvenidos plazas 3. Bien, ahora nos queda solucionar el tema de que no puede, yo aunque dé al botón, si el parking está lleno, no tiene por qué abrir la barrera ni tampoco descender el número de plazas. 75 00:10:32,799 --> 00:11:05,230 Vamos a ver qué es lo que sucede, porque aquí dice abrir y cerrar barrera, pero solo podría entrar, veis aquí, está dando al pulsador, cuando le damos al pulsador y es un valor de 1, entra dentro, entonces si está lleno, hace esto, pero si no, pero lo que no sé es por qué, claro, si está lleno, lleno tendría que tener un valor de 1, entonces, y lleno no lo hemos actualizado. 76 00:11:06,389 --> 00:11:10,250 lleno de inicio tiene un valor de 0 77 00:11:10,250 --> 00:11:12,450 y lleno tendría 78 00:11:12,450 --> 00:11:13,610 cuando es lleno 79 00:11:13,610 --> 00:11:16,049 tendría que cambiar a un valor de 1 80 00:11:16,049 --> 00:11:16,809 cuando está lleno 81 00:11:16,809 --> 00:11:19,649 entonces nos falta aquí 82 00:11:19,649 --> 00:11:20,830 que cuando 83 00:11:20,830 --> 00:11:26,250 claro aquí es posible 84 00:11:26,250 --> 00:11:28,210 que no entre nunca aquí 85 00:11:28,210 --> 00:11:32,009 vale, entonces le vamos a poner que 86 00:11:32,009 --> 00:11:36,570 cuando sería 87 00:11:36,570 --> 00:11:38,429 si damos el pulsador comprobación 88 00:11:38,429 --> 00:11:39,470 si el parking está lleno 89 00:11:39,730 --> 00:11:46,509 Si está lleno, o sea, si tiene un valor de 1, lee esto. 90 00:11:46,769 --> 00:11:49,330 Si no, si tiene un valor de 0, leerá lo otro. 91 00:11:52,919 --> 00:11:57,419 Claro, lleno nunca acaba teniendo un valor de 1. 92 00:11:59,220 --> 00:12:01,799 Cuando sucede que es lleno, tenemos que comprobarlo. 93 00:12:01,960 --> 00:12:09,559 En algún lugar hay que comprobar que ya no hay plazas, o sea, que el número de plazas es igual a 0. 94 00:12:09,559 --> 00:12:36,590 Eso, número de plazas, tendríamos que tenerlo puesto aquí. A ver, leer distancia, abrir y cerrar barreras. Entonces habría que poner aquí, si está lleno, o sea, si es un valor de 1, lo que estamos viendo es que aquí nunca entra. 95 00:12:36,590 --> 00:13:08,759 Fijaos, voy a meter aquí un serial, serial.print y le pongo no entro, perdón, entro, entro en el if y veréis que por más que le damos al programa en el monitor en serie, vamos a darle, 96 00:13:08,759 --> 00:13:47,059 Por más que, vamos a poner el marido en serie y veréis que no va a aparecer el valor de, fijaos, voy quitando plazas, ahora mismo está entrando en estas líneas, puesto que no está lleno, sigo, y ahora cuando ya está lleno, debería entrar aquí, no aquí, y veis, no entra porque lleno nunca tiene un valor de 1, siempre tiene un valor de 0, no lo hemos hecho en el programa, veis, le doy otra vez, 97 00:13:47,059 --> 00:13:56,799 Y veis, no se imprime esa línea. Y, claro, hace que se disminuya el valor. Por lo tanto, hay que modificar eso. ¿Cómo lo vamos a hacer? 98 00:13:57,759 --> 00:14:26,279 Claro, habrá que hacerlo con una comprobación del número de plazas. Entonces, aquí, que está disminuyendo el número de plazas, lo que tenemos que hacer es poner otro condicional y poner si número de plazas es mayor de cero. 99 00:14:26,279 --> 00:14:53,309 Entonces, ¿qué disminuiría el número de plazas? Pero si no, ¿qué es lo que haríamos? No lo disminuye y además ponemos lleno con un valor de 1. 100 00:14:53,309 --> 00:15:17,799 Lo mismo habrá que hacer en la salida. Cuando un vehículo sale y de nuevo le sume aquí, como vemos aquí, número de plazas, cuando se libere y pongamos que número de plazas es más uno, tendremos que actualizar lleno y tendremos que poner lleno igual a cero. 101 00:15:17,799 --> 00:15:20,519 Vamos a ver si ahora funciona 102 00:15:20,519 --> 00:15:26,350 Y vamos a darle al pulsador 103 00:15:26,350 --> 00:15:32,080 Disminuir en una plaza 104 00:15:32,080 --> 00:15:34,059 Le damos otra vez 105 00:15:34,059 --> 00:15:38,720 Le damos otra vez 106 00:15:38,720 --> 00:15:45,289 Y ahora el problema teníamos cuando dábamos cuando el parque estaba lleno 107 00:15:45,289 --> 00:15:46,690 Si yo doy al pulsador 108 00:15:46,690 --> 00:15:54,220 No lo actualiza, pero nos está abriendo la barrera 109 00:15:54,220 --> 00:15:58,120 Vamos a ver si luego cuando un vehículo se va 110 00:15:58,120 --> 00:16:02,679 Se vuelve a actualizar la barrera 111 00:16:02,679 --> 00:16:03,879 Sí, estaría bien 112 00:16:03,879 --> 00:16:17,320 Lo único que nos ha quedado de depurar el código sería evitar que cuando lleno es igual a 1 no se abra la barrera. 113 00:16:17,899 --> 00:16:27,620 Pero veis, como he puesto el método abrir y cerrar barrera delante de esta comprobación, primero me abre y cierra la barrera y luego ya me pone el lleno igual a 1. 114 00:16:27,620 --> 00:16:51,490 Entonces, si cambiamos la posición de la propia línea, la cortamos y la ponemos después. La ponemos aquí. Solo abrirá y cerrará la barrera mientras haya plazas y mientras estén entrando vehículos. Pero cuando esté lleno no va a abrir la barrera. 115 00:16:51,490 --> 00:17:18,380 Vamos a comprobarlo ahora y ya con esto acabaríamos él. Vamos a dejar esto así y vamos a darle a abrir, una plaza, dos, la tercera y ahora tendría que aparecer el parking lleno y luz roja. Perfecto. 116 00:17:18,380 --> 00:17:22,420 como no se va ningún vehículo 117 00:17:22,420 --> 00:17:23,440 estaría el parking lleno 118 00:17:23,440 --> 00:17:25,039 si le doy a abrir 119 00:17:25,039 --> 00:17:26,839 ya no me abre la barrera 120 00:17:26,839 --> 00:17:30,000 ¿por qué? porque yo no puedo entrar 121 00:17:30,000 --> 00:17:31,779 ahora si se va un vehículo 122 00:17:31,779 --> 00:17:32,839 sale 123 00:17:32,839 --> 00:17:35,180 actualiza de nuevo 124 00:17:35,180 --> 00:17:37,480 y ya tenemos una plaza 125 00:17:37,480 --> 00:17:39,680 ahora podríamos dar porque ya está en verde 126 00:17:39,680 --> 00:17:42,480 le damos y ya funciona perfectamente