Réalisez un Theremin au format de poche avec ESP32: 5 étapes

Réalisez un Theremin au format de poche avec ESP32: 5 étapes

Table des matières:

Anonim

Theremin sont ces instruments uniques utilisés pour créer des chansons à thèmes ou des effets sonores de séries extra-terrestres. Vous l'avez peut-être aussi entendu dans Star Trek, Big Bang Theory ou même dans une maison hantée. Ils ont produit un son unique à partir des effets électromagnétiques entre les fils.

Ici, nous allons dupliquer numériquement un son similaire en utilisant une sonnerie contrôlée par Modulations de largeur d'impulsion et une résistance dépendante de la lumière (LDR) pour l'entrée des valeurs de lecture lorsque la main passe dessus.

Provisions:

Étape 1: BoM

* ESP32

* Résistance dépendante de la lumière (LDR)

* Avertisseur sonore

* Fils de cavalier

* Planche à pain

Étape 2: souder

Nous allons souder un diviseur de tension sur le LDR pour simplifier le câblage.

* Prenez une résistance de 10 kΩ et soudez-la à l’une des broches du LDR.

* Ensuite, prenez deux fils de couleurs différentes et soudez-les à chaque broche du LDR.

C'est tout! Maintenant vous avez un diviseur de tension!

Étape 3: câblage

Suivez le tableau suivant lors du câblage du LDR et du buzzer sur l’ESP32:

I / O Pin # ESP32 Pin #
Avertisseur sonore* 1 D4
Avertisseur sonore* 2 GND
LDR Résistance D5
LDR Gris 3,3V
LDR rouge GND

* L'ordre est arbitraire

Étape 4: Code

int photopin = 5; // Broche à laquelle la résistance photo est connectée

int photValue; // La lecture analogique de la photorésistance

int buzzerPin = 4; // Connecter le buzzer à la broche 4

longue sonnerieFreq; // La fréquence de bourdonnement de la sonnerie

// Vous pouvez expérimenter ces valeurs: long buzzMAX = 2500; // Fréquence maximale pour le buzzer

long photoMAX = 1023; // valeur maximale pour la photorésistance

void setup () {pinMode (buzzerPin, OUTPUT); // définit une broche pour la sortie du buzzer

}

void loop () {// lit les valeurs du potentiomètre photValue = analogRead (photopin); // Valeurs 0-1023

// normaliser les lectures d'une photorésistance à celles de l'avertisseur sonore et de l'avertisseur photorésistantFreq = (photValue * buzzMAX) / photoMAX;

buzz (buzzerPin, buzzerFreq, 10);

}

vide buzz (int targetPin, longue fréquence, longue durée) {

long delayValue = 1000000 / fréquence / 2;

numCycles long = fréquence * longueur / 1000;

pour (long i = 0; i <numCycles; i ++) {

digitalWrite (targetPin, HIGH);

delayMicroseconds (delayValue);

digitalWrite (targetPin, LOW);

delayMicroseconds (delayValue);

}

}

Étape 5: profitez-en!

C'est facile à utiliser, mais il faut toute une vie pour maîtriser et jouer de la bonne musique. Déplacez vos mains sur le LDR pour changer de ton.

Profitez de votre theremin de poche!