2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Našiel som drobný reproduktor, keď som búral starý PC na recykláciu a myslel som si, že uvidím, ako to znie pomocou funkcie Arduino Tone (). Začal som s jedným 10Ω potenciometrom na ovládanie výšky tónu a začal som trochu šumieť. Funkcia Tone () používa jednoduchý vzor impulzov. Zapína a vypína zvuk na rôznych frekvenciách v tvare štvorca. Nechal som ležať ďalšie dva potenciometre, tak som ich pridal a použil som na ovládanie trvania tónu. Jeden na ovládanie dĺžky tónu a druhý na ovládanie tichého priestoru medzi tónmi. V zásade používa iný vzor štvorcových vĺn, ale s oveľa nižšou frekvenciou. S týmto obvodom môžete dosiahnuť dobrú rozmanitosť šumu. Funguje dobre aj s piezoelektrickým bzučiakom, ale chýba mu basová odozva reproduktora.
Krok 1: Potrebné diely
Arduino Uno
Breadboard a prepojovacie káble
1 Malý reproduktor alebo Piezo bzučiak
1 Vypínač
3 10Ω potenciometre
1 odpor 22Ω
1 odpor 10 kΩ
Krok 2: Vybudujte obvod
Pripojte nepájivú dosku k svojmu 5V kolíku Arduino a GND. Prepínač umiestnite úplne vpravo alebo vľavo na nepájivom poli a pomocou odporu 10 kΩ ho zapojte na 5 V a uzemnenie. Pripojte vodič z obvodu spínača k pinu 2 na vašom Arduino.
Na druhej strane nepájivej dosky nastavte reproduktor/piezo obvod na 5 V a uzemnite pomocou rezistora 220 Ω. Tento rezistor ovláda prúd a tým reguluje hlasitosť; tu môžete vyskúšať rôzne odpory pre vyšší alebo nižší objem.
Potenciometre umiestnite do stredu nepájivej dosky, aby ste mali dostatok miesta na to, aby ste si pohrávali s gombíkmi. Každý hrniec bude potrebné pripojiť k 5 V a uzemneniu a stredové kolíky na každom k analógovým kolíkom A0, A1 a A2.
Krok 3: Kód
Potenciometer alebo hrniec je variabilný odpor, ktorý po pripojení k Arduinu vráti hodnotu medzi 0 a 1023. Na zmenu týchto hodnôt podľa vlastných potrieb použijeme funkciu map (). Funkcia map () má päť argumentov a v našom prípade musíme znova namapovať rozsah na 220 až 2200, aby vznikol primerane počuteľný zvuk.
Funkcia vyzerá asi takto:
mapa (hrniec, 0, 1023, 220, 2200);
Môžete sa pohrať s poslednými dvoma hodnotami pre vyššie a nižšie frekvenčné tóny, dávajte si však pozor, aby ste psa nerozrušili.
Noise_Machine.ino
/* Šumový prístroj využívajúci tri potenciometre pripojené k analógovým vstupom |
a piezo alebo malý reproduktor. Hluk zapína tlačidlo, potenciometre |
ovládajte výšku tónu pomocou funkcie Arduino tone () a dvoch oneskorení |
hodnoty, ktoré riadia dĺžku každého tónu a dĺžku medzi ním |
každý tón. Potenciometre poskytujú analógové hodnoty, ktoré sa menia |
pomocou funkcie map () do väčších alebo menších rozsahov, aby vyhovovali vašim |
hudobný vkus. |
Tento kód je verejne dostupný. |
Matt Thomas 05.04.2019 |
*/ |
tlačidlo obmedzeniaPin = 2; // Kolík tlačidla 2 |
konštantný reproduktor = 9; // Reproduktor alebo piezo v pine 9 |
int buttonState = 0; // Premenné pre tlačidlo |
int potZero; // a potenciometre |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, VÝSTUP); // Pin reproduktora/piezo výstupu |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Prečítajte si stav tlačidla |
potZero = analogRead (A0); // Premenné na čítanie analógových hodnôt |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = mapa (potZero, 0, 1023, 0, 8800); // Namapujte analógové hodnoty na |
int high = mapa (potOne, 0, 1023, 0, 100); // nové číselné rozsahy a vytvorte |
int low = mapa (potTwo, 0, 1023, 0, 100); // nové premenné |
if (buttonState == HIGH) {// Ak je stlačené tlačidlo… |
tón (reproduktor, htz); // Zvuk zapnutý |
oneskorenie (vysoké); // Dĺžka tónu |
noTone (reproduktor); // Vypnúť zvuk |
oneskorenie (nízke); // Čas do ďalšieho tónu |
} else { |
noTone (reproduktor); // Žiadny tón, ak je tlačidlo uvoľnené |
} |
} |
zobraziť rawNoise_Machine.ino hostiteľom ❤ od GitHub
Krok 4: Koniec
Takže to je všetko, čo k tomu patrí. Hrajte sa s hodnotami v kóde, pridajte ďalšie hrnce /tlačidlá a uvidíte, čo ešte môžete ovládať. Dajte mi vedieť, či som urobil nejakú chybu a dúfam, že sa vám hudba bude páčiť.