Turinys:

„Arduino“triukšmo mašina: 4 žingsniai
„Arduino“triukšmo mašina: 4 žingsniai

Video: „Arduino“triukšmo mašina: 4 žingsniai

Video: „Arduino“triukšmo mašina: 4 žingsniai
Video: Perdirbtas Epson EM-400 žingsninis variklis, valdomas Arduino naudojant DPDT reles 2024, Liepa
Anonim
Arduino triukšmo mašina
Arduino triukšmo mašina
Arduino triukšmo mašina
Arduino triukšmo mašina
Arduino triukšmo mašina
Arduino triukšmo mašina

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ę

Sukurkite grandinę
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.

Rekomenduojamas: