1 00:00:00,690 --> 00:00:07,349 Bienvenidos de nuevo a esta serie de vídeos dedicados a los sensores y actuadores habituales en tecnología 2 00:00:07,349 --> 00:00:13,230 y en concreto a esta segunda parte del vídeo dedicado a los sensores y actuadores denominados avanzados 3 00:00:13,230 --> 00:00:19,710 porque requieren un control con unos protocolos de comunicaciones específicos 4 00:00:19,710 --> 00:00:24,510 y requiere por lo tanto el uso de librerías específicas para poder programarlos. 5 00:00:25,050 --> 00:00:29,789 Como comentamos en el vídeo anterior, la utilización de determinados lenguajes gráficos 6 00:00:29,789 --> 00:00:35,189 que incorporan ya esas librerías en los propios bloques, pues nos facilita mucho su control. 7 00:00:35,729 --> 00:00:43,369 El siguiente de los sensores que vamos a ver es un sensor muy particular, es un sensor de temperatura y humedad a la vez, 8 00:00:43,770 --> 00:00:52,009 el denominado DHT11 y que se caracteriza por incorporar tanto un sensor de temperatura como un sensor de humedad. 9 00:00:52,009 --> 00:00:59,490 Este dispositivo, como vemos aquí, tiene tres conexiones, aunque comercialmente se presentan con cuatro patillas, 10 00:00:59,490 --> 00:01:06,349 pero en realidad solamente necesitamos tres, una de ellas no se conecta y en concreto son dos patillas de alimentación 11 00:01:06,349 --> 00:01:12,010 y una tercera patilla, en este caso el pin número 2, que realiza la comunicación serie con Arduino. 12 00:01:12,370 --> 00:01:18,750 Ahora bien, esta comunicación no es una comunicación I2C, sino que se establece un protocolo propio de comunicaciones 13 00:01:18,750 --> 00:01:26,590 y la librería lo que hace es interpretar esa comunicación serie, que en concreto consiste en una trama de unos 40 bits 14 00:01:26,590 --> 00:01:33,209 cada 4 milisegundos, en el que envía la información del sensor en cuanto a temperatura y en cuanto a humedad. 15 00:01:33,769 --> 00:01:42,450 Las características o el rango de medida que presenta este sensor es capaz de medir entre 0 grados y 50 grados, 16 00:01:42,549 --> 00:01:47,069 con una precisión aproximadamente de 2 grados centígrados, en el caso de la temperatura, 17 00:01:47,530 --> 00:01:51,010 y mide entre 20 y 80% para la correspondiente humedad. 18 00:01:51,010 --> 00:02:19,110 La librería es la DHT11, perdón, DHT.H, que facilita, como digo, esta librería facilita la comunicación con este sensor y aquí vemos la conexión, particularmente esta conexión requiere una resistencia de 10 kOhm entre el pin número 2, entre los datos y en este caso la alimentación. 19 00:02:19,110 --> 00:02:26,349 simplemente tiene este requisito y a partir de ahí la información del dispositivo 20 00:02:26,349 --> 00:02:29,870 la podemos conectar por cualquiera de los pides 21 00:02:29,870 --> 00:02:37,069 aquí tenemos por ejemplo un programa escrito en Arduino Blocks 22 00:02:37,069 --> 00:02:40,949 que nos va a permitir visualizar a través del puerto serie de Arduino 23 00:02:40,949 --> 00:02:47,150 el propio ID de Arduino nos va a poder permitir leer los datos de temperatura y humedad 24 00:02:47,150 --> 00:03:09,210 Como vemos, en primer lugar lo que hacemos es establecer dos variables, las variables de temp y yum para guardar estos valores y el propio bloque, solamente tenemos que indicar qué magnitud queremos leer y el pin por el que vamos a recibir los datos en serie de este dispositivo. 25 00:03:09,210 --> 00:03:17,370 Y a partir de ahí, damos un tiempo para recibir esas medidas y luego lo visualizamos, en este caso, a través del puerto serio. 26 00:03:17,710 --> 00:03:23,009 Aquí vemos este mismo programa, pues, escrito en el correspondiente lenguaje Arduino. 27 00:03:23,930 --> 00:03:33,449 Y como decíamos en su momento, pues, la utilización de programas gráficos como Arduino Blocks, pues, facilita bastante su programación. 28 00:03:33,449 --> 00:03:40,349 El siguiente sensor que vamos a mostrar es el sensor conocido como sensor de calidad del aire 29 00:03:40,349 --> 00:03:45,469 El sensor MQ135, los sensores de la serie MQ existen en una gran variedad 30 00:03:45,469 --> 00:03:47,550 Cada uno de ellos sensible a un gas concreto 31 00:03:47,550 --> 00:03:55,990 Pero en este el MQ135 tiene la particularidad de detectar gases nocivos de una amplia gama 32 00:03:55,990 --> 00:03:59,729 Como son por ejemplo el amoníaco, el alcohol, el butano, el metano, etc. 33 00:03:59,729 --> 00:04:13,430 Y es capaz de realizar esta detección porque en su interior incorpora una resistencia recubierta de dióxido de estaño y que al reaccionar es capaz de detectar la presencia de esos gases. 34 00:04:13,930 --> 00:04:15,849 Y por eso se le conoce como sensor de calidad del aire. 35 00:04:16,569 --> 00:04:26,209 Como digo, existe una gran variedad de sensores dentro de la serie MQ y este en particular es muy conocido por el amplio espectro que puede detectar. 36 00:04:26,209 --> 00:04:43,910 ¿Cómo identificamos qué gas ha detectado? Pues para ello tendríamos que realizar una calibración y leer, en este caso por el pin denominado A0, es decir, salida analógica, e incorporarlo a la tarjeta Arduino en una de las entradas de los pines analógicos. 37 00:04:44,329 --> 00:04:52,509 Dependiendo del valor que nos vaya marcando, una vez que acerquemos este sensor, sabremos en qué nivel o en qué momento se puede detectar la presencia de uno de estos gases. 38 00:04:52,509 --> 00:04:58,730 la conexión como vemos es muy sencilla requiere simplemente la alimentación y luego el pin 39 00:04:58,730 --> 00:05:07,009 correspondiente de salida ha denominado a auto salida analógica pues lo conectaremos a los 40 00:05:07,009 --> 00:05:12,550 pines de entrada de tipo analógico existe también en los módulos como vemos aquí que tiene cuatro 41 00:05:12,550 --> 00:05:20,769 pines porque lo que incluye es un otro pin determinado de auto de salida digital y que 42 00:05:20,769 --> 00:05:25,310 lo que hace es incorporar un comparador para que dependiendo del ajuste que nosotros le pongamos 43 00:05:25,310 --> 00:05:33,490 sea capaz de enviar una señal por ese pin digital cuando se alcanza ese valor determinado por el 44 00:05:33,490 --> 00:05:39,370 potenciómetro que lleva en la parte en este caso posterior del dispositivo pero lo más habitual es 45 00:05:39,370 --> 00:05:45,529 de conectarlo directamente por el pin analógico y leer nosotros a través del bien del puerto serie o 46 00:05:45,529 --> 00:05:50,709 como por ejemplo vemos en este circuito le hemos incorporado una pantalla lcd y podríamos aquí ya 47 00:05:50,709 --> 00:05:55,750 mostrar diferentes mensajes en función del valor que estamos recibiendo y por lo tanto alertar de 48 00:05:55,750 --> 00:06:02,329 la presencia de uno de estos gases que hemos comentado en él en el programa que vemos aquí 49 00:06:02,329 --> 00:06:08,769 configuramos inicialmente en este caso la pantalla lcd con un direccionamiento ya que no se conecta 50 00:06:08,769 --> 00:06:13,329 por y no esté por lo tanto con un direccionamiento concreto que corresponderá con el modelo que 51 00:06:13,329 --> 00:06:20,829 tengamos y luego introducimos el programa pues una visualización en este caso de texto por ejemplo 52 00:06:20,829 --> 00:06:27,509 nivel de gas y en la columna 0 y en la fila 0 empezaría en este caso este texto nivel de gas 53 00:06:27,509 --> 00:06:32,410 y luego después en la segunda línea es decir a partir de la columna 0 y de la fila 1 es decir 54 00:06:32,410 --> 00:06:38,250 en la segunda línea incorporaríamos en este caso el valor que va a recibir el o que va a enviar en 55 00:06:38,250 --> 00:06:46,149 este caso el sensor de calidad del aire, por el pin A0. Ese valor estableceremos un nivel a partir 56 00:06:46,149 --> 00:06:53,230 del cual consideraremos que se ha detectado la presencia de ese gas. Para ello, como digo, 57 00:06:53,310 --> 00:07:00,589 debemos previamente hacer la calibración, acercar ese gas y comprobar a qué valor llega esta salida 58 00:07:00,589 --> 00:07:06,370 analógica y a partir de ahí estableceremos la detección de este gas. Y podremos en este caso, 59 00:07:06,370 --> 00:07:10,750 como vemos aquí en este bucle, incorporar un mensaje indicando que se ha detectado 60 00:07:10,750 --> 00:07:14,649 la presencia de ese gas concreto, en este caso de peligro gas tóxico 61 00:07:14,649 --> 00:07:18,350 que corresponde a cualquiera de los gases que hayamos utilizado. 62 00:07:18,730 --> 00:07:21,649 Es habitual, por ejemplo, utilizar un pequeño mechero con gas butano 63 00:07:21,649 --> 00:07:27,410 para hacer las comprobaciones y, por ejemplo, en este caso sería un sensor de gas butano 64 00:07:27,410 --> 00:07:30,350 y una alarma y podríamos, por lo tanto, establecer una alarma 65 00:07:30,350 --> 00:07:32,790 que avisara de la presencia de este gas butano. 66 00:07:32,790 --> 00:07:38,569 Bien, porque lo visualizaríamos a través de la pantalla LCD o luego ya incorporaríamos algún tipo de señal acústica o luminosa. 67 00:07:41,170 --> 00:07:47,730 Bien, el siguiente de los sensores que vamos a ver es un sensor muy particular, es un teclado matricial. 68 00:07:48,310 --> 00:07:56,610 Estos teclados se presentan en varios formatos, o bien de 12 teclas, de 4 filas y 3 columnas, 69 00:07:56,910 --> 00:08:03,889 o bien se puede presentar también como un teclado de 4 filas y 4 columnas, incluyendo las primeras letras del abecedario. 70 00:08:04,610 --> 00:08:19,670 En realidad se trata de una matriz de pulsadores y en esta matriz de pulsadores tenemos que identificar las filas y las columnas y sobre todo las conexiones para luego utilizar el lenguaje de programación adecuado para poder identificar qué tecla se ha pulsado. 71 00:08:19,670 --> 00:08:26,310 la librería que emplea este teclado matricial es la librería keypad.h 72 00:08:26,310 --> 00:08:31,949 y nos va a facilitar mucho la identificación de los pines y de la programación 73 00:08:31,949 --> 00:08:35,409 con la identificación de los pines y de las filas y de las columnas 74 00:08:35,409 --> 00:08:39,289 y nos va a facilitar por lo tanto saber que tecla ha sido pulsada 75 00:08:39,289 --> 00:08:42,789 es decir que hay dos modelos habituales para utilizar 76 00:08:42,789 --> 00:08:46,629 o bien los de membrana o estos que utilizan ya botones concretos 77 00:08:46,629 --> 00:09:09,289 En este programa, en este esquema que vemos aquí, en esta conexión, vemos como a partir del pin número 2 realizamos las conexiones correspondientes seguidas, entonces simplemente hay que identificar dependiendo del modelo que tengamos las filas y las columnas correctamente, porque no coinciden exactamente, entonces tiene que ir al fabricante, a los datasheets para ver exactamente como hacen las conexiones. 78 00:09:09,289 --> 00:09:28,590 Para este teclado concreto podemos ver que los pines de conexiones, en primer lugar este pin denominado número 1 no está conectado, todos los demás, los pines desde el 2 hasta el 8, tienen las conexiones correspondientes y corresponderían, como vemos aquí, a las filas y las columnas que se identifican. 79 00:09:28,590 --> 00:09:36,509 Por ejemplo, el conector número 8, en este caso, correspondería a la fila número 2. 80 00:09:37,429 --> 00:09:43,789 Entonces, identificando las columnas 1, 2 y 3 y las filas correspondientes y los pines en los que está conectado, 81 00:09:44,649 --> 00:09:51,710 cuando hagamos la conexión con la tarjeta de control Arduino, simplemente, en este caso, para el lenguaje Arduino Blocks, 82 00:09:51,710 --> 00:09:55,190 tenemos que identificar tipo de teclado, arrastrando el bloque correspondiente, 83 00:09:55,190 --> 00:10:01,389 y colocar adecuadamente las filas y las columnas que tenemos seleccionadas en este circuito de 84 00:10:01,389 --> 00:10:05,990 este en este tema de conexión e identificar claramente dónde están las filas y las 85 00:10:05,990 --> 00:10:12,169 columnas vamos a poner un ejemplo muy concreto si observamos en este caso para el teclado que 86 00:10:12,169 --> 00:10:17,950 vemos aquí vemos que el pin número 8 del teclado está conectado al pin número 2 digital de arduino 87 00:10:17,950 --> 00:10:23,250 bien esto qué significa significa que el pin número 8 corresponde con la columna pero con 88 00:10:23,250 --> 00:10:27,750 la fila número 2 bueno pues entonces en el bloque correspondiente para el control de filas y 89 00:10:27,750 --> 00:10:33,690 columnas vemos efectivamente como la columna número 2 perdón la fila número 2 correspondería 90 00:10:33,690 --> 00:10:39,149 en este caso con el pin número 2 si nos vamos por ejemplo al pin número 8 correspondería en 91 00:10:39,149 --> 00:10:44,250 este caso este pin que vemos aquí que es el 2 y en este caso concreto corresponde con la columna 92 00:10:44,250 --> 00:10:51,210 número 2 bueno pues nos iríamos entonces a la columna número 2 identificaríamos que está 93 00:10:51,210 --> 00:10:57,929 conectado el teclado a el pin número 8 de arduino si esta configuración hacemos correctamente luego 94 00:10:57,929 --> 00:11:01,950 ya podemos identificar por ejemplo con este programa podemos visualizar en la pantalla lcd 95 00:11:01,950 --> 00:11:07,529 podemos ver cualquiera de las teclas que nosotros tenemos pulsado podemos comprobar y podemos 96 00:11:07,529 --> 00:11:14,129 visualizarlo en la pantalla de cd vemos aquí que la variable tecla guardamos en este caso la tecla 97 00:11:14,129 --> 00:11:20,129 que haya sido pulsada y si la tecla una vez que hemos guardado la tecla si la tecla ya no no se 98 00:11:20,129 --> 00:11:23,870 pulsado, es decir, que hemos soltado la tecla, en este caso imprimimos por pantalla el valor 99 00:11:23,870 --> 00:11:28,509 de esa tecla que ha sido pulsada. Este pequeño programita nos permitiría, como digo, pulsar 100 00:11:28,509 --> 00:11:33,429 una tecla en el teclado y verlo visualizado el número correspondiente. Es muy sencillo 101 00:11:33,429 --> 00:11:38,409 para controlar el teclado y luego de aquí ya podríamos establecer proyectos muy interesantes 102 00:11:38,409 --> 00:11:48,409 como por ejemplo una cerradura codificada en la que una secuencia de pulsaciones concretas 103 00:11:48,409 --> 00:11:50,570 de cuatro pulsaciones, nos daría un pin 104 00:11:50,570 --> 00:11:52,529 y este pin si corresponde con el que tengamos 105 00:11:52,529 --> 00:11:54,230 almacenado en memoria, pues permitiría 106 00:11:54,230 --> 00:11:56,610 en este caso abrir una puerta, etc.