2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Našel jsem malého reproduktora, zatímco jsem strhával starý PC pro recyklaci a myslel jsem si, že pomocí funkce Arduino Tone () uvidím, jak to zní. Začal jsem jedním 10Ω potenciometrem pro ovládání výšky tónu a začal vydávat nějaký hluk. Funkce Tone () používá jednoduchý pulzní vzor. Zapíná a vypíná zvuk na různých frekvencích ve tvaru čtvercových vln. Nechal jsem ležet dva další potenciometry, takže jsem je přidal a použil k ovládání doby trvání tónu. Jeden pro ovládání délky tónu a druhý pro ovládání tichého prostoru mezi tóny. V zásadě používá jiný vzor čtvercových vln, ale na mnohem nižší frekvenci. S tímto obvodem můžete dosáhnout dobré rozmanitosti šumu. Funguje dobře i s piezoelektrickým bzučákem, ale postrádá basovou odezvu reproduktoru.
Krok 1: Díly, které budete potřebovat
Arduino Uno
Breadboard a propojovací vodiče
1 Malý reproduktor nebo Piezo bzučák
1 Tlačítko
3 10Ω potenciometry
1 odpor 22 Ω
1 odpor 10 kΩ
Krok 2: Vybudujte obvod
Připojte prkénko k pinu Arduino 5V a GND. Umístěte přepínač zcela vpravo nebo vlevo na desce a připojte jej k 5 V a uzemnění pomocí odporu 10 kΩ. Připojte vodič z obvodu spínače ke kolíku 2 na vašem Arduinu.
Na druhé straně prkénka nastavte reproduktor/piezo obvod na 5 V a uzemněte pomocí odporu 220 Ω. Tento rezistor ovládá proud, čímž ovládá hlasitost; zde můžete vyzkoušet různé odpory pro vyšší nebo nižší hlasitost.
Uspořádejte potenciometry uprostřed prkénka tak, abyste měli dostatek prostoru pro ovládání knoflíků. Každý hrnec bude muset být připojen k 5V a uzemnění a středové piny na každém připojeny k analogovým pinům A0, A1 a A2
Krok 3: Kód
Potenciometr nebo pot je proměnný odpor, který po připojení k Arduinu vrátí hodnotu mezi 0 a 1023. Ke změně těchto hodnot použijeme funkci map (), aby vyhovovala našim vlastním potřebám. Funkce map () má pět argumentů a v našem případě musíme přemapovat rozsah na 220 až 2200, abychom vytvořili rozumný slyšitelný zvuk.
Funkce vypadá nějak takto:
mapa (hrnec, 0, 1023, 220, 2200);
Můžete si pohrát s posledními dvěma hodnotami pro vyšší a nižší frekvenční tóny, dávejte si pozor, abyste svého psa nerozrušili.
Noise_Machine.ino
/* Šumový stroj využívající tři potenciometry připojené k analogovým vstupům |
a piezo nebo malý reproduktor. Tlačítko zapíná hluk, potenciometry |
ovládejte výšku pomocí funkce Arduino tone () a dvou delay |
hodnoty, které řídí délku každého tónu a délku mezi |
každý tón. Potenciometry udávají analogové hodnoty, které se mění |
pomocí funkce map () do větších nebo menších rozsahů, aby vyhovovaly vašim |
hudební vkus. |
Tento kód je veřejně dostupný. |
Matt Thomas 5. 4. 2019 |
*/ |
konstantní tlačítko Pin = 2; // Kolík tlačítka 2 |
konstantní reproduktor = 9; // Reproduktor nebo piezo v pinu 9 |
int buttonState = 0; // Proměnné pro tlačítko |
int potZero; // a potenciometry |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, VÝSTUP); // Výstupní pin reproduktoru/piezo |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Přečíst stav tlačítka |
potZero = analogRead (A0); // Proměnné pro čtení analogových hodnot |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = mapa (potZero, 0, 1023, 0, 8800); // Namapujte analogové hodnoty na |
int high = mapa (potOne, 0, 1023, 0, 100); // nové číselné rozsahy a vytvoření |
int low = mapa (potTwo, 0, 1023, 0, 100); // nové proměnné |
if (buttonState == HIGH) {// Pokud je stisknuto tlačítko… |
tón (reproduktor, htz); // Zvuk zapnutý |
zpoždění (vysoké); // Délka tónu |
noTone (reproduktor); // Zvuk vypnutý |
zpoždění (nízké); // Čas do dalšího tónu |
} else { |
noTone (reproduktor); // Žádný tón, pokud je tlačítko uvolněno |
} |
} |
zobrazit rawNoise_Machine.ino hostitelem ❤ od GitHub
Krok 4: Konec
To je tedy vše. Hrajte si s hodnotami v kódu, přidejte další poty /tlačítka a uvidíte, co dalšího můžete ovládat. Dejte mi vědět, jestli jsem udělal nějakou chybu a doufám, že se vám hudba bude líbit.