Tartalomjegyzék:

Arduino zajgép: 4 lépés
Arduino zajgép: 4 lépés

Videó: Arduino zajgép: 4 lépés

Videó: Arduino zajgép: 4 lépés
Videó: Использование драйвера шагового двигателя L298N Для управления 4-проводным шаговым двигателем 2024, November
Anonim
Arduino zajgép
Arduino zajgép
Arduino zajgép
Arduino zajgép
Arduino zajgép
Arduino zajgép

Találtam egy apró hangszórót, miközben lebontottam egy régi PC -t. újrahasznosításra, és gondoltam megnézem, hogyan hangzik az Arduino Tone () függvény használata. Kezdtem egy 10Ω -os potenciométerrel a hangmagasság szabályozására, és elkezdtem némi zajt csapni. A Tone () függvény egyszerű impulzusmintát használ. Négyzet alakú hullámmintában kapcsolja be és ki a hangot különböző frekvenciákon. Két másik potenciométer feküdt körülöttem, ezért hozzáadtam őket, és használtam a hang időtartamának szabályozására. Az egyik a hang hosszát, a másik a hangok közötti csendes teret szabályozza. Alapvetően egy másik négyzetes hullámmintát használ, de sokkal alacsonyabb frekvencián. Ezzel az áramkörrel sokféle zajt érhet el. Piezo hangjelzővel is jól működik, de hiányzik a hangszóró mélyhangja.

1. lépés: Alkatrészek, amelyekre szüksége lesz

Arduino Uno

Kenyeretábla és jumper vezetékek

1 Kis hangszóró vagy Piezo hangjelző

1 Nyomógombos kapcsoló

3 10Ω potenciométer

1 22Ω -os ellenállás

1 10 kΩ -os ellenállás

2. lépés: Építse fel az áramkört

Építsd meg az áramkört
Építsd meg az áramkört

Csatlakoztassa a kenyértáblát az Arduino 5V -os tűjéhez és a GND -hez. Helyezze a nyomógombos kapcsolót a kenyértábla jobb vagy bal szélére, és csatlakoztassa 5V -ra és földelje a 10kΩ -os ellenállás segítségével. Csatlakoztasson egy vezetéket a kapcsolóáramkörből az Arduino 2. tűjéhez.

A kenyértábla másik oldalán állítsa be a hangszóró/piezo áramkört 5 V -ra, és földelje le a 220Ω -os ellenállás segítségével. Ez az ellenállás szabályozza az áramot, így szabályozza a hangerőt; itt kipróbálhat különböző ellenállásokat nagyobb vagy alacsonyabb hangerőre.

Állítsa a potenciométereit a kenyértábla közepére, hogy elegendő hely legyen a gombokkal való hegedüléshez. Minden edényt 5V -ra és földelésre kell csatlakoztatni, és mindegyik középső érintkezőjét az A0, A1 és A2 analóg érintkezőkhöz kell csatlakoztatni

3. lépés: A kód

A potenciométer vagy pot egy változó ellenállás, amelyet az Arduino -hoz csatlakoztatva 0 és 1023 közötti értéket ad vissza. A map () függvény segítségével ezeket az értékeket saját igényeinknek megfelelően módosítjuk. A map () függvény öt érvet tartalmaz, és esetünkben újra le kell térképeznünk a tartományt 220 és 2200 közé, hogy ésszerű hallható hangot adjunk ki.

A funkció valahogy így néz ki:

térkép (pot, 0, 1023, 220, 2200);

Játszhat az utolsó két értékkel magasabb és alacsonyabb frekvenciájú hangok esetén, csak vigyázzon, nehogy idegesítse a kutyáját.

Noise_Machine.ino

/* Zajgép három potenciométert használva analóg bemenetekhez
és piezo vagy kis hangszóró. Nyomógombbal kapcsolható be a zaj, a potenciométerek
szabályozhatja a hangmagasságot az Arduino tone () funkcióval és két késleltetéssel
értékek, amelyek szabályozzák az egyes hangok hosszát és a közötti hosszúságot
minden hang. A potenciométerek analóg értékeket adnak, amelyek megváltoztak
használja a map () függvényt kisebb -nagyobb tartományokba az Ön igényeinek megfelelően
zenei ízlés.
Ez a kód közkincs.
Matt Thomas 2019.04.05
*/
constint gombPin = 2; // Nyomógomb 2
constint hangszóró = 9; // Hangszóró vagy piezo a 9 -es tűben
int buttonState = 0; // A gomb változói
int potZero; // és potenciométerek
int potOne;
int potTwo;
voidsetup () {
pinMode (9, KIMENET); // Hangszóró/piezo kimenet
}
voidloop () {
buttonState = digitalRead (buttonPin); // Olvassa el a nyomógomb állapotát
potZero = analógRead (A0); // Változók az analóg értékek leolvasásához
potOne = analogRead (A1);
potTwo = analógRead (A2);
int htz = térkép (potZero, 0, 1023, 0, 8800); // Térképezze be az analóg értékeket
int high = térkép (potOne, 0, 1023, 0, 100); // új számtartományok létrehozása
int low = térkép (potTwo, 0, 1023, 0, 100); // új változók
if (buttonState == HIGH) {// Ha megnyomja a nyomógombot…
hang (hangszóró, htz); // Hang be
késleltetés (magas); // A hang hossza
noTone (hangszóró); // Némítás
késleltetés (alacsony); // Idő a következő hangig
} más {
noTone (hangszóró); // Nincs hang, ha a gombot elengedik
}
}

Tekintse meg a rawNoise_Machine.ino webhelyet, amelyet a GitHub ❤ üzemeltet

4. lépés: A vége

Szóval ennyi az egész. Játsszon a kód értékeivel, adjon hozzá további edényeket /gombokat, és nézze meg, mit tud még szabályozni. Mondja el, ha hibáztam, és remélem, élvezni fogja a zenét.

Ajánlott: