Lav en Pocket Size Theremin med ESP32: 5 trin (med billeder)

Lav en Pocket Size Theremin med ESP32: 5 trin (med billeder)

Indholdsfortegnelse:

Anonim

Theremin er de unikke instrumenter, der bruges til at gøre disse fremmede vise temasange eller lydeffekt. Du har måske også hørt det i Star Trek, Big Bang Theory eller endda et hjemsøgt hus. De producerede en unik lyd fra de elektromagnetiske effekter mellem ledninger.

Her duplikerer vi en lignende lyd digitalt ved hjælp af en summer, der styres af Pulse Width Modulations og en Light Dependent Resistor (LDR) til indlæsning af læseværdier, når hånden bevæger sig over den.

forsyninger:

Trin 1: BoM

* ESP32

* Light Dependent Resistor (LDR)

* Buzzer

* Jumper Wires

* Brødbræt

Trin 2: Lodning

Vi vil lodde en spændingsdeler på LDR'en for at gøre ledningerne enklere.

* Tag en 10kΩ modstand og lodd den til en af ​​stifterne på LDR.

* Tag derefter to forskellige farvede ledninger og lodd den til hver stift i LDR.

Det er det! Nu har du en spændingsdeler!

Trin 3: Ledninger

Følg nedenstående tabel, når du bruger LDR og Buzzer til ESP32:

I / O Pin # ESP32 Pin #
Summer* 1 D4
Summer* 2 GND
LDR Modstand D5
LDR Grå 3.3V
LDR Rød GND

* Ordren er vilkårlig

Trin 4: Kode

int fotopin = 5; // Pin, hvor fotomodstanden er tilsluttet

int photValue; // Den analoge læsning fra fotoresistoren

int buzzerPin = 4; // Tilslut summer til pin 4

lang buzzerFreq; // Frekvensen til at buzz summeren

// Du kan eksperimentere med disse værdier: lang buzzMAX = 2500; // Maksimal frekvens for summeren

lang photoMAX = 1023; // Maksimal værdi for fotoresistoren

void setup () {pinMode (buzzerPin, OUTPUT); // Indstil en pin til summer output

}

void loop () {// læs værdierne af potentiometer photValue = analogRead (photopin); // Værdier 0-1023

// normalisere aflæsningerne af en fotoresistor til den pågældende summer og fotoresistor buzzerFreq = (photValue * buzzMAX) / photoMAX;

buzz (buzzerPin, buzzerFreq, 10);

}

void buzz (int targetPin, lang frekvens, lang længde) {

lang delayValue = 1000000 / frekvens / 2;

lange numCycles = frekvens * længde / 1000;

for (lang i = 0; i <numCycles; i ++) {

digitalWrite (targetPin, HIGH);

delayMicroseconds (delayValue);

digitalWrite (targetPin, LOW);

delayMicroseconds (delayValue);

}

}

Trin 5: Nyd!

Det er nemt at bruge, men tager en levetid at mestre og spille god musik. Flyt dine hænder over LDR'en for at ændre tonen.

Nyd din lommeformede theremin!