1 00:00:01,139 --> 00:00:23,019 Hola, en esta práctica de hoy vamos a partir de la que hicimos, de la que acabamos de hacer, en la que tenemos un botón y al pulsar este botón se encendía el LED, si queréis lo simulamos brevemente, es el pulso, se enciende suelto y se apaga, es la práctica que teníamos hecha ya antes. 2 00:00:23,019 --> 00:00:25,059 y lo que vamos a hacer, ya aprendimos 3 00:00:25,059 --> 00:00:26,879 a usar tanto la entrada en digital 4 00:00:26,879 --> 00:00:28,460 como la salida en digital 5 00:00:28,460 --> 00:00:30,920 y ahora lo que vamos a hacer es, en vez de colocar 6 00:00:30,920 --> 00:00:33,020 tener un único LED, vamos a tener 7 00:00:33,020 --> 00:00:34,600 cuatro 8 00:00:34,600 --> 00:00:37,219 entonces cojo tres LEDs más 9 00:00:37,219 --> 00:00:40,719 y tres resistencias más 10 00:00:40,719 --> 00:00:42,719 lo que puedo hacer también 11 00:00:42,719 --> 00:00:44,320 una posibilidad de explicar y arrastrar 12 00:00:44,320 --> 00:00:46,740 pero también se pueden copiar, así me ahorro 13 00:00:46,740 --> 00:00:49,420 por ejemplo, esta la pongo a 220 ohmios 14 00:00:49,420 --> 00:00:52,520 y genero dos más 15 00:00:52,520 --> 00:00:54,700 con control C y control V 16 00:00:54,700 --> 00:00:56,659 y ahora control V 17 00:00:56,659 --> 00:00:57,600 y así ya tengo 18 00:00:57,600 --> 00:01:01,200 estas resistencias ya listas, todas de 220 ohmios 19 00:01:01,200 --> 00:01:02,939 bueno, por lo que hago es colocarlas 20 00:01:02,939 --> 00:01:05,099 aquí, ahora os digo por qué necesitamos 21 00:01:05,099 --> 00:01:07,299 para qué quiero más resistencias 22 00:01:07,299 --> 00:01:09,140 un LED aquí 23 00:01:09,140 --> 00:01:10,840 más resistencias y más LED 24 00:01:10,840 --> 00:01:13,120 porque cada uno de estos 25 00:01:13,120 --> 00:01:15,959 de estas resistencias 26 00:01:15,959 --> 00:01:17,219 está protegiendo 27 00:01:17,219 --> 00:01:19,659 al LED en cuestión 28 00:01:19,659 --> 00:01:25,709 tiro los cables 29 00:01:25,709 --> 00:01:28,269 para terminar de cerrar el circuito, los pongo aquí a tierra 30 00:01:28,269 --> 00:01:30,450 acordaros que en esta línea horizontal es cuando tenía yo 31 00:01:30,450 --> 00:01:32,650 toda esta línea horizontal 32 00:01:32,650 --> 00:01:34,329 está a tierra a través de este cable 33 00:01:34,329 --> 00:01:35,010 que va a GND 34 00:01:35,010 --> 00:01:38,390 por eso no necesito llevarlo aquí al 35 00:01:38,390 --> 00:01:40,590 conector, simplemente lo dejo ahí en esa línea horizontal 36 00:01:40,590 --> 00:01:42,230 tiro esta 37 00:01:42,230 --> 00:01:43,810 tiro esta, vale 38 00:01:43,810 --> 00:01:46,469 y ya tengo todos los LED 39 00:01:46,469 --> 00:01:48,489 en su terminal 40 00:01:48,489 --> 00:01:50,530 negativo, en su cátodo conectados a tierra 41 00:01:50,530 --> 00:01:52,129 y ahora lo que voy a hacer es 42 00:01:52,129 --> 00:01:54,849 esto, me lo voy a llevar del 12 al 9 43 00:01:54,849 --> 00:02:00,290 Y voy a tirar cables desde aquí para controlar cada uno de los LEDs. 44 00:02:00,890 --> 00:02:08,330 El 12 controla este, el 11 controla este y el 10 controla este. 45 00:02:09,729 --> 00:02:11,169 Muy bien, pues ese es mi esquema. 46 00:02:11,569 --> 00:02:15,590 El mismo que tenía antes, pero en vez de tener un único LED, tengo cuatro en total. 47 00:02:16,550 --> 00:02:19,490 Y ahora, el código. Ahora tengo que modificar el código. 48 00:02:19,490 --> 00:02:33,969 Pero antes que eso, os cuento que lo que yo quiero es que si pulso este botón se enciende uno de ellos. ¿Cuál? Pues uno aleatorio, al azar, y para eso necesito una función que está por aquí, que es seleccionar un número aleatorio. 49 00:02:33,969 --> 00:02:36,409 como mis 50 00:02:36,409 --> 00:02:39,310 bueno, vamos a poner que como mis pulsadores 51 00:02:39,310 --> 00:02:40,569 son del 13 al 10 52 00:02:40,569 --> 00:02:42,710 pues vamos a suponer que quiero un número aleatorio 53 00:02:42,710 --> 00:02:45,110 entre el 10 y el 13 54 00:02:45,110 --> 00:02:50,039 y voy a 55 00:02:50,039 --> 00:02:52,340 asociado a esto, igual que antes 56 00:02:52,340 --> 00:02:54,560 leíamos un pasador digital que ya no va a estar en 12 57 00:02:54,560 --> 00:02:55,400 va a estar en 9 58 00:02:55,400 --> 00:02:57,939 porque antes yo estaba leyendo 59 00:02:57,939 --> 00:03:00,539 aquí en 12, pero ahora el 12 es una salida 60 00:03:00,539 --> 00:03:02,699 es un cable que aún está en un led, ahora estoy leyendo en 9 61 00:03:02,699 --> 00:03:04,620 bueno, pues por eso este está a 9 62 00:03:04,620 --> 00:03:06,599 entonces, eso no funciona 63 00:03:06,599 --> 00:03:08,659 igual leo, lo guardo en input 64 00:03:08,659 --> 00:03:10,680 y si el input está en alta, haré cosas 65 00:03:10,680 --> 00:03:12,400 vale, voy a quitar esto porque es de momento 66 00:03:12,400 --> 00:03:14,300 y si no está en alta, pues 67 00:03:14,300 --> 00:03:15,400 no haré esas cosas 68 00:03:15,400 --> 00:03:18,520 y ahora lo que quiero es también generar un número 69 00:03:18,520 --> 00:03:20,759 aleatorio, ese número aleatorio una vez que lo genero 70 00:03:20,759 --> 00:03:22,460 lo que a mí me interesa es guardarlo 71 00:03:22,460 --> 00:03:23,639 en una variable 72 00:03:23,639 --> 00:03:26,300 igual que leo 73 00:03:26,300 --> 00:03:27,759 el input y lo guardo en 74 00:03:27,759 --> 00:03:30,539 lo que entra por el 9 y lo guardo 75 00:03:30,539 --> 00:03:32,259 en una cajita, ese número aleatorio 76 00:03:32,259 --> 00:03:34,159 que se genera con una función matemática 77 00:03:34,159 --> 00:03:35,900 lo habéis visto en el bloque aquí de matemáticas 78 00:03:35,900 --> 00:03:38,979 genera un número aleatorio, pero lo voy a guardar en una variable 79 00:03:38,979 --> 00:03:41,319 que la voy a llamar output, salida 80 00:03:41,319 --> 00:03:44,639 ¿vale? output, entonces 81 00:03:44,639 --> 00:03:47,680 lo que voy a hacer ahora es definir esta variable 82 00:03:47,680 --> 00:03:49,900 output como ese número aleatorio 83 00:03:49,900 --> 00:03:53,740 luego lo conectaré a los bloques, ¿vale? pero de momento lo dejo 84 00:03:53,740 --> 00:03:56,219 ahí afuera, entonces este número aleatorio entre 10 y 13 85 00:03:56,219 --> 00:03:59,580 que se ha generado con esta función, se guarda con este bloque 86 00:03:59,580 --> 00:04:02,979 se guarda en la variable input no, en output 87 00:04:02,979 --> 00:04:05,400 ¿listo? definir output a esto 88 00:04:05,400 --> 00:04:06,620 Vale, muy bien 89 00:04:06,620 --> 00:04:08,139 Entonces, ¿qué es lo que yo quiero? 90 00:04:08,219 --> 00:04:09,419 Bueno, si estoy pulsando 91 00:04:09,419 --> 00:04:12,460 Lo que voy a hacer es que si output vale 13 92 00:04:12,460 --> 00:04:13,439 Enciendo el 13 93 00:04:13,439 --> 00:04:15,439 Si output vale 12, enciendo el 12 94 00:04:15,439 --> 00:04:16,699 Si output vale 11, el 11 95 00:04:16,699 --> 00:04:18,079 Y si output vale 10, el 10 96 00:04:18,079 --> 00:04:19,240 ¿Y eso cómo lo hago? 97 00:04:19,339 --> 00:04:22,620 Bueno, pues de nuevo voy a tener que utilizar bloques de control 98 00:04:22,620 --> 00:04:25,899 En este caso son bloques muy sencillitos 99 00:04:25,899 --> 00:04:28,360 Cuidado al clicar y arrastrar 100 00:04:28,360 --> 00:04:30,360 Que os puede pasar como me ha pasado a mí 101 00:04:30,360 --> 00:04:34,100 Que se peguen uno al otro sin vosotros quererlo 102 00:04:34,100 --> 00:05:05,339 Bueno, entonces, lo que yo quiero es si, traigo un bloque de estos, si la variable output vale 13, ¿qué es lo que quiero? Que se encienda el bloque 13, salida, definir pasador 13 en alta, esto hacia abajo para que se vea un poco, no, al contrario, tengo que ir hacia arriba, definir pasador 13 en alta. 103 00:05:05,339 --> 00:05:07,639 entonces, esto estaría aquí dentro 104 00:05:07,639 --> 00:05:09,360 si yo he pulsado el botón 105 00:05:09,360 --> 00:05:11,759 si el input es igual a alta 106 00:05:11,759 --> 00:05:14,120 y ese número aleatorio que yo he generado 107 00:05:14,120 --> 00:05:16,300 es 13, se enciende el 13 108 00:05:16,300 --> 00:05:17,720 ¿qué ocurre si fuera 109 00:05:17,720 --> 00:05:19,839 el output a 12? se encendería el 12 110 00:05:19,839 --> 00:05:21,819 entonces yo tengo que ir copiando esto varias veces 111 00:05:21,819 --> 00:05:24,180 pero no tengo que ir clicando y arrastrando 112 00:05:24,180 --> 00:05:25,500 todo el rato, puedo hacer esto que hacemos 113 00:05:25,500 --> 00:05:27,060 de botón derecho, duplicar 114 00:05:27,060 --> 00:05:30,360 y pongo aquí este bloque copiado 115 00:05:30,360 --> 00:05:32,439 y ahora lo que yo quiero es que sea el 12 116 00:05:32,439 --> 00:05:33,779 chequeo el 12 117 00:05:33,779 --> 00:05:36,300 Si el output vale 12 118 00:05:36,300 --> 00:05:39,139 Pongo el 12 en alta 119 00:05:39,139 --> 00:05:41,180 Y lo mismo voy a hacer con el 11 120 00:05:41,180 --> 00:05:42,300 Y con el 10 121 00:05:42,300 --> 00:05:44,500 Duplico 122 00:05:44,500 --> 00:05:47,899 Y pego aquí 123 00:05:47,899 --> 00:05:50,060 Si el output vale 11 124 00:05:50,060 --> 00:05:53,180 Es el pasador 11 125 00:05:53,180 --> 00:05:55,639 El que tendrá que ponerse alta 126 00:05:55,639 --> 00:05:57,160 Esto lo he pegado mal 127 00:05:57,160 --> 00:05:58,660 Porque está dentro del sí, ¿vale? 128 00:05:59,319 --> 00:06:01,279 Fijaos muy bien donde pegáis las cosas 129 00:06:01,279 --> 00:06:03,360 Estos tres bloques 130 00:06:03,360 --> 00:06:04,939 estos sí, estas tres condiciones sí 131 00:06:04,939 --> 00:06:07,439 están dentro del sí input igual a alta 132 00:06:07,439 --> 00:06:09,600 porque sólo si estoy pulsando 133 00:06:09,600 --> 00:06:11,439 el botón se dará alguna de estas 134 00:06:11,439 --> 00:06:13,379 tres posibilidades y alguna 135 00:06:13,379 --> 00:06:15,420 de estas posibilidades, alguna de estas implicará 136 00:06:15,420 --> 00:06:17,399 que yo encienda, ponga en alta 137 00:06:17,399 --> 00:06:19,300 alguno de esos, entonces ahora voy a hacer lo mismo 138 00:06:19,300 --> 00:06:21,220 con el bloque 139 00:06:21,220 --> 00:06:22,860 10 en este caso 140 00:06:22,860 --> 00:06:24,759 si la entrada vale 10 141 00:06:24,759 --> 00:06:27,279 el pasador 10 se pone 142 00:06:27,279 --> 00:06:28,740 en alta, vale 143 00:06:28,740 --> 00:06:30,379 y ya está, ahora 144 00:06:30,379 --> 00:06:31,939 me muevo para arriba 145 00:06:31,939 --> 00:06:35,279 si lo que estoy leyendo está alta 146 00:06:35,279 --> 00:06:37,040 hay tres posibilidades 147 00:06:37,040 --> 00:06:39,639 primera, que el output valga 13, que valga 12 148 00:06:39,639 --> 00:06:41,480 que valga 11 y que valga 10, en función de esa 149 00:06:41,480 --> 00:06:43,519 variable aleatoria, y lo que hago es para 150 00:06:43,519 --> 00:06:45,660 cada uno de esos sí, es poner la salida 151 00:06:45,660 --> 00:06:46,720 correspondiente en alta 152 00:06:46,720 --> 00:06:48,000 si no 153 00:06:48,000 --> 00:06:50,480 lo diré 154 00:06:50,480 --> 00:06:53,740 si la variable esa no está en alta 155 00:06:53,740 --> 00:06:57,740 aquí hay 156 00:06:57,740 --> 00:06:59,639 un error, me he dejado, fijaros que 157 00:06:59,639 --> 00:07:01,600 aquí se me ha montado un bloque encima del otro 158 00:07:01,600 --> 00:07:03,660 o se me ha quedado este por aquí por debajo 159 00:07:03,660 --> 00:07:05,779 me lo voy a llevar, esto es un lío, cuando trabaja uno 160 00:07:05,779 --> 00:07:07,560 con varios bloques, tenéis que tener cuidado 161 00:07:07,560 --> 00:07:09,860 no se os quede uno por debajo, como me ha pasado 162 00:07:09,860 --> 00:07:11,360 a mí, o enlacéis el que no es, ¿vale? 163 00:07:11,540 --> 00:07:13,300 este bloque lo voy a usar ahora, entonces 164 00:07:13,300 --> 00:07:16,120 ¿qué ocurre si no hay ninguna pulsación? 165 00:07:16,839 --> 00:07:17,920 si este input 166 00:07:17,920 --> 00:07:18,819 no está alta 167 00:07:18,819 --> 00:07:21,879 este sí, viene hasta aquí 168 00:07:21,879 --> 00:07:23,759 que es el si no, bueno, pues lo que ocurre 169 00:07:23,759 --> 00:07:25,579 es que tendré que poner cualquiera, todos 170 00:07:25,579 --> 00:07:26,800 los tres, a baja 171 00:07:26,800 --> 00:07:28,279 que el 13 172 00:07:28,279 --> 00:07:31,120 se ponga a baja 173 00:07:31,120 --> 00:07:36,009 que el 12 174 00:07:36,009 --> 00:07:38,069 se ponga a baja 175 00:07:38,069 --> 00:07:41,949 que el 11 176 00:07:41,949 --> 00:07:43,689 se ponga a baja 177 00:07:43,689 --> 00:07:51,180 pues me ha pasado lo de antes 178 00:07:51,180 --> 00:07:52,939 que este bloque se me ha quedado ahí debajo del 179 00:07:52,939 --> 00:07:55,399 resto, me lo llevo aquí un poquito 180 00:07:55,399 --> 00:07:57,240 hacia abajo, para tenerlo 181 00:07:57,240 --> 00:07:59,680 más a mano, entonces fijaos lo que he puesto 182 00:07:59,680 --> 00:08:01,540 a ver si me deja el scroll 183 00:08:01,540 --> 00:08:03,819 si no sea la condición 184 00:08:03,819 --> 00:08:05,300 que es que el botón ese estuviera en alta 185 00:08:05,300 --> 00:08:06,939 acordaos que este si no viene de arriba 186 00:08:06,939 --> 00:08:09,160 viene de aquí 187 00:08:09,160 --> 00:08:11,300 del si input igual a alta, si no quiere decir 188 00:08:11,300 --> 00:08:11,959 que está en baja 189 00:08:11,959 --> 00:08:18,199 ponemos 13, 12, 11 y 10 en baja 190 00:08:18,199 --> 00:08:20,579 y luego además lo que vamos a hacer es 191 00:08:20,579 --> 00:08:24,100 ahí generar el número aleatorio 192 00:08:24,100 --> 00:08:27,379 si no estamos pulsando generamos el número aleatorio 193 00:08:27,379 --> 00:08:30,139 y así el programa funcionará 194 00:08:30,139 --> 00:08:31,819 y con este código que tenemos aquí 195 00:08:31,819 --> 00:08:34,759 ya debería estar todo bien programado 196 00:08:34,759 --> 00:08:36,460 y espero que lo hayáis entendido 197 00:08:36,460 --> 00:08:39,720 si no entendéis pues volvéis a repetir el vídeo 198 00:08:39,720 --> 00:08:44,120 y volvéis a ver la repetición, entonces lo que vamos a hacer ahora es ver la simulación 199 00:08:44,120 --> 00:08:48,159 ver que efectivamente está simulándose correctamente, entonces pues nada 200 00:08:48,159 --> 00:08:51,679 le damos a iniciar simulación y la idea es que cada vez que yo pulse el botón 201 00:08:51,679 --> 00:08:55,519 se encenderá uno de los LEDs aleatoriamente, pulso una vez 202 00:08:55,519 --> 00:08:59,759 se ha encendido el 12, suelto, pincho otra vez, el 12 otra vez 203 00:08:59,759 --> 00:09:03,279 pincho otra vez, el 12, vaya por Dios, parece que he hecho algo mal, ah no 204 00:09:03,279 --> 00:09:07,320 ha salido 3 veces el 12 pero se ha ido al azar, ahora sale el 11, suelto 205 00:09:07,320 --> 00:09:09,480 pincho otra vez, el 12 otra vez 206 00:09:09,480 --> 00:09:11,460 pincho otra vez, el 13 207 00:09:11,460 --> 00:09:13,860 ¿ves? es al azar, es imprevisible, cada vez que yo pulso 208 00:09:13,860 --> 00:09:15,580 se enciende uno y no sé el cual 209 00:09:15,580 --> 00:09:16,559 13 210 00:09:16,559 --> 00:09:18,159 11 211 00:09:18,159 --> 00:09:21,279 13, 12 212 00:09:21,279 --> 00:09:24,159 cada vez que yo pincho 213 00:09:24,159 --> 00:09:25,820 se enciende uno, el 10 no se me ha encendido 214 00:09:25,820 --> 00:09:27,500 todavía, pero yo imagino que debe ser una cuestión 215 00:09:27,500 --> 00:09:28,340 puramente al azar 216 00:09:28,340 --> 00:09:31,320 debería haberse encendido, bueno 217 00:09:31,320 --> 00:09:33,320 el caso es eso, que tenemos 218 00:09:33,320 --> 00:09:35,440 que se están encendiendo, ahí se ha encendido el 10 219 00:09:35,440 --> 00:09:39,740 era para demostraros que efectivamente se están encendiendo cualquiera de ellos al azar 220 00:09:39,740 --> 00:09:43,000 y que cada vez que yo pulso se enciende uno de ellos al azar 221 00:09:43,000 --> 00:09:48,059 bueno, pues ese es el ejercicio que tenéis que hacer y además contestar alguna pregunta 222 00:09:48,059 --> 00:09:51,460 bueno, esta primera parte es muy fácil porque os la he dado hecho 223 00:09:51,460 --> 00:09:54,360 y lo de las preguntas podéis saber también que es muy fácil