![Stwórz Pocket Size z ESP32: 5 kroków (ze zdjęciami) Stwórz Pocket Size z ESP32: 5 kroków (ze zdjęciami)](https://img.gwsigeps.com/img/img/blank.jpg)
Spisu treści:
Theremin to te unikalne instrumenty, które sprawiają, że te obce utwory tematyczne lub efekty dźwiękowe. Być może słyszałeś o tym w Star Trek, Teorii Wielkiego Wybuchu, a nawet w nawiedzonym domu. Wytworzyły wyjątkowy dźwięk z efektów elektromagnetycznych między przewodami.
Tutaj powielimy podobny dźwięk cyfrowo za pomocą brzęczyka kontrolowanego przez modulację szerokości impulsu i rezystora zależnego od światła (LDR) w celu wprowadzenia wartości odczytu, gdy dłoń porusza się po nim.
Kieszonkowe dzieci:
Krok 1: BoM
* ESP32
* Rezystor zależny od światła (LDR)
* Buzzer
* Przewody zworek
* Deska do krojenia chleba
Krok 2: Lutowanie
Przylutujemy dzielnik napięcia do LDR, aby uprościć okablowanie.
* Weź rezystor 10 kΩ i przylutuj go do jednego ze styków LDR.
* Następnie weź dwa różne kolorowe przewody i przylutuj je do każdego bolca LDR.
To jest to! Teraz masz dzielnik napięcia!
Krok 3: Okablowanie
Podczas podłączania LDR i brzęczyka do ESP32 postępuj zgodnie z poniższą tabelą:
I / O | Pin # | ESP32 Pin # |
---|---|---|
Brzęczyk* | 1 | D4 |
Brzęczyk* | 2 | GND |
LDR | Rezystor | D5 |
LDR | Szary | 3,3V |
LDR | Czerwony | GND |
* Zamówienie jest dowolne
Krok 4: Kod
int photopin = 5; // Pin, do którego podłączony jest fotorezystor
int photValue; // Odczyt analogowy z fotorezystora
int buzzerPin = 4; // Podłącz Buzzer do Pin 4
długi buzzerFreq; // Częstotliwość buczenia brzęczyka
// Możesz eksperymentować z tymi wartościami: long buzzMAX = 2500; // Maksymalna częstotliwość brzęczyka
długie zdjęcieMAX = 1023; // Maksymalna wartość fotorezystora
void setup () {pinMode (buzzerPin, OUTPUT); // ustaw pin na wyjście brzęczyka
}
void loop () {// odczyt wartości potencjometru photValue = analogRead (photopin); // Wartości 0-1023
// normalizuje odczyty fotorezystora do brzęczyka i fotorezystora buzzerFreq = (photValue * buzzMAX) / photoMAX;
buzz (buzzerPin, buzzerFreq, 10);
}
void buzz (int targetPin, długa częstotliwość, długa długość) {
long delayValue = 1000000 / frequency / 2;
long numCycles = częstotliwość * długość / 1000;
for (long i = 0; i <numCycles; i ++) {
digitalWrite (targetPin, HIGH);
delayMicroseconds (delayValue);
digitalWrite (targetPin, LOW);
delayMicroseconds (delayValue);
}
Krok 5: Ciesz się!
Jest łatwy w użyciu, ale opanowanie i odtwarzanie dobrej muzyki zajmuje całe życie. Przesuń ręce nad LDR, aby zmienić ton.
Ciesz się swoim wielkościowym stosem!