1 00:00:00,700 --> 00:00:05,879 Bien, bienvenidos a todos los asistentes al curso de investigación y método científico en el aula 2 00:00:05,879 --> 00:00:11,439 y en concreto a la serie de vídeos dedicados a los sensores y actuadores habitualmente empleados en tecnología. 3 00:00:12,140 --> 00:00:16,300 En concreto este vídeo estará dedicado a los sensores y actuadores avanzados 4 00:00:16,300 --> 00:00:22,059 que vamos a clasificar así porque requieren de una serie de librerías específicas para su control y su programación 5 00:00:22,059 --> 00:00:26,420 y que por tanto pues incrementan la dificultad a la hora de utilizarlos. 6 00:00:26,420 --> 00:00:34,899 Afortunadamente tenemos lenguajes de programación que facilitan la utilización de estos sensores y actuadores avanzados 7 00:00:34,899 --> 00:00:45,820 como es el caso de Arduino Blocks que contiene en su listado, en su biblioteca de instrucciones y de bloques de programación 8 00:00:45,820 --> 00:00:54,179 un conjunto de bloques que permiten el control de sensores y actuadores como pantallas LCD en comunicación I2C 9 00:00:54,179 --> 00:00:59,200 sensores de humedad y de temperatura, pantallas OLED, teclados, etc. 10 00:00:59,840 --> 00:01:06,939 Estos bloques están distribuidos en función de este tipo de sensores y de actuadores 11 00:01:06,939 --> 00:01:11,959 y incluyen todos los instrucciones, los bloques gráficos necesarios para su control. 12 00:01:13,680 --> 00:01:19,620 Para entender cómo funcionan estos dispositivos, estos sensores y actuadores avanzados 13 00:01:19,620 --> 00:01:24,140 en primer lugar hay que conocer cómo se comunica Arduino con estos dispositivos. 14 00:01:24,180 --> 00:01:29,219 La comunicación que dispone Arduino es una comunicación serie 15 00:01:29,219 --> 00:01:33,900 y dependiendo del tipo de dispositivo esta comunicación serie es de un tipo o de otro 16 00:01:33,900 --> 00:01:40,459 En primer lugar habría que diferenciar qué es la comunicación serie y qué es la comunicación en paralelo 17 00:01:40,459 --> 00:01:42,900 que son otros tipos de comunicación de datos que podemos tener 18 00:01:42,900 --> 00:01:51,420 En el primer caso una comunicación en paralelo es sencillamente la transmisión de datos de una sola vez con un solo pulso de reloj 19 00:01:51,420 --> 00:01:56,980 y por lo tanto todos estos datos viajan de una sola vez y evidentemente es una comunicación mucho más rápida. 20 00:01:57,659 --> 00:02:00,420 Sin embargo Arduino dispone de una comunicación serie. 21 00:02:02,099 --> 00:02:14,400 Esta comunicación serie tiene varios formatos y lo que fundamentalmente ocurre es que esa transmisión de datos se realiza con pulsos de reloj y con un bit detrás de otro. 22 00:02:14,879 --> 00:02:17,879 Esto evidentemente implica que la comunicación es mucho más lenta. 23 00:02:17,879 --> 00:02:30,340 Ahora bien, estos hemicocontroladores, como por ejemplo los que dispone la tarjeta de control Arduino, han evolucionado mucho y la velocidad de transmisión serie es bastante elevada. 24 00:02:30,699 --> 00:02:44,259 Por lo tanto, podemos decir que esta comunicación serie va a permitir el control de estos dispositivos avanzados utilizando este tipo de comunicación serie sin ralentizar el proceso de control del dispositivo. 25 00:02:44,259 --> 00:02:52,439 básicamente vamos a ver tres tipos de comunicación serie que dispone arduino y cuyos pines están aquí 26 00:02:52,439 --> 00:02:56,960 detallados como vemos podemos utilizar una comunicación y 2c ahora detallaremos lo que 27 00:02:56,960 --> 00:03:03,060 consiste una comunicación uart en estos pines que vemos aquí y una comunicación denominada spi que 28 00:03:03,060 --> 00:03:10,259 utiliza estos cuatro pines y aquí tenemos pues los tres tipos de comunicación serie que dispone 29 00:03:10,259 --> 00:03:16,919 Arduino. En primer lugar tenemos la comunicación denominada UART, es una comunicación universal 30 00:03:16,919 --> 00:03:22,900 asíncrona de transmisión y recepción y es una comunicación asíncrona lo que significa 31 00:03:22,900 --> 00:03:28,900 que no necesita una señal de reloj para sincronizar los datos que envía Arduino o que recibe 32 00:03:28,900 --> 00:03:35,080 del dispositivo. Como no tiene una señal de reloj que sincronice estos datos, entonces 33 00:03:35,080 --> 00:03:38,860 tenemos que establecer una serie de protocolos para el envío y la recepción de las señales 34 00:03:38,860 --> 00:03:43,219 y que el dispositivo pueda comunicarse sin problemas con Arduino. 35 00:03:44,319 --> 00:03:48,360 Para empezar, la velocidad de transmisión y de recepción tiene que estar en los dos, 36 00:03:48,500 --> 00:03:51,340 la misma velocidad de transmisión y de recepción de datos. 37 00:03:51,840 --> 00:03:59,919 Y los pines que utiliza Arduino para esta emisión y recepción de datos son los pines 0 y 1 digitales 38 00:03:59,919 --> 00:04:08,580 y nos permite, mediante el pin TX de transmisión de datos, enviar datos hacia el dispositivo 39 00:04:08,580 --> 00:04:15,879 y mediante el pin RX, recepción de datos, podemos recibir los datos enviados por el dispositivo, por el periférico que queremos controlar. 40 00:04:16,560 --> 00:04:24,740 Por supuesto, ambos dispositivos tienen que tener referenciado las señales al mismo nivel de GND 41 00:04:24,740 --> 00:04:28,240 y por lo tanto esta señal de GND tiene que ser común en ambos dispositivos. 42 00:04:28,740 --> 00:04:31,720 La velocidad máxima de transmisión es de unos 20 kW por segundo 43 00:04:31,720 --> 00:04:35,939 y bueno, pues por ejemplo podemos encontrarnos en las comunicaciones Bluetooth, por ejemplo, 44 00:04:35,939 --> 00:04:47,139 y podemos incorporar a Arduino una comunicación Bluetooth para poder comunicarnos con este sistema de transmisión de datos. 45 00:04:47,959 --> 00:04:54,600 La mayoría de los periféricos, no obstante, utilizan el sistema de comunicación serie denominado I2C, 46 00:04:55,060 --> 00:04:59,939 algo así como circuito interintegrado, y es una comunicación de tipo síncrona. 47 00:05:00,100 --> 00:05:00,699 ¿Esto qué significa? 48 00:05:00,699 --> 00:05:11,000 Significa que todos los dispositivos que vamos a controlar tienen una señal de reloj que sincroniza los datos enviados y recibidos desde el dispositivo Arduino. 49 00:05:11,899 --> 00:05:23,579 Por lo tanto necesitamos dos líneas fundamentalmente de conexiones, la línea denominada SCL o señal de reloj y la denominada SDA que es la transmisión y recepción de datos. 50 00:05:23,579 --> 00:05:31,740 Para poder identificar en una sola línea a qué dispositivo se le envía o recibe los datos, 51 00:05:31,740 --> 00:05:36,779 cada uno de estos dispositivos tiene lo que se llama un direccionamiento, que es un valor en 52 00:05:36,779 --> 00:05:41,259 hexadecimal que nos va a permitir identificar hacia dónde va la información o de dónde la 53 00:05:41,259 --> 00:05:49,319 recibimos. Los pines que utilizan esta tecnología I2D, comunicación serie I2D, son los pines A4 y 54 00:05:49,319 --> 00:05:57,639 a 5, que son los pines elanógicos situados en la parte izquierda en la figura que hemos 55 00:05:57,639 --> 00:06:02,879 visto anteriormente. La velocidad de transmisión máxima que puede alcanzar es alrededor de 56 00:06:02,879 --> 00:06:08,720 1 MW por segundo y es la más utilizada en la mayoría de los periféricos que podemos 57 00:06:08,720 --> 00:06:13,579 controlar con Arduino. No obstante, existe otro tipo de transmisión de la que dispone 58 00:06:13,579 --> 00:06:40,439 Arduino que es una transmisión denominada SPI por las siglas que vemos aquí y es una transmisión que requiere un conjunto de líneas de datos mayores o un conjunto de conexiones mayores y esto es así porque en primer lugar es una comunicación sincrona, es decir, que necesitamos una señal de reloj, todos los dispositivos por lo tanto tienen que tener la señal de reloj conectada y utilizamos para la comunicación y recibimiento de datos, utilizamos cuatro conexiones. 59 00:06:40,439 --> 00:07:00,120 La conexión MOSI, denominada así porque es la que envía los datos, algo así como Master Output, Slate Input, nos permite que el dispositivo Arduino envíe los datos hacia el receptor. 60 00:07:00,120 --> 00:07:08,660 La siguiente línea, la línea MISO, vendría de las siglas Master Input y Slave Output 61 00:07:08,660 --> 00:07:14,240 y por lo tanto es el dispositivo, el receptor, el periférico el que envía los datos hacia Arduino 62 00:07:14,240 --> 00:07:19,279 Pero para saber en qué momento, qué dispositivo es el que estamos recibiendo los datos 63 00:07:19,279 --> 00:07:23,259 añadimos una siguiente línea, la línea denominada CS o Chip Select 64 00:07:23,259 --> 00:07:29,100 en el que lo que hacemos es activar o comunicarnos con ese dispositivo 65 00:07:29,100 --> 00:07:38,160 mediante una línea auxiliar adicional que es la que activamos para que el dispositivo permita la transmisión o la recepción de los datos. 66 00:07:38,759 --> 00:07:45,040 La velocidad, por supuesto, todos los dispositivos, como igual que los anteriores, referenciado siempre a negativo, 67 00:07:45,180 --> 00:07:48,699 por lo tanto, GND tiene que ser común en todos los dispositivos con respecto a Arduino. 68 00:07:48,699 --> 00:07:56,860 La velocidad máxima de transmisión es de unos 25 MB por segundo y, por ejemplo, podemos encontrarnos la comunicación SPI 69 00:07:56,860 --> 00:08:04,500 en los lectores de tarjetas RFDI que veremos en una de las aplicaciones que contaremos en su momento en un vídeo posterior. 70 00:08:06,439 --> 00:08:13,100 Vamos entonces a ver uno de los primeros actuadores que requieren una librería especial 71 00:08:13,100 --> 00:08:18,819 que es en concreto la pantalla LCD o la pantalla de cristal líquido 72 00:08:18,819 --> 00:08:25,980 y en concreto aquella que tiene en su conexión un controlador específico denominado HD44780 73 00:08:25,980 --> 00:08:33,659 que es un controlador de tipo I2C, que nos va a permitir comunicarnos con Arduino solamente con dos líneas de datos, 74 00:08:33,759 --> 00:08:42,740 las correspondientes a la comunicación serie por I2C, a la margen evidentemente de la alimentación propia del actuador, 75 00:08:43,139 --> 00:08:47,779 que requerirá evidentemente una alimentación con positivo y con negativo. 76 00:08:47,779 --> 00:09:00,120 Bueno, por los dos cables de SDA y SCL nos va a permitir comunicarnos fácilmente con este actuador y poder mostrar caracteres alfanuméricos. 77 00:09:00,620 --> 00:09:13,059 Comercialmente se presentan en dos formatos, como un display, como una pantalla LCD de dos líneas de 16 caracteres cada línea y también nos encontramos aquellos que tienen 4 líneas y 20 caracteres. 78 00:09:13,059 --> 00:09:29,559 Este controlador, como digo, que vemos aquí detallado, se puede presentar de manera externa a la pantalla LCD o se puede ya adquirir de forma física unida a la pantalla LCD con la conexión ya realizada. 79 00:09:29,559 --> 00:09:35,820 desde el punto de vista externo que podemos ver en este controlador 80 00:09:35,820 --> 00:09:40,500 nos encontramos que dispone de un jumper para poder activar o desactivar la retroalimentación 81 00:09:40,500 --> 00:09:44,399 perdón, la retroiluminación que dispone el dispositivo 82 00:09:44,399 --> 00:09:48,240 también tenemos un potenciómetro para poder ajustar el contraste 83 00:09:48,240 --> 00:09:51,220 modificar el contraste en los cuales vamos a ver los caracteres 84 00:09:51,220 --> 00:09:54,460 un LED indicador de que el dispositivo está alimentado 85 00:09:54,460 --> 00:09:57,820 y los correspondientes pines que son los que están bien conectados a los pines anteriores 86 00:09:57,820 --> 00:10:17,919 Es decir que anteriormente a la aparición de este controlador, las conexiones que requería esta pantalla LCD eran bastante numerosas, había que conectar cuatro líneas de datos para Arduino al margen de las correspondientes a la alimentación del dispositivo, al contraste con potenciómetro, etc. 87 00:10:17,919 --> 00:10:27,320 Es decir, que requería muchas conexiones y sin embargo ahora con este controlador podemos conectarlo solamente con cuatro líneas. 88 00:10:27,740 --> 00:10:39,700 Luego cada uno de estos controladores viene de fábrica con una serie de direccionamientos como corresponde a la comunicación I2C y normalmente suelen ser 0x27 o 0x3F. 89 00:10:39,700 --> 00:10:56,340 En cualquier caso podemos modificar ese direccionamiento soldando los diferentes conectores que vemos aquí, estos tres conectores A0, A1 y A2, dependiendo de cuáles tengamos conectados podemos modificar ese direccionamiento, pero por defecto como digo nos encontramos con uno de estos.