1 00:00:00,000 --> 00:00:13,330 Buenos días, buenos días a todos. Tengo aquí donde lo habíamos dejado, habíamos creado el setup, 2 00:00:13,330 --> 00:00:20,010 el loop y habíamos creado las constantes y las variables y habíamos incluido las librerías. Aquí 3 00:00:20,010 --> 00:00:26,010 vamos a hacer las funciones que vamos a necesitar. Las voy a poner aquí una a una. Vamos a necesitar 4 00:00:26,010 --> 00:00:31,710 primero una función a la que nosotros queremos llamar y que nos directamente 5 00:00:31,710 --> 00:00:35,689 nos va a mostrar vamos a poner lo primero 6 00:00:35,689 --> 00:00:42,479 función para mostrar 7 00:00:42,479 --> 00:00:47,189 qué 8 00:00:48,909 --> 00:00:55,729 talla lcd ahí nos va a mostrar pues el 9 00:00:55,729 --> 00:01:00,469 bienvenidos el número de plazas que hay y se tendrá que ir actualizando en función de que 10 00:01:00,469 --> 00:01:06,469 los vehículos vayan saliendo o entrando del propio parking domótico esta la vamos a llamar 11 00:01:07,609 --> 00:01:13,569 en void no no va a devolver ningún valor por eso la ponemos void y la vamos a llamar mostrar 12 00:01:13,569 --> 00:01:22,560 pantalla no va a requerir ningún parámetro de entrada y tendrá su llave de apertura y su 13 00:01:22,560 --> 00:01:29,239 llave de cierre. ¿Veis? Ya la tenemos aquí. Esta será la función de mostrar pantalla. 14 00:01:29,719 --> 00:01:34,659 Ahora luego haremos las líneas que irán dentro de la misma. A continuación, tengo 15 00:01:34,659 --> 00:01:40,879 que generar también una función que lo que me haga es leer el potenciómetro. 16 00:01:41,680 --> 00:01:52,260 Leer el potenciómetro. Esta, lógicamente, se lo llamará continuamente en el loop para 17 00:01:52,260 --> 00:01:58,079 ver si hemos movido la rueda o no para saber si hay que esperar más tiempo o menos tiempo en 18 00:02:00,060 --> 00:02:04,560 en el tiempo de la barrera eso lo vamos a decidir nosotros con el propio potenciómetro 19 00:02:04,560 --> 00:02:10,020 a través de una señal analógica del potenciómetro a este por tanto va a ser una función también voy 20 00:02:12,639 --> 00:02:17,580 y le vamos a llamar y leer potenciómetro 21 00:02:17,580 --> 00:02:23,319 No va a tener ni un parámetro de entrada y le vamos a poner también así. 22 00:02:23,919 --> 00:02:27,340 ¿Veis? Ya hemos creado las cabeceras de las dos primeras funciones. 23 00:02:31,039 --> 00:02:37,580 Entonces, perdón, el siguiente método que vamos a tener será, 24 00:02:39,479 --> 00:02:46,400 queremos que una función nos realice también las operaciones de abrir y cerrar la barrera, 25 00:02:46,400 --> 00:02:55,439 De tal manera que cada vez que llamemos a esa función nos abre y nos cierre con un tiempo de lapso entre apertura y cierre la barrera. 26 00:02:55,620 --> 00:03:07,219 Por ello, lo que vamos a hacer es aquí también crear una función para abrir y cerrar la barrera. 27 00:03:07,219 --> 00:03:13,560 Aquí lo vamos a llamar también, va a ser, no va a devolver ningún valor 28 00:03:13,560 --> 00:03:24,030 Le vamos a llamar leer, no, abrir y cerrar barrera 29 00:03:24,030 --> 00:03:28,449 Le ponemos sin parámetros y le cerramos 30 00:03:28,449 --> 00:03:31,110 Y ya tendríamos la tercera función 31 00:03:31,110 --> 00:03:34,389 Y por último vamos a necesitar otra función 32 00:03:34,389 --> 00:03:44,289 que sería la de leer distancia, necesitamos leer la distancia para ver si un vehículo se está yendo 33 00:03:44,289 --> 00:03:51,770 y entonces también va a requerir que se esté leyendo continuamente a través del Void Loop esa función, 34 00:03:51,770 --> 00:03:57,050 se va a llamar constantemente a esa función para ver si ha habido alguna modificación en este sensor, 35 00:03:57,050 --> 00:04:05,069 si se ha llegado a sobrepasar el umbral, quiere decir que ya no está a la distancia adecuada 36 00:04:05,069 --> 00:04:07,949 y que un vehículo se ha ido y por tanto hay que abrir la barrera. 37 00:04:07,949 --> 00:04:22,829 Entonces vamos a poner que esta sería la función para lectura de distancia del vehículo. 38 00:04:22,829 --> 00:04:26,980 esta va a ser también void 39 00:04:26,980 --> 00:04:28,540 no va a devolver ningún valor 40 00:04:28,540 --> 00:04:31,259 no, perdón, esta sería, tiene que devolver un valor 41 00:04:31,259 --> 00:04:33,800 claro, nos tiene que devolver la distancia a la que está el vehículo 42 00:04:33,800 --> 00:04:34,959 con respecto al sensor 43 00:04:34,959 --> 00:04:37,660 por tanto, como esa distancia puede ser 44 00:04:37,660 --> 00:04:39,639 un valor decimal, no tiene por qué ser un valor entero 45 00:04:39,639 --> 00:04:40,339 tenemos que 46 00:04:40,339 --> 00:04:43,980 bueno, en principio 47 00:04:43,980 --> 00:04:45,959 le vamos a poner 48 00:04:45,959 --> 00:04:47,759 un valor de long, no le vamos a poner un valor 49 00:04:47,759 --> 00:04:49,459 decimal, mejor 50 00:04:49,459 --> 00:04:51,660 un valor long, un valor entero grande 51 00:04:51,660 --> 00:04:53,620 y este sería el valor 52 00:04:53,620 --> 00:04:55,240 que nos va a devolver, entonces por tanto 53 00:04:55,240 --> 00:04:57,139 ahora la función ya no es void 54 00:04:57,139 --> 00:04:59,379 sino que nos va a devolver un valor long 55 00:04:59,379 --> 00:05:00,939 y se va a llamar 56 00:05:00,939 --> 00:05:03,360 leer distancia 57 00:05:03,360 --> 00:05:07,920 le cerramos las llaves 58 00:05:07,920 --> 00:05:09,620 y tendríamos 59 00:05:09,620 --> 00:05:10,300 la cuarta 60 00:05:10,300 --> 00:05:13,459 para lectura 61 00:05:13,459 --> 00:05:15,639 veis, he creado 62 00:05:15,639 --> 00:05:16,920 las cuatro funciones, repaso 63 00:05:16,920 --> 00:05:18,939 la función mostrar la pantalla de LCD 64 00:05:18,939 --> 00:05:21,000 llamaremos cuando queramos que se 65 00:05:21,000 --> 00:05:23,079 quiera mostrar una determinada 66 00:05:23,079 --> 00:05:31,779 Por ejemplo, si se ha modificado una plaza porque ha de ser de un vehículo, pues tenemos que llamar a la pantalla para que muestre la actualización de la misma. 67 00:05:32,379 --> 00:05:47,100 Otra función que será leer potenciómetro. Si movemos la ruedecita, tenemos que estar constantemente leyendo el pino analógico de ese potenciómetro para saber si realmente se ha movido o no. 68 00:05:47,100 --> 00:05:54,199 y, por tanto, variar el tiempo de apertura y cierre del servo. 69 00:05:55,000 --> 00:05:56,540 Otra sería abrir y cerrar la barrera. 70 00:05:56,699 --> 00:06:00,699 Lógicamente, cuando un vehículo entra y puede entrar y se pone la luz en verde LED, 71 00:06:01,279 --> 00:06:04,660 estaremos llamándole del loop a esta función para que abra y cierre la barrera. 72 00:06:04,660 --> 00:06:09,120 Y la última sería una de leer distancia para ver constantemente a través del loop 73 00:06:09,120 --> 00:06:13,019 qué sucede con el sensor, si está variando su distancia o si no. 74 00:06:13,019 --> 00:06:25,360 Bien, ya tengo las cuatro funciones y a continuación lo que voy a hacer antes de generar estas cuatro funciones, vamos a generar el voice setup. 75 00:06:25,360 --> 00:06:34,300 Acordaos que el voice setup era un método que se utilizaba para configuración. Aquí, ¿qué vamos a introducir? 76 00:06:35,040 --> 00:06:39,519 Primero, queremos saber, vamos a utilizar también el monitor en serie. 77 00:06:39,519 --> 00:06:45,379 Entonces, lo vamos a iniciar, acordaos, con el begin y a 9.600 baudios. 78 00:06:45,759 --> 00:06:48,079 Vamos a ponerlo 9.600. 79 00:06:49,180 --> 00:06:56,379 También, ahora necesitaremos, vamos a separarlo con respecto al monitor en serie, configurar los pines. 80 00:06:57,100 --> 00:07:02,779 Acordaos que tenemos concretamente cinco pines, entonces hay que configurar esos pines con el pin mode 81 00:07:02,779 --> 00:07:05,160 para saber si son de entrada o de salida 82 00:07:05,160 --> 00:07:07,740 vamos a copiarlo aquí 83 00:07:07,740 --> 00:07:12,870 y vamos a ponerlo en 5 84 00:07:12,870 --> 00:07:16,769 pin mode 2, 3, 4 y 5 85 00:07:16,769 --> 00:07:22,529 bien, configuramos el primer pin que vamos a configurar 86 00:07:22,529 --> 00:07:24,290 es el pin pulsador 87 00:07:24,290 --> 00:07:29,810 y le vamos a decir que es de entrada 88 00:07:29,810 --> 00:07:32,329 ¿por qué es de entrada? 89 00:07:32,329 --> 00:07:39,930 porque el pin pulsador, concretamente, habíamos puesto que era el número 7. 90 00:07:40,709 --> 00:07:43,930 Este era, que era el que aparecía aquí. 91 00:07:44,970 --> 00:07:49,970 Entonces, es de entrada porque lo que vamos a leer, este pin digital lo que va a leer 92 00:07:49,970 --> 00:07:52,730 es si recibe un valor de 1 o de 0. 93 00:07:53,170 --> 00:07:54,730 ¿Cuándo va a recibir un valor de 0? 94 00:07:54,910 --> 00:08:00,329 Cuando no se apriete el pulsador, porque estos dos terminales y estos dos terminales están separados 95 00:08:00,329 --> 00:08:20,189 Y por tanto no recibirá más que 0 voltios. Cuando le prendemos el pulsador y alimentación quede conectado con los otros dos terminales, por aquí irían 0 voltios porque hay una resistencia con alta impedancia, con el putdown, y aquí lo que recibiría ahora es un high o un 1. 96 00:08:20,189 --> 00:08:31,490 Entonces tenemos que saber la lectura de ese pulsador y por tanto esa lectura además va a ser una lectura de entrada. Por eso le ponemos un pin de entrada. 97 00:08:31,490 --> 00:08:36,230 el siguiente 98 00:08:36,230 --> 00:08:38,649 pin sería el LED 99 00:08:38,649 --> 00:08:40,649 verde 100 00:08:40,649 --> 00:08:42,610 creo que lo hemos puesto, a ver como era 101 00:08:42,610 --> 00:08:47,289 pin LED verde 102 00:08:47,289 --> 00:08:49,909 y le ponemos aquí 103 00:08:49,909 --> 00:08:52,710 el segundo es el 104 00:08:52,710 --> 00:08:54,210 bueno este era el pin pulsador 105 00:08:54,210 --> 00:08:56,610 el LED rojo 106 00:08:56,610 --> 00:08:58,009 lo ponemos aquí 107 00:08:58,009 --> 00:09:01,850 nos queda el pin servo 108 00:09:01,850 --> 00:09:04,490 el pin 109 00:09:04,490 --> 00:09:05,570 no, el eco 110 00:09:05,570 --> 00:09:08,450 el pin eco, perdón 111 00:09:08,450 --> 00:09:11,629 y el pin 112 00:09:11,629 --> 00:09:13,370 trigger 113 00:09:13,370 --> 00:09:19,480 y ahora ponemos aquí el LED 114 00:09:19,480 --> 00:09:21,980 ¿cómo sería? ¿de entrada o de salida? 115 00:09:22,179 --> 00:09:23,340 lógicamente sería de 116 00:09:23,340 --> 00:09:24,679 salida 117 00:09:24,679 --> 00:09:25,940 estamos 118 00:09:25,940 --> 00:09:30,980 cuando el LED verde se active 119 00:09:30,980 --> 00:09:34,299 tiene que ser activado a través de este pin 120 00:09:34,299 --> 00:09:36,840 no, del verde sería este 121 00:09:36,840 --> 00:09:40,740 entonces necesita que se le comunique un 1 122 00:09:40,740 --> 00:09:42,500 que lo indiqueremos a través del código 123 00:09:42,500 --> 00:09:43,720 para que se encienda 124 00:09:43,720 --> 00:09:45,480 por lo tanto tiene que ser de salida 125 00:09:45,480 --> 00:09:47,679 tanto el led verde como el led rojo 126 00:09:47,679 --> 00:09:51,200 entonces, tanto el led verde que le hemos puesto output 127 00:09:51,200 --> 00:09:56,039 el rojo también tiene que ser de salida 128 00:09:56,039 --> 00:09:58,440 en cuanto al eco, acordaos 129 00:09:58,440 --> 00:09:59,919 el trigger es el que lanzaba 130 00:09:59,919 --> 00:10:01,720 el eco es el que recibía 131 00:10:01,720 --> 00:10:04,059 entonces lógicamente 132 00:10:04,059 --> 00:10:06,100 si el eco es el que recibe 133 00:10:06,100 --> 00:10:07,200 tiene que ser de entrada 134 00:10:07,200 --> 00:10:10,139 mientras que 135 00:10:10,139 --> 00:10:12,340 si el trigger era el que lanzaba 136 00:10:12,340 --> 00:10:14,100 el ultrasonido tiene que ser 137 00:10:14,100 --> 00:10:14,899 de salida 138 00:10:14,899 --> 00:10:17,879 y ya tendríamos 139 00:10:17,879 --> 00:10:20,259 los cinco pines configurados en el 140 00:10:20,259 --> 00:10:21,940 seta, nos queda 141 00:10:21,940 --> 00:10:23,879 también configurar la palanca 142 00:10:23,879 --> 00:10:26,720 el servo y añadirle 143 00:10:26,720 --> 00:10:28,139 acortados con el 144 00:10:28,139 --> 00:10:36,600 attach a la palanca, attach, unirle el pin al que en el que tiene está 145 00:10:36,600 --> 00:10:47,100 configurado su señal y ese cuál es, es el pin servo, pin servo, nos quedaría a 146 00:10:47,100 --> 00:10:54,240 continuación decirle que el servo se quede en cero grados y por tanto como 147 00:10:54,240 --> 00:10:55,940 por defecto, entonces palanca 148 00:10:55,940 --> 00:10:58,340 punto write 149 00:10:58,340 --> 00:10:59,379 acordaos para 150 00:10:59,379 --> 00:11:02,320 comunicarle un ángulo al servo 151 00:11:02,320 --> 00:11:03,940 se hacía a través del método write 152 00:11:03,940 --> 00:11:06,259 y lo que vamos a hacerle es que 153 00:11:06,259 --> 00:11:07,720 como los 154 00:11:07,720 --> 00:11:09,720 cero grados, perdón 155 00:11:09,720 --> 00:11:12,100 por defecto no son cero grados, son 156 00:11:12,100 --> 00:11:13,460 noventa, que estarían aquí 157 00:11:13,460 --> 00:11:16,120 noventa para que esté el servo 158 00:11:16,120 --> 00:11:17,440 en horizontal 159 00:11:17,440 --> 00:11:20,120 entonces hay que comunicárselo 160 00:11:20,120 --> 00:11:22,059 de partida que se quede en horizontal 161 00:11:22,059 --> 00:11:23,820 o sea, cerrado 162 00:11:23,820 --> 00:11:41,220 la palanca o el servo. Y a continuación, no sé, aquí esto serían parámetros de inicialización de la palanca. 163 00:11:43,139 --> 00:11:56,840 Esto es la configuración de los pines, de los pines, y aquí tenemos ahora la configuración del LCD, 164 00:11:56,840 --> 00:12:12,659 ¿Qué nos falta? Configuración del LCD. ¿Qué nos falta en la configuración del LCD? Nos faltaría iniciarlo, LCD, cogemos su objeto y lo iniciamos con init. 165 00:12:12,659 --> 00:12:27,620 Y además necesitamos poner la luz del LED con el LCD, punto back, light y ya estaría. 166 00:12:28,100 --> 00:12:34,379 Si podemos ahora darle a ejecutar, puesto que setup y loop están definidos y veríamos qué pasa. 167 00:12:35,159 --> 00:12:39,860 No pasaría, vamos a ver si nos da algún error y ya nos ha dado algún error. 168 00:12:39,860 --> 00:12:43,519 Vamos a repasar todo el código desde arriba. 169 00:12:43,519 --> 00:13:10,399 Vemos que el servo está bien, wire.h, liquid cristal y 2c también, hemos creado el objeto con el 0.27, bien, servo palanca, vale, hemos creado la constante número de plazas, vale, lo que voy a hacer para, voy a quitar toda la parte de, cortar la parte del setup y vamos a ver si el error estaba ahí y así reducimos. 170 00:13:10,399 --> 00:13:18,279 No, el error no estaba ahí, puesto que, vamos a dejarlo como estaba, estaba previo a el mismo. 171 00:13:18,480 --> 00:13:25,860 Nos está diciendo que, a ver, vamos a repasar, grados 90 está bien, pin servo, pin pulsador, todo esto está bien. 172 00:13:29,519 --> 00:13:29,940 Bien. 173 00:13:31,259 --> 00:13:33,600 Estas tres variables también están bien. 174 00:13:34,379 --> 00:13:35,700 Luego, mostrar pantalla. 175 00:13:36,879 --> 00:13:38,220 Voy a leer potenciómetro. 176 00:13:39,080 --> 00:13:40,360 Abrir y cerrar barrera. 177 00:13:40,860 --> 00:13:41,419 Perfecto. 178 00:13:41,419 --> 00:13:43,460 y leer distancia, también están bien 179 00:13:43,460 --> 00:13:45,679 y luego el body loop 180 00:13:45,679 --> 00:13:46,840 estarían bien 181 00:13:46,840 --> 00:13:48,279 entonces 182 00:13:48,279 --> 00:13:50,159 no veo el error 183 00:13:50,159 --> 00:13:55,590 bien, he encontrado el error 184 00:13:55,590 --> 00:13:57,809 el error estaría aquí, que no he puesto un igual 185 00:13:57,809 --> 00:13:59,669 lo veis, sencillamente 186 00:13:59,669 --> 00:14:00,909 no era nada más que esto 187 00:14:00,909 --> 00:14:03,049 y nos faltaba un igual 188 00:14:03,049 --> 00:14:05,350 entonces vamos a darle a ejecutar 189 00:14:05,350 --> 00:14:07,590 y no, nos sigue saliendo otro error 190 00:14:07,590 --> 00:14:13,679 y también veo que aquí 191 00:14:13,679 --> 00:14:16,139 en pin servo lo hemos puesto 192 00:14:16,139 --> 00:14:21,600 con, lo he puesto con minúsculas, porque la variable se llama pin servo, que estaría 193 00:14:21,600 --> 00:14:28,559 aquí. Vale, le damos a ejecutar a ver si ahora funciona. Y veis, lo primero que nos 194 00:14:28,559 --> 00:14:36,340 hace es configurar en el monitor en serie, lo veis, que no sale todavía nada porque 195 00:14:36,340 --> 00:14:41,960 todavía no le hemos indicado nada, nos sale configurar los pines, la palanca se ha unido 196 00:14:41,960 --> 00:14:46,759 pinservo y le ha puesto 90 grados para que esté ya horizontal y luego ha 197 00:14:46,759 --> 00:14:52,639 inicializado la luz del lcd y inicializa lcd pero no hace mucho más 198 00:14:53,240 --> 00:14:58,100 en el siguiente vídeo veremos la creación de las propias funciones para 199 00:14:58,100 --> 00:15:05,580 que ya esto empiece a tener otra otro funcionamiento que sería pues el 200 00:15:05,580 --> 00:15:11,919 correcto el que queremos que tenga nuestro propio parking domótico 201 00:15:11,960 --> 00:15:13,019 CC por Antarctica Films Argentina