1 00:00:01,459 --> 00:00:20,120 Hola, en el ejercicio de hoy vamos a aprender cómo leer valores analógicos. Hasta ahora hemos estado manejando valores digitales, tanto a la salida para encender y apagar a un LED, como a la entrada, que tenemos un interruptor o un pulsador en los que leíamos un 0 o un 1. 2 00:00:20,120 --> 00:00:32,179 Bueno, pues ahora vamos a aprender a leer valores analógicos, es decir, podemos leer un número analógico que son, acordaos del valor analógico, son infinitos valores dentro de un intervalo. 3 00:00:32,479 --> 00:00:40,539 Entonces, para ello, pues bueno, tengo ya aquí puesta una placa Arduino, conectado a un LED, como ya sabéis, con su resistencia de protección de 220 ohmios. 4 00:00:41,320 --> 00:00:46,460 Entonces, bueno, para leer un valor analógico necesitamos el potenciómetro, que lo tenemos aquí. 5 00:00:46,659 --> 00:00:52,219 Si vamos a la biblioteca de todos los componentes, aparece aquí en las entradas el potenciómetro. 6 00:00:53,560 --> 00:00:55,240 Entonces, el potenciómetro ya sabéis cómo funciona. 7 00:00:55,899 --> 00:00:58,039 Lo explicamos en su momento como resistencia variable. 8 00:00:58,560 --> 00:01:02,320 Sabéis que tiene tres terminales. Este es uno de los extremos, este es el otro, 9 00:01:02,320 --> 00:01:07,019 y el medio es el que es el terminal variable, el que va recorriendo el... 10 00:01:07,019 --> 00:01:11,599 si yo doy a la simulación 11 00:01:11,599 --> 00:01:13,319 el medio es el que está conectado 12 00:01:13,319 --> 00:01:15,120 a este que va recorriendo 13 00:01:15,120 --> 00:01:16,439 los distintos valores 14 00:01:16,439 --> 00:01:18,980 entonces bueno 15 00:01:18,980 --> 00:01:21,620 pues nada, sabéis como conectarlo 16 00:01:21,620 --> 00:01:23,280 un extremo va a tierra 17 00:01:23,280 --> 00:01:25,019 tengo ya aquí una tierra 18 00:01:25,019 --> 00:01:26,900 en la línea esta horizontal 19 00:01:26,900 --> 00:01:28,780 tiro un cable aquí negro, le pongo negro 20 00:01:28,780 --> 00:01:31,459 y el otro extremo tendría que ir 21 00:01:31,459 --> 00:01:33,079 a los 5 voltios, que es el extremo 22 00:01:33,079 --> 00:01:34,579 al valor máximo positivo 23 00:01:34,579 --> 00:01:36,640 aquí están los 5 voltios 24 00:01:36,640 --> 00:01:37,959 lo veis aquí en la parte de abajo 25 00:01:37,959 --> 00:01:39,859 rojo 26 00:01:39,859 --> 00:01:42,280 alguien podría pensar, bueno, ¿y qué diferencia 27 00:01:42,280 --> 00:01:43,980 entre esta tierra, esta tierra 28 00:01:43,980 --> 00:01:46,340 y esta que hay aquí arriba? Ninguna 29 00:01:46,340 --> 00:01:48,560 eléctricamente es el mismo punto 30 00:01:48,560 --> 00:01:50,379 aparecen en tres sitios distintos 31 00:01:50,379 --> 00:01:52,219 simplemente yo creo que por comodidad 32 00:01:52,219 --> 00:01:54,159 para que podáis tomarlo de distintos valores 33 00:01:54,159 --> 00:01:56,379 ¿vale? Entonces, bueno, volviendo 34 00:01:56,379 --> 00:01:58,939 al potenciómetro 35 00:01:58,939 --> 00:01:59,799 resistencia variable 36 00:01:59,799 --> 00:02:02,280 terminal, este lado está a cero 37 00:02:02,280 --> 00:02:04,040 este está a 5 voltios y este del medio 38 00:02:04,040 --> 00:02:05,760 es el que va a ser variable, entonces 39 00:02:05,760 --> 00:02:10,780 Este valor es el que yo quiero leer, el Arduino lea qué valor de voltaje tiene ahí. 40 00:02:10,780 --> 00:02:19,979 Bueno, pues saco un cable de aquí y lo llevo a uno de estos conectores, a 0, a 1, a 2, a 3, a 4, a 5. 41 00:02:20,080 --> 00:02:22,840 Fijaos que pone AnalogIn, es decir, entradas analógicas. 42 00:02:23,699 --> 00:02:26,560 Tengo 6 entradas analógicas, cualquiera de ellas me vale ahora mismo. 43 00:02:27,180 --> 00:02:34,740 Este lo pongo de color naranja porque quiero, porque me da la gana naranjar a las entradas analógicas, 44 00:02:34,740 --> 00:02:38,379 pero vamos, que no hay ningún código estándar, eso es una manía mía 45 00:02:38,379 --> 00:02:41,960 entonces pues ya está, ya lo tendríamos, lo que es la parte de circuitería 46 00:02:41,960 --> 00:02:46,300 de circuito, perdón, ya está listo, aquí estamos leyendo 47 00:02:46,300 --> 00:02:50,340 y el Arduino en función de lo que lea por este acero 48 00:02:50,340 --> 00:02:54,000 actuará de una manera o de otra sobre el LED 49 00:02:54,000 --> 00:02:58,580 bueno, pues ahora vamos a programarlo, quito el código este que viene 50 00:02:58,580 --> 00:03:02,280 siempre por defecto y os cuento lo que voy a hacer, lo que voy a hacer es 51 00:03:02,280 --> 00:03:04,680 leer este valor de analógico 52 00:03:04,680 --> 00:03:05,979 y lo voy a utilizar 53 00:03:05,979 --> 00:03:07,860 para controlar el periodo 54 00:03:07,860 --> 00:03:10,219 del blink 55 00:03:10,219 --> 00:03:12,180 del parpadeo 56 00:03:12,180 --> 00:03:13,860 del LED 57 00:03:13,860 --> 00:03:16,099 entonces, ¿cómo lo necesito? 58 00:03:16,180 --> 00:03:18,099 lo primero que necesito es una variable, siempre que 59 00:03:18,099 --> 00:03:20,139 estábamos leyendo, en las digitales ya lo habíamos 60 00:03:20,139 --> 00:03:21,360 visto, creamos una variable 61 00:03:21,360 --> 00:03:23,680 para guardar 62 00:03:23,680 --> 00:03:25,620 la variable es como una cajita 63 00:03:25,620 --> 00:03:27,180 donde se guarda el valor 64 00:03:27,180 --> 00:03:29,139 pues igual que yo en esa cajita 65 00:03:29,139 --> 00:03:31,699 puedo guardar un 0 o un 1, pues puedo guardar 66 00:03:31,699 --> 00:03:36,060 un valor, un valor analógico. Bueno, pues voy a crear una variable que se va a llamar 67 00:03:36,060 --> 00:03:39,439 input, entrada. ¿Vale? 68 00:03:39,680 --> 00:03:43,840 Y entonces, esta variable, ya ya la como otras veces, me voy a dar un valor 69 00:03:43,840 --> 00:03:47,680 utilizando el bloque definir. Definir input en qué. ¿Cómo 70 00:03:47,680 --> 00:03:51,819 guardo yo en esa caja el valor de A0? Bueno, pues me voy a entrada y en vez 71 00:03:51,819 --> 00:03:55,879 de leer un valor digital, como he leído otras veces, voy a leer un valor analógico. 72 00:03:57,340 --> 00:03:59,639 En este caso, A0. Si fuera alguno de los otros, 73 00:03:59,639 --> 00:04:01,439 pues no tendría más que cambiarlo 74 00:04:01,439 --> 00:04:03,599 entonces ahora tengo lo que estoy leyendo 75 00:04:03,599 --> 00:04:05,340 de acero se guarda en esta variable 76 00:04:05,340 --> 00:04:07,080 y ahora que voy a hacer 77 00:04:07,080 --> 00:04:08,860 pues voy a hacer un parpadeo 78 00:04:08,860 --> 00:04:11,680 bueno voy a hacer parpadeo como lo hice siempre 79 00:04:11,680 --> 00:04:13,840 y luego ya lo modificamos 80 00:04:13,840 --> 00:04:15,860 ponemos pasador 13 81 00:04:15,860 --> 00:04:17,379 porque donde está conectado el led 82 00:04:17,379 --> 00:04:18,060 está el 13 83 00:04:18,060 --> 00:04:22,220 el centro de nuevo 84 00:04:22,220 --> 00:04:23,360 lo veis el 13 85 00:04:23,360 --> 00:04:25,560 definimos el 13 en alta 86 00:04:25,560 --> 00:04:29,519 pongo un bloque de esperar 87 00:04:29,519 --> 00:04:34,949 definir 13 en baja 88 00:04:34,949 --> 00:04:36,649 y pongo un poco de esperar 89 00:04:36,649 --> 00:04:38,170 esto es el parpadeo 90 00:04:38,170 --> 00:04:39,329 lo que pasa es que tal como está 91 00:04:39,329 --> 00:04:42,170 es el parpadeo que hemos usado hasta ahora 92 00:04:42,170 --> 00:04:44,490 me pongo en alta, espero un segundo 93 00:04:44,490 --> 00:04:46,269 es decir, un segundo en alta, me pongo en baja 94 00:04:46,269 --> 00:04:47,389 y espero un segundo en baja 95 00:04:47,389 --> 00:04:50,290 y yo lo que he dicho que quiero es en función de esta variable 96 00:04:50,290 --> 00:04:51,889 de este valor que he leído 97 00:04:51,889 --> 00:04:52,870 y que he guardado en una variable 98 00:04:52,870 --> 00:04:54,910 controlar el periodo 99 00:04:54,910 --> 00:04:57,930 de la oscilación, del parpadeo 100 00:04:57,930 --> 00:05:00,290 bueno, pues eso lo hago muy fácilmente 101 00:05:00,290 --> 00:05:04,709 Simplemente puedo coger la variable input y meterla aquí dentro. 102 00:05:05,689 --> 00:05:11,610 En función de ese input, ¿cuánto esperaré? En vez de un segundo, esperaré input segundos. 103 00:05:12,310 --> 00:05:19,230 Os cuento. La variable input toma valores, he dicho que toma valores entre 0 y 5 voltios, 104 00:05:19,230 --> 00:05:26,629 pero claro, eso es en realidad lo que hace el Arduino, que es un sistema digital, es lo codifica. 105 00:05:26,629 --> 00:05:29,529 le da valores entre 0 y 1023 106 00:05:29,529 --> 00:05:31,290 el 0 son 0 voltios 107 00:05:31,290 --> 00:05:33,029 1023 son los 5 voltios 108 00:05:33,029 --> 00:05:35,389 la mitad que son 512 serían 109 00:05:35,389 --> 00:05:36,310 2.5 110 00:05:36,310 --> 00:05:39,709 la mitad de 512 que son 256 111 00:05:39,709 --> 00:05:40,769 serían 112 00:05:40,769 --> 00:05:43,470 1.25 la cuarta 113 00:05:43,470 --> 00:05:45,389 parte y así, no es una 114 00:05:45,389 --> 00:05:47,170 traducción directa porque Arduino no deja 115 00:05:47,170 --> 00:05:48,730 un sistema digital, lo que hace es 116 00:05:48,730 --> 00:05:51,370 divide ese intervalo en 1024 valores 117 00:05:51,370 --> 00:05:53,050 y lo está asignando 118 00:05:53,050 --> 00:05:55,089 entonces si yo pongo input aquí 119 00:05:55,089 --> 00:05:58,610 podrías llegar a esperar hasta 1023 segundos, que es una barbaridad 120 00:05:58,610 --> 00:06:03,509 lo que voy a hacer es ponerlo en milisegundos, que ya es un intervalo de tiempo más razonable 121 00:06:03,509 --> 00:06:07,329 aquí esperaría entre 0 milisegundos y 1023 milisegundos 122 00:06:07,329 --> 00:06:10,250 pero bueno, y para hacer el intervalo un poco más interesante 123 00:06:10,250 --> 00:06:14,129 lo que voy a hacer es lo que me dé el input, lo voy a multiplicar por 2 124 00:06:14,129 --> 00:06:18,389 entonces cojo este input y lo multiplico por 2 125 00:06:18,389 --> 00:06:20,870 y así aumento el rango de espera, ¿vale? 126 00:06:20,870 --> 00:06:41,170 Esto lo voy a duplicar con un segundo bloque igual ahí y los coloco aquí dentro. Y así tengo que puedo esperar entre 0 y 2048 milisegundos. O no esperar o estar hasta 2 segundos esperando. Los 2000 y pico milisegundos son 2 segundos. 127 00:06:41,170 --> 00:06:56,470 Entonces, de esta manera, en función del valor que hay aquí, el parpadeo será más rápido o más lento. ¿Se entiende el código? Yo supongo que sí, porque es el parpadeo de toda la vida, pero estamos ahora teniendo un periodo que no es fijo, sino variable. 128 00:06:56,470 --> 00:07:09,250 Depende de esta variable input y ya os he explicado por qué lo hemos puesto en milisegundos, por querer de 0 a 1023 y por 2 para tener un rango de parpadeo más adecuado para verlo nosotros. 129 00:07:09,629 --> 00:07:12,870 Entonces vamos a dar a iniciar simulación y a ver qué pasa. 130 00:07:13,949 --> 00:07:17,790 Bueno, empieza la simulación, aparentemente no está pasando nada, pero ¿por qué? Porque es que está a 0. 131 00:07:18,389 --> 00:07:21,129 O sea, intenta oscilar tan rápido que no vemos nada. 132 00:07:21,209 --> 00:07:24,629 Vamos a darle un valor más alto y a ver qué pasa con un valor más alto. 133 00:07:24,629 --> 00:07:32,649 ¿Veis? Eso ya sí es una oscilación. Está más de un segundo encendido, más de un segundo apagado. 134 00:07:32,889 --> 00:07:37,829 Si yo lo voy llevando hacia la izquierda, vais a ver que la oscilación va a ser más rápida. ¿Por qué? 135 00:07:37,889 --> 00:07:41,850 Porque el tiempo es más corto. ¿Veis? Oscila más rápidamente que antes. 136 00:07:42,389 --> 00:07:44,850 Está menos de un segundo encendido, menos de un segundo apagado. 137 00:07:45,209 --> 00:07:48,129 Si lo llevo todavía más a la izquierda, podéis ver que la oscilación es más rápida. 138 00:07:50,170 --> 00:07:53,089 ¿Veis? Se ve más rápido. Es una oscilación más rápida. 139 00:07:53,089 --> 00:07:56,589 y más rápido cuanto más a la izquierda lo lleven 140 00:07:56,589 --> 00:07:58,410 ¿veis? ahí todavía mucho más rápido 141 00:07:58,410 --> 00:08:00,550 luego está funcionando como debería 142 00:08:00,550 --> 00:08:02,129 bueno, pues este es un ejemplo 143 00:08:02,129 --> 00:08:04,529 esto no es el ejercicio que hay que hacer 144 00:08:04,529 --> 00:08:05,810 os voy a explicar el ejercicio 145 00:08:05,810 --> 00:08:08,449 en el ejercicio vais a necesitar dos LEDs 146 00:08:08,449 --> 00:08:10,769 con lo cual esta estructura que tengo aquí 147 00:08:10,769 --> 00:08:13,110 de un LED conectado a la potencia de protección 148 00:08:13,110 --> 00:08:15,089 conectado de esta manera al Arduino 149 00:08:15,089 --> 00:08:17,069 lo vais a reproducir aquí a la derecha 150 00:08:17,069 --> 00:08:19,470 o sea, esto mismo replicado aquí a la derecha 151 00:08:19,470 --> 00:08:21,949 y vais a necesitar un segundo potenciómetro 152 00:08:21,949 --> 00:08:43,389 O sea, que un segundo potenciómetro va a ir aquí, potenciómetro o resistencia variable o como queráis, conectado, llamarlo, quiere decir, con uno de los conectores a 0 a tirar aquí y otro a 5 voltios, que para ello, pues a lo mejor este cable tenéis que colocarlo, acordaros, en esta línea horizontal y de aquí sacar los cables rojos, ¿vale? 153 00:08:43,389 --> 00:08:48,049 entonces, perdón, vamos a poner rojo para que sea más claro lo que es 154 00:08:48,049 --> 00:08:51,509 entonces otro segundo potenciómetro aquí 155 00:08:51,509 --> 00:08:54,309 con su cable negro a esta línea y su cable rojo a esta 156 00:08:54,309 --> 00:08:57,669 y una línea que iría por ejemplo a 1 si este ha ido a 0 157 00:08:57,669 --> 00:09:00,509 entonces tendríamos que definir dos variables 158 00:09:00,509 --> 00:09:02,230 igual que estamos leyendo un input 159 00:09:02,230 --> 00:09:04,250 pues tendríamos input 1 e input 2 160 00:09:04,250 --> 00:09:06,649 por ejemplo, definir input 1 en el analógico a 0 161 00:09:06,649 --> 00:09:09,049 definir input 2 en el analógico a 1 162 00:09:09,049 --> 00:09:10,529 y tendríamos dos variables 163 00:09:10,529 --> 00:09:12,590 entonces, ¿qué haríamos luego? 164 00:09:12,590 --> 00:09:14,830 lo haríamos con el bloque de control 165 00:09:14,830 --> 00:09:18,370 o con el sí, si no, si queréis 166 00:09:18,370 --> 00:09:20,409 lo que vamos a hacer es comparar 167 00:09:20,409 --> 00:09:21,850 si esta salida 168 00:09:21,850 --> 00:09:24,570 si este valor es más 169 00:09:24,570 --> 00:09:26,669 grande que el otro, y sabéis como comparar 170 00:09:26,669 --> 00:09:27,830 tenéis aquí los comparativos 171 00:09:27,830 --> 00:09:30,629 los bloques de comparaciones, si esta variable 172 00:09:30,629 --> 00:09:32,690 lo que leemos de aquí es más grande 173 00:09:32,690 --> 00:09:33,970 que lo que leemos de esta otra 174 00:09:33,970 --> 00:09:36,570 oscilará, parpadeará 175 00:09:36,570 --> 00:09:38,750 este enlace, si no, es decir 176 00:09:38,750 --> 00:09:40,409 que si la otra es más grande que este 177 00:09:40,409 --> 00:09:44,169 Si no, oscilará el segundo LED que hayáis puesto aquí, ¿vale? 178 00:09:44,230 --> 00:09:46,309 Oscilar, cuando digo oscilar, me refiero a parpadear, ¿vale? 179 00:09:46,850 --> 00:09:50,950 Entonces, esto ya sabéis cómo hacerlo, porque ya sabemos leer variables analógicas, 180 00:09:51,090 --> 00:09:56,610 sabemos conectar un potenciómetro, sabemos hacer una comparación y sabemos cómo hacer un parpadeo. 181 00:09:56,610 --> 00:10:02,610 Con lo cual, ese es el ejercicio que tenéis que hacer, no el de controlar el parpadeo con el periodo. 182 00:10:03,250 --> 00:10:06,870 Ese es simplemente un ejemplo para que entendierais cómo se leen variables analógicas. 183 00:10:06,870 --> 00:10:32,289 El ejercicio es ese, ¿vale? ¿Lo habéis entendido? Un segundo led aquí, un segundo potenciómetro aquí, ambos, comparamos ambos, si el de la izquierda es más grande que oscile el de la izquierda y si la entrada de la derecha es más grande que oscile, que parpadee, perdón, el led de la derecha, ¿vale? Pues ya está, sabéis más que os sobra para hacer el ejercicio.