2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Pronašao sam maleni zvučnik dok sam rušio stari PC za recikliranje i mislio sam vidjeti kako bi to zvučalo pomoću funkcije Arduino Tone (). Počeo sam s jednim potenciometrom od 10 Ω za kontrolu visine tona i počeo stvarati buku. Funkcija Tone () koristi jednostavan obrazac impulsa. Uključuje i isključuje zvuk na različitim frekvencijama u obliku kvadrata. U blizini su mi ležala još dva potenciometra pa sam ih dodao i upotrijebio ih za kontrolu trajanja tona. Jedan za kontrolu dužine tona i jedan za kontrolu tihog prostora između tonova. U osnovi se koristi drugi kvadratni valni uzorak, ali na mnogo nižoj frekvenciji. Ovim krugom možete postići dobru raznolikost buke. Odlično radi i sa piezo zujalicom, ali nedostaje bas odziv zvučnika.
Korak 1: Dijelovi koji će vam trebati
Arduino Uno
Oglasna ploča i kratkospojne žice
1 Mali zvučnik ili Piezo zujalica
1 Prekidač na dugme
3 10Ω potenciometra
1 otpornik od 22Ω
1 otpornik od 10 kΩ
Korak 2: Izgradite krug
Spojite matičnu ploču na svoj Arduino 5V pin i GND. Prekidač s tipkama postavite krajnje desno ili lijevo od matične ploče i spojite ga na 5V i uzemljite pomoću 10kΩ otpornika. Spojite žicu iz sklopnog sklopa na pin 2 na vašem Arduinu.
S druge strane ploče postavite zvučničko/piezo kolo na 5v i uzemljite ga pomoću otpornika od 220Ω. Ovaj otpornik kontrolira struju i kontrolira jačinu zvuka; ovdje možete isprobati različite otpornike za jači ili veći volumen.
Rasporedite potenciometre u središte matične ploče dajući dovoljno prostora za petljanje po gumbima. Svaki lonac mora biti spojen na 5V i uzemljenje, a središnji pinovi na svakom spojeni na analogne pinove A0, A1 i A2
Korak 3: Kôd
Potenciometar ili lonac je promjenjivi otpornik koji će, kada je spojen na Arduino, vratiti vrijednost između 0 i 1023. Koristit ćemo funkciju map () da promijenimo ove vrijednosti prema vlastitim potrebama. Funkcija map () ima pet argumenata i u našem slučaju moramo ponovno mapirati raspon na između 220 i 2200 kako bismo proizveli razumni zvuk.
Funkcija izgleda otprilike ovako:
karta (pot, 0, 1023, 220, 2200);
Možete se poigrati s posljednje dvije vrijednosti za tonove više i niže frekvencije, samo pazite da ne uznemirite svog psa.
Noise_Machine.ino
/* Mašina za šum pomoću tri potenciometra povezana na analogne ulaze |
i piezo ili mali zvučnik. Taster uključuje buku, potenciometre |
kontrolirajte visinu tona pomoću funkcije Arduino tone () i dvije odgode |
vrednosti koje kontrolišu dužinu svakog tona i dužinu između |
svaki ton. Potenciometri daju analogne vrijednosti koje se mijenjaju |
upotrebom funkcije map () u veće ili manje raspone koji vama odgovaraju |
muzički ukusi. |
Ovaj kôd je u javnoj domeni. |
Matt Thomas 05.04.2019 |
*/ |
constint buttonPin = 2; // Igla tipke 2 |
constint zvučnik = 9; // Zvučnik ili piezo utikač 9 |
int buttonState = 0; // Varijable za dugme |
int potZero; // i potenciometri |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, OUTPUT); // Izlazni pin zvučnika/piezo |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Očitavanje stanja tipke |
potZero = analogRead (A0); // Varijable za čitanje analognih vrijednosti |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = mapa (potZero, 0, 1023, 0, 8800); // Mapirajte analogna očitanja u |
int high = mapa (potOne, 0, 1023, 0, 100); // novi rasponi brojeva i kreiranje |
int low = mapa (potTwo, 0, 1023, 0, 100); // nove varijable |
if (buttonState == HIGH) {// Ako je dugme pritisnuto … |
ton (zvučnik, htz); // Zvuk uključen |
kašnjenje (veliko); // Dužina tona |
noTone (zvučnik); // Zvuk isključen |
kašnjenje (nisko); // Vrijeme do sljedećeg tona |
} else { |
noTone (zvučnik); // Nema zvuka ako je dugme otpušteno |
} |
} |
pogledajte rawNoise_Machine.ino hostirano sa ❤ od strane GitHub -a
Korak 4: Kraj
Dakle, to je sve. Igrajte se s vrijednostima u kodu, dodajte još lonaca /gumba i pogledajte što još možete kontrolirati. Javite mi ako sam pogriješio i nadam se da ćete uživati u muzici.