Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

1 - SENSORES BÁSICOS PARA ARDUINO - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 14 de diciembre de 2020 por Rafael M.

126 visualizaciones

Explicación del funcionamiento y programación de los sensores básicos para Arduino

Descargar la transcripción

Bien, bienvenidos a todos los asistentes a este curso de investigación y método científico 00:00:00
y en concreto a esta sesión de proyectos de investigación de tecnología, 00:00:06
en la que vamos a detallar los sensores y actuadores que habitualmente empleamos en tecnología 00:00:10
para el desarrollo de proyectos. 00:00:14
En primer lugar decir que nos centraremos en la parte de los sistemas de control programado 00:00:16
porque es la parte que nos permitirá desarrollar proyectos de investigación más atractivos para los alumnos, 00:00:20
sobre todo también de cara a la presentación tanto en el exterior, en ferias, concursos y demás. 00:00:27
Decir que un sistema de control programado es aquel que nos permite regular su funcionamiento 00:00:32
gracias a los sensores y a los actuadores que intervienen. 00:00:37
El elemento de control en este caso será una tarjeta de control, por ejemplo, la famosa tarjeta Arduino 00:00:41
que nos va a, gracias al programa que tenga incluido, nos va a permitir el control de los actuadores 00:00:49
en función de la información recibida por parte del sensor. 00:00:55
En este caso, aquí vemos un ejemplo muy sencillito 00:01:01
en el que un sensor de humedad informaría a la tarjeta de control 00:01:04
si existe o no humedad en el terreno 00:01:08
y en este caso se señalaría con un indicador luminoso, con un diodo LED. 00:01:10
La tarjeta Arduino es una de las más utilizadas en el campo de la robótica educativa 00:01:17
y de los sistemas de control programados en tecnología 00:01:23
porque es una tarjeta relativamente barata, de bajo coste y que nos permite con una fácil programación con los diferentes lenguajes que existen 00:01:25
desde el propio lenguaje Arduino, código Arduino, hasta lenguajes gráficos que facilitan mucho la programación y el control de esta tarjeta. 00:01:34
Esta tarjeta dispone de muchas entradas y salidas, dispone también de entradas analógicas, ya veremos más en detalle 00:01:43
y también nos permite la comunicación con otros periféricos más complicados empleando comunicación serie, que veremos más en detalle. 00:01:51
De los lenguajes de programación empleados habitualmente yo destacaría los lenguajes gráficos por ser más asequibles para los alumnos 00:02:01
y de entre ellos destacaremos algunos, especialmente Arduino Blocks, que nos permite la programación de una gran cantidad de sensores y de actuadores 00:02:09
con unos bloques gráficos muy descriptivos y muy fáciles de implementar. 00:02:20
En primer lugar, definiremos que es un sensor como el dispositivo que detecta una magnitud física 00:02:25
y normalmente la convierte en una señal eléctrica. 00:02:31
De esta manera podemos medir en el exterior la temperatura, la distancia, en fin, diferentes parámetros 00:02:35
y convertir estos parámetros, gracias al sensor, en una señal eléctrica 00:02:41
que interpretará, en este caso, el sistema de control programado y, en este caso, la tarjeta de control. 00:02:46
Los sensores que podemos encontrar conectados, que podemos encontrar en los dinos, 00:02:54
son desde los componentes discretos habituales en la electrónica hasta componentes ya en formato de módulos 00:02:58
que nos permiten la conexión incluida ya en la tarjeta y nos permite acoplarlo directamente a la tarjeta de control 00:03:04
de manera sencilla, sin mucho cableado. 00:03:11
entonces bueno pues hay muchos kits de estos en el que nos encontramos con diferentes sensores 00:03:15
aquí tenemos una muestra de 37 en 1 pero en fin hay una gran variedad de kits en las que se muestran 00:03:21
todo tipo de sensores ahora vamos a ver los más habituales que podemos emplear en tecnología y 00:03:27
cómo podemos implementar proyectos relacionados con ellos en primer lugar pues podemos hablar 00:03:31
del típico pulsador o típico sensor de tacto porque nos va a permitir detectar físicamente 00:03:37
un objeto delante del dispositivo de control y no es tan fácil como un simple pulsador 00:03:42
para poder detectar. Ahora bien, la conexión a la tarjeta de control exige que tengamos 00:03:50
en cuenta varias cosas. En primer lugar, no se puede conectar directamente porque las 00:03:55
entradas de la tarjeta Arduino necesitan estar a un nivel lógico bajo o alto, pero no a 00:04:00
un estado indeterminado como es este caso, como vemos aquí, si lo conectáramos de esta 00:04:05
manera, esta entrada número 11 estaría a un nivel indeterminado porque no se puede averiguar, en este 00:04:09
caso estaría al aire, en función del esquema eléctrico que vemos, por lo tanto no se debe emplear de esta 00:04:16
manera. Para ello tenemos que emplear lo que se llaman resistencias en pull-up o pull-down, son 00:04:20
resistencias que polarizan la entrada, o bien a nivel alto o bien a nivel bajo, y el pulsador se 00:04:25
coloca a continuación, de manera que nosotros podemos conectar cuando activemos el pulsador o 00:04:31
el interruptor, en este caso estará a nivel alto, cuando lo activamos estará a nivel bajo, 00:04:35
en este caso emplearíamos una resistencia de pull-up, y en el caso de resistencias de pull-down, 00:04:39
pues lo contrario, estaría en este caso conectado a nivel bajo, 00:04:45
y cuando nosotros activáramos el pulsador o el interruptor, esa entrada se detectaría a ese nivel alto. 00:04:47
Esta configuración podemos implementarla con componentes discretos, 00:04:53
pero ya existen, como digo, módulos, sensores ya en placa, que tienen ya la circuitería, 00:04:57
en este caso aquí veríamos esta resistencia, que equivaldría a esta resistencia que vemos aquí, 00:05:03
y simplemente con alimentar la placa y el pin siguiente sería el que nos determinaría 00:05:07
si el pulsador ha sido o no activado, pues nos permitiría detectar con la entrada 00:05:13
si el sensor de tacto ha sido activado. 00:05:17
Decir que como curiosidad, la tarjeta Arduino sí que contempla esta posibilidad 00:05:21
de resistencias de pula internas, es decir, que el microcontralor dispone de ellas 00:05:26
si las podemos activar en este caso con esta instrucción la típica instrucción pin mode que 00:05:31
determina si una entrada es perdón si una pin es de entrada o salida bueno pues con la instrucción 00:05:36
input pull up podemos en este caso configurar el pin 2 con una resistencia de pull up y por lo 00:05:42
tanto decide conectar la alimentación y por lo tanto detectaría cuando está a nivel bajo de 00:05:50
acuerdo el siguiente sensor también muy básico y muy sencillo es un sensor LDR este sensor como 00:05:54
ya conocemos mucho, es un sensor que nos permite detectar la cantidad de luz recibida, está 00:06:02
compuesto evidentemente de un componente que es sensible a la luz, como es el sulfuro de 00:06:08
cadmio y la conexión, como digo, en el caso de que sea un componente discreto, pues requiere 00:06:11
una circuitería adicional, en este caso sería colocar un divisor de voltaje que nos permita 00:06:16
acoplar la variación de tensión, en este caso a una entrada analógica de las que dispone 00:06:21
la tarjeta de control arduino para poder detectar esos cambios de luz y por lo tanto cambios de 00:06:29
tensión que se insertan en el pin en este caso analógico a cero si nos encontramos en los módulos 00:06:35
comerciales como es este caso que vemos aquí pues nos podemos encontrar con que tiene evidentemente 00:06:43
la alimentación propia de la circuitería todo en este caso el divisor de voltaje incluido también 00:06:47
en este dispositivo, pero como vemos hay más elementos. ¿Por qué es esto? Pues porque 00:06:54
además de darnos el valor que corresponde con el divisor de voltaje, también incluye 00:06:58
un comparador y un potenciómetro, de manera que tendríamos una salida adicional que 00:07:03
en función del punto de la posición del potenciómetro nos daría una señal eléctrica 00:07:09
cuando se superase un nivel de umbral, en este caso determinado por el potenciómetro 00:07:15
con respecto a la cantidad de la programación de este tipo de componentes es muy básica simplemente 00:07:20
habría que leer en este caso el pin analógico y bueno pues establecer en qué momento este 00:07:28
dispositivo va a detectar un cambio en este caso en un valor concreto y actuaría sobre activaría 00:07:34
los correspondientes actuadores en este caso concreto como vemos aquí pues hemos establecido 00:07:43
que la entrada analógica a cero cuando supere un nivel mayor de 512 es decir cuando esté a la 00:07:49
mitad de la máxima posibilidad de detectar niveles de tensión en este caso entre 0 y 5 voltios pues 00:07:56
se activaría en este caso el pin 13 lo del valor de 512 tiene que ver con el convertidor analógico 00:08:03
digital que tiene internamente el microcontrolador y en este caso admitirá valores cuando nosotros 00:08:11
insertemos tensiones en estos pines analógicos, el convertidor analógico 00:08:16
digital lo que hará será convertir la señal eléctrica que viene aquí en un 00:08:22
valor entre 0 y 1023, un convertidor analógico de 10 bits. En este caso, por 00:08:25
ejemplo, tendríamos el programa de control para el lenguaje Arduino, pero 00:08:31
como vemos en el lenguaje, por ejemplo, gráfico que ofrece 00:08:34
el software de simulación Tinkercad Circuits, pues vemos que mediante un 00:08:38
lenguaje gráfico muy sencillo y unos bloques muy concretos pues podemos establecer en este caso 00:08:43
este bucle condicional en el que se activará el pin 13 o no dependiendo del valor que entra por 00:08:47
él en este caso por el pin acero es un radiante sencillo el control a partir de un valor concreto 00:08:55
del nivel del otro sensor también que podemos emplear es el sensor de temperatura el sensor 00:09:02
El transistor LM35, por ejemplo, es uno de los más habituales porque parece un transistor, pero en realidad es un circuito integrado cuyos tres pines son uno de la alimentación, 00:09:08
que se puede alimentar entre 3 y 5,5 voltios más o menos, el correspondiente a negativo, a GND. 00:09:19
Y luego el tercer pin, en este caso es el pin central, es una salida analógica que nos da un valor de 10 milivoltios por cada grado centígrado que detecta. 00:09:27
dependiendo de los modelos tenemos rangos que van desde menos 155 grados 00:09:37
hasta 150 grados aunque en realidad el más habitual es emplear el 1 que nos da 00:09:41
desde 0 a 100 grados que es el lm 35 de manera que nos va a dar un valor 00:09:46
proporcional de tensión en función de la cantidad de grado en la precisión 00:09:53
suele ser aproximadamente unos 0.5 grados a temperatura ambiente la 00:09:57
precisión que tiene estos componentes y aquí vemos una programación en lenguaje 00:10:00
arduino de este dispositivo en la programación aquí que hay que hacer evidentemente sabiendo 00:10:05
que esto lo vamos a conectar a el pin analógico a 0 y decir a uno de los pines analógicos y por 00:10:10
lo tanto va a recibir una tensión proporcional a la temperatura que está recién que está 00:10:15
testeando el sensor pues sabiendo como hemos dicho antes que estas entradas analógicas establecen 00:10:19
una proporción entre 0 y 1023 pues sabiendo que los valores máximos que vamos a recibir será entre 00:10:28
0 y 5 voltios pues tendremos que establecer una regla de tres para que la cantidad de luz en este 00:10:32
caso en milivoltios perdón la cantidad de temperatura que vamos a detectar la vamos a 00:10:39
traducir en milivoltios entonces mediante este conjunto de operaciones en este programa en 00:10:44
lenguaje arduino vamos a convertir el valor que recibimos de la del sensor del ping a cero lo 00:10:50
lo vamos a convertir en milivoltios, de manera que si queremos saber simplemente el valor en grados centígrados, 00:10:57
pues tendremos que hacer la división de esos milivoltios que hemos calculado mediante esta regla de 3 entre 10, 00:11:04
de manera que nos dará efectivamente el valor en grados centígrados. 00:11:10
¿Qué ocurre? Que esto es realmente fácil de entender, aunque los programas luego puedan complicarse, 00:11:13
sin embargo nos encontramos que por ejemplo los lenguajes gráficos como Arduino Block ya implementan en un solo bloque 00:11:19
la conversión y los cálculos necesarios para convertir este valor recibido por el ping a cero 00:11:25
en el valor ya directamente en grados centígrados. 00:11:31
Y luego simplemente habría que guardarlo en una variable, en este caso llamada Celsius, 00:11:35
y enviaríamos en este caso por la comunicación serie de la tarjeta Arduino 00:11:40
el valor en grados centígrados, acompañado en este caso del texto de C para indicar grados centígrados, 00:11:45
y podríamos en este caso tener un perfecto termómetro que a través del ordenador nos diera, en este caso, el monitor serial del software de Arduino, 00:11:52
nos daría, en este caso, el valor de la temperatura que está midiendo el sensor LM35. 00:12:04
Otro sensor también que podemos encontrarnos, habitual también, que podemos y fácil de implementar, 00:12:12
es el sensor de movimiento, que es un sensor conocido como sensor PIR, en concreto el modelo 00:12:17
del HC-SR501, es un sensor llamado también de infrarrojo pasivo y lo que permite es detectar 00:12:24
el movimiento de una persona, una persona que tenga una temperatura en torno a los 37 00:12:31
grados más o menos, y al moverse delante del sensor, el sensor lo que detecta con dos 00:12:38
placas sensibles a esa luz infrarroja provocada por el calor de la persona, esa diferencia 00:12:43
de luz recibida infrarroja provocada por este calor, lo que hace es detectar entonces que 00:12:51
ha habido un movimiento y en este caso todo el circuito de control de este sensor PIR 00:12:57
permitiría la detección de ese movimiento. 00:13:03
Como veis tiene este aspecto, tiene aquí una especie de cúpula que se llama lente 00:13:07
fresnel que nos permite abarcar un poco más la capacidad de detección del 00:13:12
movimiento alrededor de este sensor y luego toda la circuitería nos permite 00:13:19
regular varias cosas en primer lugar nos permite regular el tiempo de activación 00:13:26
una vez que ha detectado el movimiento cuando cuando queremos que el pin de 00:13:32
salida tenga a este nivel alto es decir cuánto tiempo queremos que esté activada 00:13:36
activada 00:13:42
el sensor PIR 00:13:45
en este caso se puede activar 00:13:47
desde 3 segundos hasta 5 minutos 00:13:49
hasta que vuelva a realizar una nueva detección 00:13:52
también podemos 00:13:54
regular la distancia 00:13:56
a la que queremos que pueda 00:13:57
detectar el movimiento que va desde hasta los 3 metros 00:13:59
o hasta los 7 metros 00:14:01
con estas dos protecciones que vemos aquí 00:14:03
la alimentación como digo 00:14:06
incluso funcionaría sin ninguna 00:14:09
tarjeta de control porque tenemos tres pines, en este caso dos de alimentación, y la salida 00:14:11
es la que nos daría corriente eléctrica en caso de que detectase movimiento. 00:14:17
Bien, y otro de los sensores también habituales que se emplean en tecnología es el sensor 00:14:22
de ultrasonidos, el modelo HCSR04, que dispone de cuatro pines. Hay otro que tiene tres pines, 00:14:28
pero el habitual y más barato es este que dispone de cuatro pines, dos de alimentación 00:14:34
y dos pines denominados trigger, que es el pin que va a enviar, en este caso, la señal acústica 00:14:38
y el pin echo que recibe, en este caso, la señal acústica enviada por trigger una vez que ha rebotado con el objeto. 00:14:45
Pues el tiempo que tarde en recibir echo la señal acústica enviada por trigger 00:14:54
nos va a poder determinar la distancia a la que se encuentra el objeto 00:15:01
sabiendo evidentemente la velocidad del sonido. 00:15:05
Aquí vemos en este pequeño cálculo un ejemplo sencillo 00:15:09
de cómo determinar la distancia a la que se encuentra el objeto 00:15:13
sabiendo la velocidad del sonido y el tiempo que ha tardado ese pulso enviado, 00:15:15
esa señal acústica enviada por trigger y el tiempo que ha tardado en recibir la eco. 00:15:20
Evidentemente dividido a la mitad porque el tiempo evidentemente es de ida y vuelta. 00:15:24
Entonces por lo tanto el tiempo tiene que ser dividido entre la mitad. 00:15:28
Como vemos, si la velocidad del sonido son 343 metros por segundo, esto significa que en realidad es 0,034 centímetros por microsegundos, 00:15:31
o dicho de otra manera, que el tiempo tarda aproximadamente en recorrer un centímetro, pues 29,2 microsegundos. 00:15:39
Bueno, por la distancia entonces que nos va a determinar, que podemos calcular y averiguar con este sensor, 00:15:48
simplemente va a ser la velocidad de sonido multiplicado por la mitad del tiempo que tarda la señal en volver 00:15:52
una vez que la ha enviado el ping trigger, el tiempo que haya tardado dividido entre dos. 00:16:00
Es decir, que por ejemplo si ha tardado 588 microsegundos la señal recibida por el receptor 00:16:08
significa por lo tanto que la distancia está aproximadamente a unos 10 centímetros. 00:16:15
Aquí tenemos un ejemplo de la programación de este dispositivo con lenguaje Arduino 00:16:19
en la que observamos que efectivamente configuramos los pines 5 y 6 00:16:25
en este caso para este ejemplo tenemos aquí 5 y 6 como eco y como trigger 00:16:30
y mediante el puerto serie vamos a poder saber la distancia en centímetros que se encuentra el objeto 00:16:35
¿Cómo lo hacemos esto? Pues empleando la función pin que está aquí detallada 00:16:42
Y en la que observamos que efectivamente esa función pin nos va a permitir hacer los cálculos necesarios para determinar en función del tiempo que tarda la señal en rebotar al objeto, determinar la distancia. 00:16:46
Y para ello lo que hacemos es enviar un pulso por el pin trigger, enviar un pulso de 10 microsegundos y ver cuánto tiempo tarda el pin eco en recogerlo. 00:16:58
En función de ese valor, podemos calcular la distancia mediante este cálculo que vemos aquí, que es el equivalente a este que vemos aquí. 00:17:11
Y todo esto que vemos aquí, esta función pin, en realidad podemos encontrarnos con lenguajes gráficos que ya realizan todo este cálculo en un solo bloque. 00:17:18
y de manera que en este caso por ejemplo para Arduino Blocks 00:17:28
pues nos encontramos con que el bloque distancia 00:17:31
indicando los pines a los que hemos conectado trigger y eco 00:17:33
nos va a determinar ya el valor en centímetros de ese objeto 00:17:38
lo guardamos en este caso en una variable por ejemplo en centímetros 00:17:45
y ya podremos imprimir en este caso por el puerto serie 00:17:48
por la distancia en centímetros que se encuentra 00:17:51
a la que se encuentra el objeto que queremos averiguar su distancia. 00:17:55
Entonces, como vemos, los lenguajes gráficos simplifican mucho la programación que hubiera que hacer, 00:17:59
en este caso de estos sensores, que requieren ya de una serie de cálculos. 00:18:05
Está bien conocer cómo se realiza todo este proceso, está bien que el alumno conozca todo esto, 00:18:09
pero lo interesante luego es poder ya utilizarlo directamente para aplicaciones y proyectos concretos. 00:18:13
Otro de los sensores también que se pueden emplear es el sensor de infrarrojos. 00:18:19
Y aquí tenemos varias modalidades de sensor de infrarrojos que nos permiten, pues, uno detectar objetos situados cerca delante del sensor de infrarrojos porque, por ejemplo, en el primero de los dispositivos que vemos aquí, es un sensor que tiene el emisor y el receptor. 00:18:23
Tiene emisor y receptor de infrarrojos y, por lo tanto, uno emite la luz y en función del objeto que tenga por delante lo reflejará y el dispositivo lo detectará. 00:18:40
podemos ajustar la distancia a la cual se detecta el objeto mediante este tipo de tiempo 00:18:49
tenemos otros sensores en este caso que incorporan o que están diseñados para detectar los cambios entre el blanco y el negro 00:18:55
lo que se llama habitualmente detectores de línea 00:19:02
y en este caso llevan un sensor específico el TCR-TQ5000 que tiene esta característica tan peculiar 00:19:05
y que nos facilita mucho la utilización de estos dispositivos en robots seguidores de línea. 00:19:13
Y luego tenemos otro tipo de sensores infrarrojos, en este caso en forma de U, 00:19:22
que nos van a permitir saber cuándo un objeto irrumpe en el interior de este sensor. 00:19:25
Esto se emplea sobre todo, evidentemente, para encoders y dispositivos que permitan contar vueltas. 00:19:31
Aquí tenemos en el lenguaje de programación Arduino Block, pues tenemos ya los bloques para cada uno de estos tipos de sensores para poder controlarlos y simplemente hay que indicar en este caso el pin en el que está conectado. 00:19:38
Autor/es:
RAFAEL M
Subido por:
Rafael M.
Licencia:
Reconocimiento - No comercial
Visualizaciones:
126
Fecha:
14 de diciembre de 2020 - 18:15
Visibilidad:
Público
Centro:
IES GRAN CAPITAN
Duración:
19′ 52″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
142.18 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid