Sesión 5: programando sensores con Arduino

Currículo: aquí encontrarás el desarrollo detallado de los contenidos que forman parte del Curso de pensamiento computacional, robótica e internet de las cosas, organizado por el CEP de Huelva – Isla Cristina.

Tabla de contenidos

Duración: 3 horas.

Objetivos: el objetivo de esta sesión es descubrir, a través del montaje de pequeños proyectos, cómo funcionan y sobre todo cómo se programan una variedad de sensores. Teniendo este conocimiento estaremos mucho más preparados para, en una segunda fase, elaborar aplicaciones prácticas que podamos trabajar en el aula con nuestros alumnos.

Prerrequisitos: los participantes deberán dominar los conceptos que se cubrieron en la sesión anterior.

1. Introducción

En la sesión anterior, hicimos una introducción al mundo del hardware libre, repasando las partes que componen la placa controladora Arduino, los accesorios que necesitamos para montar nuestros circuitos y la mecánica de programación necesaria para poder trabajar con la dotación de EducaAndOS.

En esta ocasión, nos centraremos en descubrir cómo se conectan y programan una variedad de sensores que nos permitan montar proyectos interesantes para nuestros alumnos en el aula.

2. Sensor de ultrasonidos

Un sensor de ultrasonidos es un dispositivo que nos permite medir la distancia desde nuestro sensor a un objeto.

Su aspecto es este (hay varios modelos, pero este HC-SR04 es el que viene con Maqueen):

Como puedes ver tiene dos elementos circulares situados en sus extremos, se trata del emisor -el izquierdo- y el receptor -el derecho-. Los puedes identificar visualmente porque el emisor tiene una T -para transmitir una onda- y el receptor una R -para recibir el rebote de la onda-.

Además, se les llama ultrasónicos porque la onda de sonido con la que trabajan viaja a una velocidad superior a la del sonido, por lo que es imperceptible para el oído humano.

Por otro lado, cuenta con 4 pines:

  1. Vcc: para la alimentación, lo conectaremos a nuestra salida de 5V.
  2. Trig: para lanzar la onda, lo conectaremos a un pin digital.
  3. Echo: para recoger la onda rebotada, lo conectaremos a un pin digital.
  4. GND: para la tierra, lo conectaremos a cualquiera de nuestros pines GND.

Ya tienes todos los elementos necesarios para trabajar con este sensor, así que vamos a montarlo, en nuestra placa usando, como siempre, Tinkercad:

Vamos a comprobar si funciona o no.

Para ello, simplemente vamos a mostrar en el monitor serie los valores que está leyendo el sensor:

Efectivamente, nuestro sensor está funcionando bien.

Si te preguntas cómo puedes modificar la distancia que está leyendo el sensor en Tinkercad: una vez que inicies la simulación, pulsa sobre el sensor y podrás mover el punto en el que se encuentra el objeto, para comprobar si el sensor lee correctamente la distancia:

Ahora que ya sabes cómo funciona, es hora de que lo apliques.

Tu trabajo es añadir 3 LED, uno rojo, uno amarillo y uno verde y hacer lo siguiente:

  • Si el objeto está a una distancia superior o igual a 10cm, debe permanecer encendido el LED verde.
  • Si el objeto está a una distancia inferior a 10cm pero superior a 5cm, debe permanecer encendido el LED amarillo.
  • Si el objeto está a una distancia inferior o igual a 5cm, debe permanecer encendido el LED rojo.

Te dejo el esquema del circuito por si no recuerdas cómo se conectaban los LEDs:

Puedes aplicar lo que has aprendido para programar un semáforo, una barrera elevadora, un medidor de la cantidad de agua que hay en un depósito, un controlador de tráfico, etc.

3. Fotorresistencias

Una fotoresistencia, también conocida como LDR (por sus siglas en inglés, Light Dependent Resistor), es un componente electrónico cuya resistencia varía en función de la cantidad de luz que incide sobre ella. Este dispositivo está compuesto por un material semiconductor que, al recibir luz, permite el paso de los electrones con mayor facilidad, reduciendo así su resistencia eléctrica. En condiciones de oscuridad, la resistencia de la fotoresistencia aumenta considerablemente, llegando a valores de varios mega ohmios -MΩ-, mientras que en presencia de luz intensa, su resistencia puede disminuir a unos pocos cientos de ohmios.

Este es su aspecto:

Tres fotoresistencias

Las fotoresistencias son ampliamente utilizadas en una variedad de aplicaciones, dada su capacidad de detectar cambios en la luz ambiental. Algunas de sus aplicaciones más comunes incluyen:

  • Sensores de luz: se utilizan en dispositivos que necesitan activarse o desactivarse automáticamente en función de la luz ambiental, como las luces de calle que se encienden al anochecer y se apagan al amanecer.
  • Alarmas de seguridad: en sistemas de seguridad, pueden emplearse para detectar la interrupción del haz de luz, lo que indicaría una posible intrusión.
  • Control de iluminación: se usan en sistemas de domótica para ajustar la intensidad de la iluminación en una habitación según la luz natural disponible, maximizando así el ahorro energético.
  • Dispositivos fotométricos: forman parte de instrumentos que miden la intensidad de la luz, como los luxómetros, utilizados para verificar las condiciones de iluminación en diferentes entornos.
  • Arte: en el ámbito artístico y en espectáculos, las fotoresistencias pueden formar parte de instalaciones interactivas que cambian en respuesta a la luz ambiental o a las sombras proyectadas por el público.
  • Juguetes electrónicos: se integran en juguetes para añadirles funcionalidades basadas en la detección de luz, como vehículos que cambian de dirección al encontrar una fuente de luz.

En resumen, este componente electrónico funciona así:

  • Cuanta más luz recibe, menos resistencia ofrece = mayor voltaje.
  • Cuanta menos luz recibe, más resistencia ofrece = menor voltaje.

Para comprobar que esto es así, vamos a realizar nuestro primer montaje:

Lo único que hemos hecho es situar nuestra fotoresistencia, atenuar la corriente que recibe con una resistencia de 10kΩ y también situar un cable verde que llevamos a la entrada analógica A5 para ir leyendo el valor de la resistencia que ofrece en cada momento la fotoresistencia. 

Para hacer nuestras comprobaciones, podemos recurrir nuevamente al monitor serie, así comprobaremos cuál es el valor que lee cuando está oscuro y poder jugar con los valores en un entorno real:

Si inicias la simulación, pinchas sobre la fotoresistencia y vas variando la cantidad de luz que recibe, podrás observar en el monitor en serie cómo va variando el valor del voltaje. Cuando aumentas la luz el voltaje disminuye y cuando reduces la luz el voltaje aumenta.

En la habitación en la que yo me encuentro, la fotoresistencia ofrece valores de voltaje de entre 300 y 400. Si le pongo la mano muy cerca -quitándole la mayor parte de la luz-, el valor se dispara a entre 800 y 900.

¿Has visto alguna vez esas situaciones en las que de pronto se va la luz y se activan las luces de emergencia?

Pues eso es lo que vamos a simular con nuestro circuito.

Tendremos dos LEDs, uno verde y otro rojo. El verde permanecerá encendido mientras haya luz ambiente suficiente, y cuando no haya, se encenderá el sistema de emergencia -el LED rojo-.

Nuestro problema se reduce a incorporar a nuestro circuito anterior dos LEDs y comprobar el valor de la fotoresistencia para encender uno y apagar el otro, y viceversa (recuerda que para los LEDs usamos resistencias de 220Ω):

Ese es el circuito, la programación es cosa tuya.

4. Potenciómetros

Un potenciómetro no es otra cosa que una resistencia variable, y tiene este aspecto:

Se trata de un componente muy importante en el campo de la electrónica. Se utiliza comúnmente en muchas situaciones, como por ejemplo cuando estamos subiendo y bajando el volumen de un equipo de sonido, cambiar la emisora de la radio del coche, o cuando cambiamos la intensidad de la luz de una lámpara inteligente.

Su funcionamiento es bastante simple. Tiene tres patillas:

  1. En un extremo conectamos la corriente, el voltaje.
  2. El otro extremo lo conectamos a tierra, como siempre.
  3. Y la patilla del centro la usaremos para obtener el valor de la resistencia que nos da el potenciómetro cuando giramos el tornillo que sobresale.

Teniendo esta herramienta, vamos a crear un sistema que consigue modificar la intensidad de la luz que emite un LED en función del giro que le demos al potenciómetro.

Como siempre, lo primero que haremos será montar nuestro circuito.

Cuando utilizamos algunos componentes, como el potenciómetro, en Tinkercad, tenemos que indicarle algunas propiedades eléctricas (igual que hacemos en el caso de las resistencias). En este caso, tenemos que decirle cuál es el valor de la resistencia total que contiene. Esto siempre podemos mirarlo en el componente físico que vamos a usar. Si le dáis la vuelta a nuestro potenciómetro de clase, veréis que tiene la inscripción 10K. Eso significa que utiliza 10KΩ, es decir, 10.000Ω. Por tanto, tenemos que configurar en Tinkercad nuestro componente para que funcione con ese valor:

La patilla central del potenciómetro es el que nos dará el valor de la resistencia que hemos seleccionado cuando lo giramos con los dedos, así que ese valor se lo tenemos que dar a la placa controladora para que sepa con qué voltaje queremos que funcione el LED. Así que, la patilla central, la conectamos a una entrada analógica, por ejemplo la A1.

Ahora tenemos que alimentarla con 5V y también llevar su última patilla a GND/tierra para cerrar el circuito completo.

Para leer los valores analógicos que nos ofrece, procedemos igual que siempre, mostrando en el monitor serie qué está pasando:

Ya sabes que los valores analógicos van del 0 al 1023, así que modificando el potenciómetro puedes comprobar en qué extremo se sitúa cada valor:

Tu trabajo ahora es añadir un LED para que se encienda o apague en función del valor que esté entregando el potenciómetro, de manera que:

El LED se encenderá sólo si el potenciómetro tiene uno de esos rangos de valores: de 0 a 256 o de 768 a 1023, y permanecerá apagado el resto de valores.

5. Zumbadores

En este otro ejemplo experimentaremos con el sonido, y específicamente con unos componentes muy útiles llamados zumbadores (buzzers).

Existen dos tipos que son los zumbadores activos y los pasivos:

Zumbador activoZumbador pasivo
Tienen una pegatina en la tapa superiorEstán tapados en su parte inferiorNo tienen pegatina en la tapa superiorEstán abiertos en su parte inferior

Para nuestro proyecto, utilizaremos el primero, el activo. La elección viene motivada por la facilidad de uso, ya que tiene un circuito interno que realiza todo el trabajo por nosotros. Sólo tendremos que darle 5V por su polo positivo, llevar el negativo a tierra y ya directamente nos va a dar el tono de sonido que viene predeterminado por el fabricante.

También, tiene dos desventajas que conviene citar:

  • Es más caro que el pasivo.
  • Están muy limitadas las posibilidades de cambiarle el tono al sonido.

Visto todo lo anterior, veamos cómo hacer que funcione. Vamos a utilizar nuestro zumbador junto con un potenciómetro, de manera que cuando el valor que envíe el potenciómetro (recuerda, envía valores de 0 a 1023) sea superior a 1000, nuestro zumbador comenzará a pitar.

Seguro que ya se te ocurren algunas aplicaciones de la vida real donde podrías usarlo. Mientras reflexionas sobre sus aplicaciones prácticas, voy a ir montando el circuito:

Ya sabemos como conectar un potenciómetro, y el zumbador lo único que tiene es un cable a tierra y luego su positivo a una salida digital.

A la vista del montaje del circuito, la programación tampoco tiene ninguna ciencia. Sólo por asentar cosas que ya sabemos: 

  • El valor del potenciómetro lo obtendremos haciendo una lectura analógica.
  • El valor del zumbador lo estableceremos haciendo una escritura digital.

La programación del zumbador es similar a la de un LED. Tomamos el pin elegido y lo ponemos en BAJA cuando queremos que no suene, y en ALTA cuando queremos que suene.

Así de sencillo.

Y como ya sabes programar un Potenciómetro, dejo en tus manos la programación de este proyecto.

6. Display BCD de 7 segmentos

Un display BCD de 7 segmentos es un tipo de dispositivo de visualización que se utiliza comúnmente para representar números decimales en dispositivos electrónicos. BCD se refiere a «Binary-Coded Decimal», un método de codificación de números en el que cada dígito decimal se representa mediante su propio conjunto de 4 bits binarios.

Consta de siete segmentos LED dispuestos en una figura de “8”, con cada segmento capaz de iluminarse de forma independiente. Mediante la activación selectiva de estos segmentos, se pueden mostrar los números del 0 al 9. De esta manera, podemos usarlo en relojes digitales, calculadoras y otros equipos que requieren una visualización numérica clara y simple.


Este tipo de display es valorado por su simplicidad y eficacia, facilitando la integración en diversos proyectos de electrónica y robótica.

En nuestro proyecto, vamos a usar pines digitales para encender cada uno de los segmentos. Si te fijas en la imagen anterior, usaremos estos pines para cada segmento:

SegmentoPin digital
a7
b8
c2
d3
e4
f6
g5

Teniendo en cuenta lo anterior, estos serán los pines que necesitaremos activar para que se muestre en el display los números del 1 al 9:

  1. Pines 8 y 2.
  2. Pines 7, 8, 5, 4 y 3.
  3. Pines 7, 8, 5, 2 y 3.
  4. Pines 6, 5, 8 y 2.
  5. Pines 7, 6, 5, 2 y 3.
  6. Pines 6, 4, 3, 2 y 5.
  7. Pines 7, 8 y 2.
  8. Pines 2, 3, 4, 5, 6, 7 y 8 (todos).
  9. Pines 5, 6, 7, 8 y 2.
  10. Para el 0, los pines 2, 3, 4, 6, 7 y 8.

Pues, visto lo anterior, sólo quedaría descubrir a qué corresponden las 10 patillas que tiene nuestro componente electrónico:

  • Las 5 patillas superiores, se corresponden con g (5) – f (6) – GND a (7) – b (8).
  • Las 5 patillas inferiores, se corresponden con e (4) – d (3) – GNDc (2) – vacío (aquí iría el punto).

Ya tenemos el mapa completo de nuestro proyecto.

Vamos a cablear.

Encender o apagar un segmento, no es otra cosa que enviar ALTA o BAJA al pin digital donde está conectado, tal y como hacíamos con los LEDs.

Eso sí, para que te funcione correctamente, debes configurar el display de Tinkercad en modo Cátodo común, porque los segmentos se van a encender con ALTA.

Por ejemplo, si quieres que el display muestre un 1 y después un 2, así debes programarlo:

Ahora, completa tú el código para que se muestren todos los números del 1 al 9.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *