Activa JavaScript para disfrutar de los vídeos de la Mediateca.
1 - SENSORES BÁSICOS PARA ARDUINO - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Explicación del funcionamiento y programación de los sensores básicos para Arduino
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
y
00:14:06
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