1 00:00:00,000 --> 00:00:12,800 buenos días tengo aquí el circuito nos quedamos en lo que era todo el todas las conexiones y 2 00:00:12,800 --> 00:00:18,199 creía que iba a necesitar dos vídeos para hacer todas ellas pero pude pude hacerlo todo en una 3 00:00:18,199 --> 00:00:24,239 sola un solo vídeo y lo que he hecho es que ha añadido el código ahora lo haremos poco a poco 4 00:00:24,239 --> 00:00:28,679 y tendremos varios vídeos para explicar todo el código paso a paso y lo que voy a hacer es 5 00:00:28,679 --> 00:00:39,229 ejecutarlo para ver si funciona. Bien, veis que me aparece bienvenidos plazas 3. Yo lo que tengo que 6 00:00:39,229 --> 00:00:45,189 hacer para poder entrar en el parking sería dar al pulsador, como los parking. Al dar al pulsador, 7 00:00:45,189 --> 00:00:56,429 se me enciende la luz verde, se me mueve la barrera y se produce la apertura de la misma y puedo 8 00:00:56,429 --> 00:01:00,649 entrar dentro del parking, no hemos visto la barrera, le voy a dar otra vez 9 00:01:00,649 --> 00:01:05,189 si le damos, veis, abre la barrera y salimos del parking 10 00:01:05,189 --> 00:01:08,750 es verdad que abre la barrera durante muy poco tiempo, luego lo modificaremos 11 00:01:08,750 --> 00:01:11,829 en el mismo, vamos a ver si todo funciona o no 12 00:01:11,829 --> 00:01:16,269 vamos a darle otra vez, para que se quede sin plazas 13 00:01:16,269 --> 00:01:20,290 bueno, ahora tarda un poquito más y nos dice parking lleno, y veis, ya se enciende el led rojo 14 00:01:20,290 --> 00:01:24,609 porque no podemos entrar, aunque le demos al pulsador, nos dará parking lleno 15 00:01:24,609 --> 00:01:30,150 y no nos abrirá la barrera. Entonces tenemos que esperar a que un coche en su sensor de distancia 16 00:01:30,150 --> 00:01:38,409 detecte que se va y cuando se va, pues entonces le abrirá la barrera y nos dará la plaza. 17 00:01:38,609 --> 00:01:42,230 ¿Veis? Está haciéndolo como lo he dejado puesto, está haciéndolo para dos coches. 18 00:01:42,230 --> 00:01:48,590 Y se han liberado dos plazas. Otra vez podré darle al pulsador y podrá salir mi coche. 19 00:01:48,730 --> 00:01:53,469 Ahora dura bastante más y se quedaría una plaza. ¿Veis que funciona perfectamente? 20 00:01:53,469 --> 00:02:13,650 El potenciómetro, que en principio le quería poner porque el proyecto iba a ser con un LCD 16x2 y era para controlar la intensidad del propio LED, al usar un LCD 2C, en el que el cableado disminuyó su complejidad, no necesitamos del potenciómetro. 21 00:02:13,770 --> 00:02:23,189 Entonces, el potenciómetro, ya que lo tenía en el propio sistema, lo he utilizado para medir el número de segundos en el que la puerta se abre o se cierra. 22 00:02:23,469 --> 00:02:28,550 a través de este potenciómetro o este elemento analógico. 23 00:02:28,909 --> 00:02:32,710 Bien, entonces empezamos con el código. 24 00:02:33,949 --> 00:02:38,710 Lo que voy a hacer es detenerlo y voy a coger todo el código y lo voy a borrar y lo vamos a hacer desde el principio. 25 00:02:38,949 --> 00:02:45,330 Lo borro y empezamos con el código de este proyecto. 26 00:02:45,330 --> 00:02:57,770 Lo primero que haremos, lo voy a comentar todo para que nos quede bien claro qué es lo que estamos haciendo. 27 00:02:57,770 --> 00:03:20,610 Lo primero que hay que hacer es ver los dos diagramas de flujo que he añadido en el aula, que son sencillos. Este sería el de entrada. Lo que queremos ver es que al inicio nos muestre el número de plazas que tenga y nos preguntará el propio programa si el parking está lleno o no. 28 00:03:20,610 --> 00:03:33,250 ¿Por qué nosotros queremos entrar? Esto lo hará cuando demos al pulsador. Si está lleno, nos sacará otra vez la pantalla de inicio y aquí nos quedaría que el LED estaría de color rojo. 29 00:03:33,689 --> 00:03:45,990 Si no está lleno, el LED se pondría de color verde, abriría la barrera, esperaría unos segundos, disminuiría el número de plazas, esto es lo mismo que plazas igual a plazas menos uno, y iría otra vez a bienvenidos plazas X. 30 00:03:45,990 --> 00:04:02,689 Este sería en cuanto al diagrama de flujo de entrada. ¿Qué tendríamos en cuanto al diagrama de flujo de salida? Pues tendríamos que, al inicio, lo que hará es que cuando un vehículo esté junto al sensor, se hará siempre una pregunta. 31 00:04:02,689 --> 00:04:10,389 Si la distancia que está el vehículo al sensor es por estar por debajo de un umbral. Ese umbral es el que nos va a determinar si el coche se ha ido o no. 32 00:04:11,069 --> 00:04:18,649 El que no, pues se quedaría en el programa de inicio. Mientras que si sí, pues se aumentaría una plaza porque un coche estaba saliendo. 33 00:04:19,050 --> 00:04:23,750 Abriría la barrera, esperaría varios segundos y cerraría la barrera cuando el coche se haya ido. 34 00:04:24,350 --> 00:04:30,389 Y esos son básicamente los dos diagramas para entender lo que vamos a programar. 35 00:04:30,389 --> 00:04:52,759 Bien, lo primero, como todo, ¿qué necesitamos? Lo primero, importar las librerías. ¿Y de ello qué depende? Depende qué componentes tengamos. Acordaos, las librerías como se importaban, se importaban con include y se ponía en ángulos invertidos que eran estos de aquí. 36 00:04:52,759 --> 00:05:24,250 Vamos a poner primero la del servo, el punto H, y acordaos que necesitamos esta librería para poder manejar un servo, y tenemos un servo. A continuación añadimos la del LCD I2C, que necesitaba dos, un wire, pero punto H, y también la de, aquí lo hemos hecho mal, ¿vale? 37 00:05:24,250 --> 00:05:39,529 Y tendríamos también la librería, incluye, de, acordaos, Liquid, Cristal y 2C. 38 00:05:39,629 --> 00:05:40,189 Era así, ¿no? 39 00:05:41,750 --> 00:05:47,449 Pero nos falta el punto H. 40 00:05:48,269 --> 00:05:51,069 Bien, tendríamos ya importadas las tres librerías. 41 00:05:51,069 --> 00:05:56,310 Aquí ya tendríamos las tres librerías para poder crear objetos, tanto de un LCD como de un servo. 42 00:05:56,769 --> 00:06:00,769 Lo primero que vamos a hacer es crear el objeto Liquid. 43 00:06:01,410 --> 00:06:02,569 Vamos a ponerlo. 44 00:06:03,850 --> 00:06:05,389 Crear objetos. 45 00:06:07,649 --> 00:06:10,129 LCD y servo. 46 00:06:10,970 --> 00:06:14,050 Entonces, vamos a crear primero el Liquid. 47 00:06:17,399 --> 00:06:18,079 Cristal. 48 00:06:20,220 --> 00:06:20,939 I2C. 49 00:06:20,939 --> 00:06:24,139 le vamos a llamar LCD 50 00:06:24,139 --> 00:06:26,699 y acordado su constructor 51 00:06:26,699 --> 00:06:27,939 necesitaba tres parámetros 52 00:06:27,939 --> 00:06:29,240 vamos a poner el punto y coma 53 00:06:29,240 --> 00:06:31,300 necesitaba un primer parámetro que era 54 00:06:31,300 --> 00:06:33,720 la dirección en hexadecimal 55 00:06:33,720 --> 00:06:36,600 del LCD 56 00:06:36,600 --> 00:06:37,980 I2C que vamos a utilizar 57 00:06:37,980 --> 00:06:39,519 si le seleccionamos aquí 58 00:06:39,519 --> 00:06:42,079 es el PCF 59 00:06:42,079 --> 00:06:43,040 8574 60 00:06:43,040 --> 00:06:46,720 perdón 61 00:06:46,720 --> 00:06:49,220 y sería la dirección 0X27 62 00:06:49,220 --> 00:06:50,259 que es la que he añadido aquí 63 00:06:50,259 --> 00:06:58,759 A continuación, necesitaríamos indicarle que era de 16 columnas por dos filas y con esto ya estaría inicializado este objeto. 64 00:06:59,399 --> 00:07:05,800 Y nos quedaría el del servo, que será más sencillo. Servo lo vamos a llamar palanca y le ponemos punto y coma. 65 00:07:06,220 --> 00:07:12,180 Ya tenemos creados nuestras librerías y hemos creado nuestros dos objetos. 66 00:07:12,819 --> 00:07:20,060 Bien, vamos a poner aquí lo que son los parámetros de configuración. 67 00:07:20,259 --> 00:07:37,259 Y vamos a poner, vamos a crear lo primero una constante, acordaos siempre con el const, que va a ser de tipo entera y que vamos a poner aquí el número de plazas totales que vamos a tener. 68 00:07:37,699 --> 00:07:46,839 Y vamos a decirle que son tres plazas, que es como hemos visto en el ejemplo. Es una constante que nos va a reflejar, que nos va a variar y que nos va a decir el número de plazas totales que hay. 69 00:07:46,839 --> 00:08:09,620 Y a continuación vamos a poner un valor entero, ahora sí es una variable, que es el número de plazas. ¿Por qué hacemos una variable con el número de plazas? Porque este sí va a ir variando. Cuando vayamos metiendo coches dentro del parking irá disminuyendo. Cuando se vayan saliendo coches del parking irá aumentando. 70 00:08:09,620 --> 00:08:15,779 Por tanto, como varía, aquí tenemos que reflejar a una variable de tipo entera el número de las plazas. 71 00:08:16,120 --> 00:08:22,279 En principio, ¿qué tendrá? Tendrá el número máximo, que es la constante de arriba, max plazas. 72 00:08:25,930 --> 00:08:36,649 Bien, y ahora nos queda también otra constante que es para el propio servo, que será de tipo entero y que nos va a reflejar los grados que va a tener el servo. 73 00:08:36,649 --> 00:08:54,330 Vamos a poner en principio 90 grados porque está cerrada, tendrá que estar cerrado, entonces en un principio tiene que estar de manera horizontal, nosotros no le damos a, bueno, claro, aquí no tenemos el código ahora mismo, pero bueno, cuando empieza a aparecer la barrera en horizontal. 74 00:08:54,330 --> 00:09:14,289 Bien, seguimos con el código. ¿Y qué tenemos ahora? Bien, hemos puesto la otra variable y ahora vamos a poner todos los pines. Para ello vamos a utilizar constantes para todos los pines. 75 00:09:14,289 --> 00:09:21,850 Bueno, no pongo digitales porque tendremos tanto los planológicos como los digitales 76 00:09:21,850 --> 00:09:26,269 Vamos a empezar con, todos van a ser constantes y de tipo entero 77 00:09:26,269 --> 00:09:28,570 Y vamos a tener primero el pin del servo 78 00:09:28,570 --> 00:09:31,990 Que, acordaos, está aquí 79 00:09:31,990 --> 00:09:35,830 El pin del servo era el rosa y era el número 8 80 00:09:35,830 --> 00:09:39,090 Entonces le vamos a poner, no, el número 8 o el número 9, el 9 81 00:09:39,090 --> 00:09:44,610 entonces le vamos a poner el valor de 9 82 00:09:44,610 --> 00:09:49,450 ¿qué más? tenemos el pin 83 00:09:49,450 --> 00:09:55,279 a continuación tenemos el pin del pulsador 84 00:09:55,279 --> 00:09:58,980 el pin del pulsador, veis que es esta línea roja, aparece en el 7 85 00:09:58,980 --> 00:10:02,799 entonces vamos a copiarlo, lo ponemos aquí 86 00:10:02,799 --> 00:10:09,690 y ponemos que es el 7 87 00:10:09,690 --> 00:10:17,399 Y este sería el pin del pulsador. 88 00:10:17,879 --> 00:10:25,429 ¿Qué más tenemos? Tenemos el pin del LED verde, que era el 13. 89 00:10:26,429 --> 00:10:35,450 Vamos a poner pin LED verde, que era el 13. 90 00:10:35,450 --> 00:10:55,240 Y tenemos el del rojo, que sería, el rojo era el 8, creo. Vamos a verlo. El 8, ¿veis? Iba el cable aquí, es el 8. Y le ponemos aquí el 8. 91 00:10:55,240 --> 00:11:19,269 ¿Qué nos queda? Nos quedan también el pin del trigger, y ese era el pin del trigger, si lo vemos aquí, el trigger era el gris y iba al número 6. 92 00:11:19,269 --> 00:11:38,080 Le ponemos el 6 y nos queda el del eco. El eco, aquí, que sería, era el marrón, que era al 10, ¿veis? Este sería el pin del eco. 93 00:11:39,159 --> 00:11:44,279 ¿Qué más nos queda? Nos quedaría ahora el pin del potenciómetro. 94 00:11:44,279 --> 00:11:48,000 del potenciómetro, vamos a poner 95 00:11:48,000 --> 00:11:51,960 el pin potenciómetro 96 00:11:51,960 --> 00:11:56,460 y que era un pin analógico y por tanto tendríamos que era el A3 97 00:11:56,460 --> 00:12:00,159 lo vemos aquí, este de aquí va al potenciómetro 98 00:12:00,159 --> 00:12:04,460 lo veis, A3, y con este ya tendríamos todas las 99 00:12:04,460 --> 00:12:08,519 constantes de los pines, ahora a continuación 100 00:12:08,519 --> 00:12:12,200 ¿qué vamos a meter? vamos a introducir también las variables 101 00:12:12,200 --> 00:12:35,830 Entonces, creamos variables, aunque ya hemos creado alguna arriba, pero en estas variables vamos a tener, vamos a necesitar que una variable que nos indique cuando está lleno el parking, entonces lo vamos a poner con un valor de inicialización de cero y va a ser entera, lógicamente es un número entero. 102 00:12:35,830 --> 00:12:44,990 Otra que nos indique los centímetros que hay de distancia del coche al sensor y lo vamos a inicializar también con cero y sería esta otra. 103 00:12:45,450 --> 00:13:00,990 Y por último tenemos una variable que nos va a indicar el tiempo que va a estar la barrera abierta y que le vamos a poner también en un principio 4 milisegundos que va a ser 4 segundos. 104 00:13:00,990 --> 00:13:07,990 Entonces ya hemos creado estas variables que sean lleno, centímetro y tiempo barrera y les hemos dado un nombre característico para identificarlas. 105 00:13:10,509 --> 00:13:21,029 Con esto tendríamos lo que sería toda la configuración de todas las variables de las librerías y de las constantes. 106 00:13:21,029 --> 00:13:46,409 En el siguiente vídeo veremos las funciones que vamos a necesitar. Necesitaremos una función que se llamará mostrar pantalla, otra función que será leer potenciómetro, otra función que será abrir y cerrar barrera, otra que se llamará distancia y luego nos quedará también añadir el void setup y el void loop. 107 00:13:46,409 --> 00:13:52,549 Lo voy a añadir aquí. Tendríamos el Void Setup. 108 00:13:54,850 --> 00:13:59,250 Acordaos que siempre tienen que estar estos dos métodos en nuestro código de Arduino. 109 00:13:59,450 --> 00:14:03,509 Y el Void Loop, que ya lo rellenaremos en los siguientes vídeos.