2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Leidsin vana PC lõhkudes pisikese kõlari ringlussevõtuks ja arvasin, et näen, kuidas see Arduino Tone () funktsiooni kasutades kõlab. Alustasin helikõrguse juhtimiseks ühe 10Ω potentsiomeetriga ja hakkasin müra tekitama. Funktsioon Tone () kasutab lihtsat impulssmustrit. See lülitab heli sisse ja välja erinevatel sagedustel ruudukujulises lainekujus. Mul oli ümberringi veel kaks potentsiomeetrit, nii et lisasin need ja kasutasin neid tooni kestuse kontrollimiseks. Üks tooni pikkuse juhtimiseks ja teine toonide vahel oleva vaikse ruumi juhtimiseks. Põhimõtteliselt kasutab see teist ruudukujulist lainekuju, kuid palju madalamal sagedusel. Selle vooluahela abil saate saavutada mitmesuguseid müra. See töötab hästi ka piesosummeriga, kuid puudub kõlari bassivastus.
Samm: vajalikud osad
Arduino Uno
Leivalaud ja hüppaja juhtmed
1 Väike kõlar või pieso -helisignaal
1 Nuppude lüliti
3 10Ω potentsiomeetrit
1 22Ω takisti
1 10 kΩ takisti
Samm: ehitage vooluring
Ühendage leivalaud oma Arduino 5V pistikuga ja GND -ga. Asetage nupplüliti leivaplaadi paremale või vasakule ja ühendage see 10 kΩ takisti abil 5 V ja maandusega. Ühendage lülitusahela juhe Arduino tihvtiga 2.
Leivaplaadi teisel poolel seadistage kõlarite/pieso vooluahela 5 V pingele ja maandage 220 Ω takisti abil. See takisti juhib voolu, reguleerides seega helitugevust; siin saate proovida erinevaid takisteid suurema või madalama helitugevuse jaoks.
Asetage oma potentsiomeetrid leivalaua keskele, jättes piisavalt ruumi nuppudega askeldamiseks. Iga pott tuleb ühendada 5 V ja maandusega ning keskmised tihvtid peavad olema ühendatud analoogpistikutega A0, A1 ja A2
3. samm: kood
Potentsiomeeter või pott on muutuv takisti, mis Arduinoga ühendamisel tagastab väärtuse vahemikus 0 kuni 1023. Kasutame funktsiooni map () nende väärtuste muutmiseks vastavalt meie vajadustele. Funktsioon map () sisaldab viit argumenti ja meie puhul peame mõistliku kuuldava heli tekitamiseks muutma vahemiku 220 ja 2200 vahele.
Funktsioon näeb välja umbes selline:
kaart (pott, 0, 1023, 220, 2200);
Saate mängida kahe viimase väärtusega kõrgema ja madalama sagedusega toonide jaoks, vaid olge ettevaatlik, et te ei ärritaks oma koera.
Noise_Machine.ino
/* Müramasin, mis kasutab kolme analoogsisenditega ühendatud potentsiomeetrit |
ja pieso või väike kõlar. Nupp lülitab müra, potentsiomeetrid sisse |
helitugevust Arduino tooni () funktsiooni abil ja kaks viivitust |
väärtused, mis reguleerivad iga tooni pikkust ja nende vahelist pikkust |
iga toon. Potentsiomeetrid annavad analoogväärtusi, mida muudetakse |
kasutades funktsiooni map () suuremateks või väiksemateks vahemikeks |
muusikaline maitse. |
See kood on üldkasutatav. |
Matt Thomas 04.05.2019 |
*/ |
constint nuppPin = 2; // Nööpnõel 2 |
konstant kõneleja = 9; // Kõlar või pieso tihvtis 9 |
int buttonState = 0; // Nupu muutujad |
int potZero; // ja potentsiomeetrid |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, VÄLJUND); // Kõlari/pieso väljundtihvt |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Nuppude oleku lugemine |
potZero = analoogLoe (A0); // Muutujad analoogväärtuste lugemiseks |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = kaart (potZero, 0, 1023, 0, 8800); // Kaardista analoognäidud |
int high = kaart (potOne, 0, 1023, 0, 100); // uued numbrivahemikud ja loo |
int madal = kaart (potTwo, 0, 1023, 0, 100); // uued muutujad |
if (buttonState == HIGH) {// Kui nupule vajutatakse… |
toon (kõlar, htz); // Heli sisse |
viivitus (kõrge); // Tooni pikkus |
noTone (kõneleja); // Heli välja |
viivitus (madal); // Aeg järgmise toonini |
} muud { |
noTone (kõneleja); // Toon puudub, kui nupp vabastatakse |
} |
} |
vaata rawNoise_Machine.ino, mille hostiks on GitHub ❤
4. samm: lõpp
Nii et see on kõik. Mängige koodis olevate väärtustega, lisage veel potte /nuppe ja vaadake, mida veel saate juhtida. Andke mulle teada, kui olen teinud vigu ja loodan, et teile meeldib muusika.