Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Radau mažą garsiakalbį, griaudamas seną P. C. perdirbimui ir maniau, kad pamatysiu, kaip tai skamba naudojant „Arduino Tone“() funkciją. Aš pradėjau nuo vieno 10Ω potenciometro, kad valdyčiau žingsnį, ir pradėjau kelti triukšmą. Funkcija Tonas () naudoja paprastą impulsų modelį. Jis įjungia ir išjungia garsą skirtingais dažniais pagal kvadratinį bangų modelį. Aplinkui gulėjau dar du potenciometrai, todėl juos pridėjau ir panaudojau tono trukmei kontroliuoti. Vienas valdo tono ilgį, o kitas - tylią erdvę tarp tonų. Iš esmės jis naudoja kitą kvadratinių bangų modelį, bet daug mažesniu dažniu. Naudodami šią grandinę galite pasiekti daug triukšmo. Jis taip pat gerai veikia su pjezo garsiniu signalu, tačiau jam trūksta garsiakalbio boso atsako.
1 žingsnis: dalys, kurių jums reikės
Arduino Uno
Duonos lentos ir trumpikliai
1 Mažas garsiakalbis arba pjezo garsinis signalas
1 Mygtuko jungiklis
3 10Ω potenciometrai
1 22Ω rezistorius
1 10 kΩ rezistorius
2 žingsnis: sukurkite grandinę
Prijunkite duonos lentą prie „Arduino 5V“kaiščio ir GND. Padėkite „Pushbutton“jungiklį dešinėje arba kairėje duonos lentos pusėje ir prijunkite jį prie 5 V ir įžeminkite naudodami 10 kΩ rezistorių. Prijunkite laidą iš jungiklio grandinės prie „Arduino“2 kaiščio.
Kitoje duonos lentos pusėje nustatykite garsiakalbio/pjezo grandinę iki 5 voltų ir įžeminkite naudodami 220Ω rezistorių. Šis rezistorius valdo srovę, taip valdydamas garsumą; čia galite išbandyti skirtingus rezistorius, kad padidintumėte ar sumažintumėte garsumą.
Išdėstykite savo potenciometrus duonos lentos centre, palikdami pakankamai vietos groti rankenėlėmis. Kiekvienas puodas turi būti prijungtas prie 5 V įtampos ir įžemintas, o kiekvieno centrinis kaištis prijungtas prie analoginių kaiščių A0, A1 ir A2
3 žingsnis: Kodas
Potenciometras arba puodas yra kintamasis rezistorius, kuris prijungus prie „Arduino“grąžins reikšmę nuo 0 iki 1023. Mes naudosime žemėlapio () funkciją, kad pakeistume šias vertes pagal savo poreikius. Funkcijai „map ()“naudojami penki argumentai, o mūsų atveju turime iš naujo nustatyti diapazoną nuo 220 iki 2200, kad gautume pagrįstą garsą.
Funkcija atrodo maždaug taip:
žemėlapis (puodas, 0, 1023, 220, 2200);
Galite žaisti su paskutinėmis dviem didesnio ir žemesnio dažnio tonų reikšmėmis, tik būkite atsargūs, kad nenuliūdintumėte savo šuns.
Noise_Machine.ino
/* Triukšmo mašina, naudojant tris potenciometrus, prijungtus prie analoginių įėjimų |
ir pjezo arba mažas garsiakalbis. Mygtukas įjungia triukšmą, potenciometrus |
valdyti garsą naudojant „Arduino tone“() funkciją ir du uždelsimus |
reikšmės, kurios valdo kiekvieno tono ilgį ir ilgį tarp |
kiekvienas tonas. Potenciometrai pateikia analogines vertes, kurios yra pakeistos |
naudodamiesi žemėlapio () funkcija į didesnius ar mažesnius diapazonus pagal savo poreikius |
muzikiniai skoniai. |
Šis kodas yra viešai prieinamas. |
Matt Thomas 2019-04-05 |
*/ |
constint mygtukasPin = 2; // Mygtuko kaištis 2 |
nuolatinis garsiakalbis = 9; // Garsiakalbis arba pjezo 9 kaištyje |
int buttonState = 0; // Mygtuko kintamieji |
int potZero; // ir potenciometrai |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, OUTPUT); // Garsiakalbio/pjezo išvesties kaištis |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Skaityti mygtuko būseną |
potZero = analogRead (A0); // Analoginių verčių skaitymo kintamieji |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = žemėlapis (potZero, 0, 1023, 0, 8800); // Susiekite analoginius rodmenis |
int aukštas = žemėlapis (potOne, 0, 1023, 0, 100); // nauji skaičių diapazonai ir sukurkite |
int low = žemėlapis (potTwo, 0, 1023, 0, 100); // nauji kintamieji |
if (buttonState == HIGH) {// Jei paspaudžiamas mygtukas… |
tonas (garsiakalbis, htz); // Garsas įjungtas |
vėlavimas (didelis); // Tono ilgis |
noTone (garsiakalbis); // Garsas išjungtas |
vėlavimas (mažas); // Laikas iki kito tono |
} Kitas { |
noTone (garsiakalbis); // Nėra signalo, jei mygtukas atleidžiamas |
} |
} |
peržiūrėkite rawNoise_Machine.ino, kurį su „❤“priglobia „GitHub“
4 žingsnis: pabaiga
Taigi tai viskas. Žaiskite naudodami kodo reikšmes, pridėkite daugiau puodų /mygtukų ir pažiūrėkite, ką dar galite valdyti. Praneškite man, ar padariau klaidų, ir tikiuosi, kad jums patiks muzika.