2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Köhnə bir PC -ni yıxarkən kiçik bir dinamik tapdım. təkrar emal üçün və Arduino Tone () funksiyasından istifadə edərək nəyə bənzədiyini görəcəyimi düşündüm. Meydanı idarə etmək üçün bir 10Ω potensiometrlə başladım və səs -küy salmağa başladım. Tone () funksiyası sadə bir nəbz nümunəsindən istifadə edir. Kvadrat dalğa şəklində fərqli tezliklərdə səsi açır və söndürür. Ətrafımda yatan başqa iki potensiometr var idi, ona görə də onları əlavə etdim və ton müddətini idarə etmək üçün istifadə etdim. Biri tonun uzunluğuna, biri də tonlar arasındakı səssiz boşluğa nəzarət etmək üçün. Əsasən başqa bir kvadrat dalğa nümunəsi istifadə edir, lakin daha aşağı tezlikdə. Bu dövrə ilə yaxşı bir səs -küy əldə edə bilərsiniz. Bir piezo buzzer ilə də yaxşı işləyir, ancaq dinamikin bas reaksiyası yoxdur.
Addım 1: Ehtiyac duyacağınız hissələr
Arduino Uno
Çörək taxtası və tullanan tellər
1 Kiçik dinamik və ya Piezo səs siqnalı
1 Düymə açarı
3 10Ω Potansiyometrlər
12 22Ω müqavimət
1 10kΩ müqavimət
Addım 2: Dövrə qurun
Çörək taxtasını Arduino 5V pininizə və GND -yə qoşun. Pushbutton açarını çörək taxtasının ən sağına və ya soluna qoyun və 10kΩ rezistordan istifadə edərək 5V -ə və yerə qoşun. Arduino'nun 2 -ci pininə keçid dövrəsindən bir tel bağlayın.
Çörək taxtasının digər tərəfində, hoparlör/piezo dövrəsini 5v və 220Ω müqavimətdən istifadə edərək yerə qoyun. Bu rezistor cərəyanı idarə edir, beləliklə həcmi idarə edir; Daha yüksək və ya aşağı səs üçün burada fərqli rezistorları sınaya bilərsiniz.
Potensiometrlərinizi çörək lövhəsinin ortasına qoyun ki, düymələrlə əymək üçün kifayət qədər yer olsun. Hər bir qazanın 5V -ə və yerə və hər birinin analog pinlərə A0, A1 və A2 -ə bağlanması lazımdır.
Addım 3: Kod
Potensialiometr və ya qazan, Arduinoya qoşulduqda 0 ilə 1023 arasında bir dəyər qaytaracaq dəyişən bir rezistordur. Bu dəyərləri öz ehtiyaclarımıza uyğun olaraq dəyişdirmək üçün map () funksiyasından istifadə edəcəyik. Map () funksiyası beş arqument tələb edir və bizim vəziyyətimizdə ağlabatan səsli bir səs çıxarmaq üçün aralığı 220 ilə 2200 arasında yenidən xəritələndirməliyik.
Funksiya belə görünür:
xəritə (qazan, 0, 1023, 220, 2200);
Daha yüksək və aşağı tezlik tonları üçün son iki dəyərlə oynaya bilərsiniz, yalnız itinizi incitmədiyinizə diqqət yetirin.
Noise_Machine.ino
/* Analog girişlərə qoşulmuş üç potensiometrdən istifadə edən səs -küy maşını |
və piezo və ya kiçik dinamik. Bir düymə səs -küyü, potansiyometrləri işə salır |
Arduino tone () funksiyasından və iki gecikmədən istifadə edərək meydanı idarə edin |
hər tonun uzunluğunu və aralarındakı uzunluğu idarə edən dəyərlər |
hər ton. Potansiometrlər dəyişdirilən analoq dəyərlər verir |
map () funksiyasından istifadə edərək sizə uyğun olaraq daha böyük və ya kiçik diapazonlara daxil edin |
musiqi zövqləri. |
Bu kod ictimai malıdır. |
Matt Thomas 2019-04-05 |
*/ |
constint buttonPin = 2; // Pushbutton pin 2 |
constint dinamik = 9; // 9 -cu pindəki dinamik və ya piezo |
int düyməsiState = 0; // Düymə üçün dəyişənlər |
int potZero; // və potensiometrlər |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, Çıxış); // Dinamik/piezo çıxış pimi |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Düymə vəziyyətini oxuyun |
potZero = analogRead (A0); // Analog dəyərləri oxumaq üçün dəyişənlər |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = xəritə (potZero, 0, 1023, 0, 8800); // Analog oxunuşları xəritəyə salın |
int high = xəritə (potOne, 0, 1023, 0, 100); // yeni ədəd aralığı yaradın |
int low = xəritə (potTwo, 0, 1023, 0, 100); // yeni dəyişənlər |
if (buttonState == HIGH) {// Düymə basılarsa… |
ton (dinamik, htz); // Səs aç |
gecikmə (yüksək); // Ton uzunluğu |
noTone (dinamik); // Səs kəs |
gecikmə (aşağı); // Növbəti tona qədər vaxt |
} başqa { |
noTone (dinamik); // Düymə buraxılarsa ton yoxdur |
} |
} |
GitHub tərəfindən ❤ ilə evlənən rawNoise_Machine.inoya baxın
Addım 4: Son
Deməli, bütün bunlar var. Koddakı dəyərlərlə oynayın, daha çox qazan /düymə əlavə edin və başqa nəyə nəzarət edə biləcəyinizə baxın. Səhvlərim olub olmadığını bildirin və ümid edirəm ki, musiqidən zövq alacaqsınız.