Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Med rušenjem starega računalnika sem našel drobnega zvočnika. za recikliranje in mislil sem, da bom s funkcijo Arduino Tone () videl, kako je to zvenelo. Začel sem z enim 10Ω potenciometrom za nadzor višine tona in začel delati nekaj hrupa. Funkcija Tone () uporablja preprost impulzni vzorec. Vklopi in izklopi zvok na različnih frekvencah v kvadratnem valovnem vzorcu. Okrog sem ležala še dva potenciometra, zato sem ju dodala in z njimi nadzirala trajanje tona. Ena za nadzor dolžine tona in ena za nadzor tihega prostora med toni. V bistvu uporablja drugi kvadratni valovni vzorec, vendar z veliko nižjo frekvenco. S tem vezjem lahko dosežete veliko različnih hrupov. Dobro deluje tudi s piezo zvočnikom, vendar nima bas odziva zvočnika.
Korak: Deli, ki jih boste potrebovali
Arduino Uno
Žice za ploščice in mostičke
1 Majhen zvočnik ali Piezo zvonec
1 Stikalno stikalo
3 10Ω potenciometra
1 22Ω upor
1 10kΩ upor
2. korak: Zgradite vezje
Ohišje priključite na Arduino 5V pin in GND. Stikalo z gumbom postavite na skrajni desni ali levi del plošče in ga z 10 kΩ uporom priključite na 5 V in ozemljite. Priključite žico iz stikalnega vezja na pin 2 na vašem Arduinu.
Na drugi strani plošče nastavite zvočnik/piezo vezje na 5v in ozemljite z uporom 220Ω. Ta upor nadzoruje tok in tako nadzoruje glasnost; tukaj lahko poskusite različne upore za večjo ali manjšo glasnost.
Potenciometre razporedite na sredino mize, da boste imeli dovolj prostora za rokovanje z gumbi. Vsak lonec bo treba priključiti na 5V in ozemljiti, osrednji zatiči na vsakem pa na analogne nožice A0, A1 in A2
3. korak: Koda
Potenciometer ali lonec je spremenljiv upor, ki ob priključitvi na Arduino vrne vrednost med 0 in 1023. Za spremembo teh vrednosti bomo uporabili funkcijo map (), ki bo ustrezala našim potrebam. Funkcija map () ima pet argumentov, v našem primeru pa moramo ponovno preslikati območje med 220 in 2200, da dobimo primeren zvok.
Funkcija izgleda nekako takole:
zemljevid (pot, 0, 1023, 220, 2200);
Lahko se poigrate z zadnjima dvema vrednostima za višje in nižje frekvence, samo pazite, da svojega psa ne vznemirite.
Noise_Machine.ino
/* Hrupni stroj s tremi potenciometri, priključenimi na analogne vhode |
in piezo ali majhen zvočnik. Gumb za vklop potenciometrov vklopi hrup |
nadziranje višine s funkcijo Arduino tone () in dve zakasnitvi |
vrednosti, ki nadzorujejo dolžino vsakega tona in dolžino med |
vsak ton. Potenciometri dajejo analogne vrednosti, ki se spreminjajo |
z uporabo funkcije map () v večje ali manjše obsege, ki vam ustrezajo |
glasbeni okusi. |
Ta koda je v javni domeni. |
Matt Thomas 05.4.2019 |
*/ |
constint buttonPin = 2; // Zatič tipke 2 |
constint zvočnik = 9; // Zvočnik ali piezo v vtiču 9 |
int buttonState = 0; // Spremenljivke za gumb |
int potZero; // in potenciometri |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, OUTPUT); // Izhod za zvočnik/piezo |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Preberite stanje gumba |
potZero = analogRead (A0); // Spremenljivke za branje analognih vrednosti |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = zemljevid (potZero, 0, 1023, 0, 8800); // Preslikajte analogne odčitke v |
int visoko = zemljevid (potOne, 0, 1023, 0, 100); // nov obseg številk in ustvarjanje |
int low = zemljevid (potTwo, 0, 1023, 0, 100); // nove spremenljivke |
if (buttonState == HIGH) {// Če pritisnete gumb … |
ton (zvočnik, htz); // Zvok vklopljen |
zamuda (velika); // Dolžina tona |
noTone (zvočnik); // Zvok izklopljen |
zamuda (nizka); // Čas do naslednjega tona |
} drugo { |
noTone (zvočnik); // Brez pritiska, če gumb spustite |
} |
} |
oglejte si rawNoise_Machine.ino, ki ga gosti ❤ GitHub
4. korak: Konec
To je torej vse. Poigrajte se z vrednostmi v kodi, dodajte več loncev /gumbov in poglejte, kaj še lahko nadzirate. Sporočite mi, če sem naredil kakšno napako in upam, da vam bo glasba všeč.