Tabla de contenido:
Theremin son aquellos instrumentos únicos que se utilizan para hacer que esas canciones o temas de efectos de sonido de espectáculos alienígenas. Es posible que también lo hayas escuchado en Star Trek, en la teoría de Big Bang o incluso en una casa encantada. Ellos produjeron un sonido único a partir de los efectos electromagnéticos entre los cables.
Aquí duplicaremos digitalmente un sonido similar utilizando un zumbador controlado por Modulaciones de Ancho de Pulso y una Resistencia Dependiente de la Luz (LDR) para la entrada de valores de lectura a medida que la mano se mueve sobre él.
Suministros:
Paso 1: BoM
* ESP32
* Resistencia Dependiente de la Luz (LDR)
* Zumbador
* Cables de puente
* Breadboard
Paso 2: Soldadura
Soldaremos un divisor de voltaje en el LDR para simplificar el cableado.
* Tome una resistencia de 10kΩ y suéldela a uno de los pines del LDR.
* Luego tome dos cables de diferentes colores y soldarlo a cada pin del LDR.
¡Eso es! Ahora tienes un divisor de voltaje!
Paso 3: Cableado
Siga la siguiente tabla cuando conecte el LDR y el zumbador al ESP32:
I / O | Alfiler # | ESP32 Pin # |
---|---|---|
Zumbador* | 1 | D4 |
Zumbador* | 2 | GND |
LDR | Resistor | D5 |
LDR | Gris | 3.3V |
LDR | rojo | GND |
* La orden es arbitraria
Paso 4: Código
int photopin = 5; // Pin donde la resistencia foto está conectada a
int photValue; // La lectura analógica del fotorresistor.
int buzzerPin = 4; // Conectar el zumbador al pin 4
largo buzzerFreq; // La frecuencia para zumbar el zumbador.
// Puedes experimentar con estos valores: long buzzMAX = 2500; // Frecuencia máxima para el zumbador
photoMAX largo = 1023; // Valor máximo para el fotorresistor
void setup () {pinMode (buzzerPin, OUTPUT); // establecer un pin para la salida del zumbador
}
void loop () {// lee los valores del potenciómetro photValue = analogRead (photopin); // Valores 0-1023
// normalizar las lecturas de un fotorresistor a la del zumbador y el zumbador del fotorresistorFreq = (photValue * buzzMAX) / photoMAX;
buzz (buzzerPin, buzzerFreq, 10);
}
buzz vacío (int targetPin, frecuencia larga, longitud larga) {
valor de retardo largo = 1000000 / frecuencia / 2;
números largos = frecuencia * longitud / 1000;
para (long i = 0; i <numCycles; i ++) {
digitalWrite (targetPin, HIGH);
delayMicroseconds (delayValue);
digitalWrite (targetPin, LOW);
delayMicroseconds (delayValue);
}
Paso 5: ¡Disfruta!
Es fácil de usar, pero lleva toda una vida dominar y tocar buena música. Mueva sus manos sobre el LDR para cambiar el tono.
¡Disfruta de tu bolsillo de bolsillo!