2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Pronašao sam maleni zvučnik dok sam rušio stari PC za recikliranje i mislio sam vidjeti kako to zvuči 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 pulsa. 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 dodala i koristila za kontrolu trajanja tona. Jedan za kontrolu duljine tona i jedan za kontrolu tihog prostora između tonova. U osnovi koristi drugi kvadratni valni uzorak, ali na mnogo nižoj frekvenciji. Ovim krugom možete postići dobru raznolikost buke. Dobro radi i s 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 gumb
3 potenciometra od 10Ω
1 otpornik od 22Ω
1 otpornik od 10 kΩ
Korak 2: Izgradite krug
Spojite ploču na svoj Arduino 5V pin i GND. Prekidač s gumbom postavite krajnje desno ili lijevo od matične ploče i spojite ga na 5 V i uzemljite pomoću 10kΩ otpornika. Spojite žicu iz sklopnog kruga na pin 2 na vašem Arduinu.
S druge strane ploče postavite zvučnik/piezo krug na 5v i uzemljite pomoću otpornika od 220Ω. Ovaj otpornik kontrolira struju čime kontrolira glasnoću; ovdje možete isprobati različite otpornike za jači ili veći volumen.
Rasporedite potenciometre u središte 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 () za promjenu ovih vrijednosti prema vlastitim potrebama. Funkcija map () uzima 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 uzrujate svog psa.
Mašina za buku.ino
/* Stroj za buku pomoću tri potenciometra spojena na analogne ulaze |
i piezo ili mali zvučnik. Gumb uključuje potenciometre, šum |
kontrolirati visinu tona pomoću funkcije Arduino tone () i dvije odgode |
vrijednosti koje kontroliraju duljinu svakog tona i duljinu između |
svaki ton. Potenciometri daju analogne vrijednosti koje se mijenjaju |
pomoću funkcije map () u veće ili manje raspone koji vama odgovaraju |
glazbeni ukusi. |
Ovaj kôd je u javnoj domeni. |
Matt Thomas 05.05.2019 |
*/ |
constint buttonPin = 2; // Igla tipke 2 |
constint zvučnik = 9; // Zvučnik ili piezo utikač 9 |
int buttonState = 0; // Varijable za gumb |
int potZero; // i potenciometri |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, OUTPUT); // Izlazni pin zvučnika/piezo |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Pročitajte stanje gumba |
potZero = analogno čitanje (A0); // Varijable za čitanje analognih vrijednosti |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = karta (potZero, 0, 1023, 0, 8800); // Preslikajte analogna očitanja u |
int visoko = karta (potOne, 0, 1023, 0, 100); // novi rasponi brojeva i stvaranje |
int low = karta (potTwo, 0, 1023, 0, 100); // nove varijable |
if (buttonState == HIGH) {// Ako se pritisne tipka… |
ton (zvučnik, htz); // Zvuk uključen |
kašnjenje (veliko); // Duljina tona |
noTone (zvučnik); // Zvuk isključen |
kašnjenje (nisko); // Vrijeme do sljedećeg tona |
} else { |
noTone (zvučnik); // Nema zvuka ako je gumb otpušten |
} |
} |
pogledajte rawNoise_Machine.ino hosted with ❤ by GitHub
Korak 4: Kraj
Dakle, to je sve. Poigrajte se vrijednostima u kodu, dodajte još lonaca /gumba i pogledajte što još možete kontrolirati. Javite mi jesam li pogriješio i nadam se da ćete uživati u glazbi.