Resistencia LDR y buzzer cómo crear un theremín DIY Deja un comentario

En este artículo voy a explicar cómo utilizar una resistencia LDR con un buzzer para crear un theremín. Este instrumento musical es el único del mundo que permite hacer música sin el contacto humano. Vamos a simularlo aprovechando las propiedades de luz y de la resistencia LDR.

Resistencia LDR Theremin

El Theremin fue creado por Lev Termen en el año 1919. Se puede decir que fue el primer instrumento electrónico y por lo tanto, el precursor de la música electrónica. Si, desde 1919 se conoce la música de este estilo.

En el theremín original podemos controlar la frecuencia del sonido y su volumen, pero en este proyecto sólo vamos a modificar la frecuencia a través de una resistencia LDR y un buzzer. Este último componente ya lo hemos utilizado en el proyecto del sensor de aparcamiento con un sensor ultrasónico.

Resistencia LDR, los fundamentos

LDR proviene del inglés Light Dependent Resistor y, como su nombre indica, es una resistencia que depende de la luz. ¿Conoces el potenciómetro? pues una resistencia LDR funciona más o menos igual.

La diferencia es que en el potenciómetro nosotros nos encargamos de modificar su resistencia, en una LDR, esta resistencia varía con la luz que incide en ella.

ldr arduino

La resistencia varía entre 50 Ω y 1 MΩ (1.000.000 Ω). Si está bajo una luz muy brillante, su valor es de 50 Ω y si está en total oscuridad, su valor es de 1 MΩ. Lo podemos encontrar por menos de 1 €, dependerá de la calidad y de la precisión.

En este proyecto utilizaremos esta resistencia para reducir el voltaje. Recuerda que con el Arduino UNO trabajamos de 0 V a 5 V. Por lo tanto, dependiendo de la luz que incida en la resistencia LDR, tendremos un voltaje entre 0V y 5V. Cuanta más luz más voltaje y cuanta menos luz menos voltaje.

Al conectar la resistencia LDR a un pin analógico, obtendremos un valor entre 0 y 1023 (este tipo de entradas tiene 10 bits de resolución). Por lo tanto, dependiendo de la luz que incida en en la fotoresistencia, tendremos un valor u otro.

A través de código, traduciremos ese voltaje en una frecuencia que será emitida por el buzzer o zumbador.

La resistencia LDR no se puede utilizar para medir la cantidad de luz. Esto es debido a dos factores fundamentales, su tiempo de respuesta es de 100 ms, un poco lento para medir cambios bruscos de luz y a su dependencia con la temperatura. Al igual que la velocidad del sonido, la resistencia proporcionada dependerá de la temperatura ambiente.

Los pines analógicos del Arduino UNO tienen una precisión de 10-bit (1024 valores posibles). Tenemos que dividir el rango de 0 V a 5 V en 1024 valores.

Buzzer haciendo ruido con Arduino

Ya hemos visto este componente en otro tutorial, donde explicaba cual es su funcionamiento. En este caso utilizaremos el valor resistivo que nos proporciona la resistencia LDR para ponerlo en función de la frecuencia. Te recuerdo que las frecuencias del espectro audible van de los 20 Hz a los 20 kHz.

Espectro audible

Debemos de decidir como movernos dentro de este espectro. Yo te propondré una solución y tu decidirás utilizarla o cambiar a otro rango del espectro.

Componentes necesarios

En este proyecto no vamos a necesitar muchos componentes. A continuación te detallo los necesarios.

  • Arduino UNO o equivalente
  • Protoboard
  • Cables para hacer conexiones
  • 1 resistencia LDR
  • 1 resistencia de 10 kΩ
  • 1 buzzer o zumbador

Montando el circuito con Arduino

Vamos a ver qué es lo que necesitamos para crear un theremín. El circuito es muy sencillo y es el que te muestro a continuación.

theremin

La resistencia de 10 kΩ la utilizamos para mantener un estado lógico bajo (LOW o 0 Voltios) cuando tenemos las conexiones al aíre. La típica resistencia pull down.

Cuidado con el buzzer. Este componente debe conectarse correctamente, positivo con positivo y negativo con negativo.

Se puede sustituir la resistencia LDR por un sensor de ultrasonidos.

Programando el theremín con resitencia LDR y buzzer

El algoritmo para este proyecto es muy sencillo así que, pasamos directamente al código. Luego te explicaré las particularidades que tiene.

En la primera parte del sketch declaramos las constantes que nos indican los pines a los que conectamos los componentes.

En la función setup() iniciamos el monitor serie, por si nos hace falta.

Función loop

En el loop() ejecutamos el código que se va a repetir continuamente. Lo primero es leer el valor analógico que nos proporciona el pin donde tenemos conectado la resistencia LDR. Esto nos proporciona un valor entero entre 0 y 1023. Este valor depende del voltaje que haya a la entrada que, a su vez, depende de la resistencia que nos suministre el LDR. Solo hace falta aplicar la Ley de Ohm.

Lo siguiente es calcular la frecuencia en función del voltaje. Esta frecuencia es la que reproduciremos a través del buzzer. En este caso yo voy a utilizar de 400 Hz a 912 Hz. Vamos a ver la siguiente fórmula para poder calcular la frecuencia.

fecuencia = 400 + frac{valor analogico}{2}

El primer número, el 400, nos indica la mínima frecuencia ya que, si el valor a la entrada analógica es 0 (total oscuridad) la fórmula quedaría de la siguiente manera.

fecuencia = 400 + frac{0}{2} = 400 + 0 = 400 Hz

El máximo lo obtenemos sustituyendo el valor analógico por el máximo posible. Como Arduino UNO trabaja con una resolución de 10-bit, el máximo será 1023. Con esto nos quedaría la fórmula de la siguiente manera.

fecuencia = 400 + frac{1023}{2} =

=400 + 511,5 = 911,5 simeq 912 Hz

Si quieres modificar el rango de valores solo tienes que cambiar el 400 y el divisor del valor analógico. Si modificas el 400 cambiarás la frecuencia mínima y si modificas el divisor (el número 2 de la fórmula) modificarás el valor máximo.

Cuanto mayor sea ese divisor, menor será el máximo. Por el contrario, cuanto menor sea el divisor, mayor será la frecuencia máxima.

Por último utilizamos la función tone() para reproducir el sonido. Esta función ya la expliqué en el proyecto donde utilizo un buzzer o zumbador como sistema de alerta en sistema de aparcamiento.

Conclusión

Este proyecto es muy sencillo pero es muy interesante. Sobre todo para aquellos profesores de tecnología que estén utilizando Arduino en sus clases. Puede ser muy interesante para los alumnos ver un proyecto donde se cree un instrumento musical. A partir de aquí, nuestra imaginación será la que de forma a proyectos como este.

Si te ha gustado comparte, si tienes algo que comentar, comenta aquí abajo. Gracias por tu atención.

Gracias a Shutterstock por ceder los derechos de la imagen

 

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?