2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Jedná se o jednoduchý projekt generátoru tónů pomocí Arduino Pro Mini. Část super hitu „Jimikky Kammal“z filmu „Velipadinte Pusthakam“je vyvinuta monotónně.
Hudební noty se v přírodě vyskytují jako hladké a valivé sinusové vlny. V tomto projektu místo hladkých sinusových vln budeme produkovat zvuk se čtvercovými vlnami. Čtvercové vlny vytvářejí tón, ale jsou ostřejší a kovovější než normální sinusová vlna. Hudební notu lze vytvořit generováním frekvence. Každá frekvence má jedinečný tón. Zde Arduino slouží k vytvoření této frekvence.
Krok 1: Nastavení hardwaru
Nastavení hardwaru je velmi snadné. Pro vývoj tohoto projektu požadujeme
- Arduino Pro Mini
- mluvčí
- FTDI USB to Serial Adapter (pro nahrávání programu do Arduino Pro Mini)
Rozhraní FTDI USB na sériový adaptér k Arduino Pro Mini pro programování podle schématu zapojení. Připojte jeden pin reproduktoru k digitálnímu pinu 11 (číslo pinu můžete změnit v Programu) Arduino Pro Mini a jiného k uzemnění.
Do tohoto obvodu nepřidáváme žádný obvod zesilovače, aby mohla být hlasitost velmi nízká. Můžete přidat libovolný obvod zesilovače zvuku, takže na výstup získáte hodně zvuku nebo můžete použít reproduktor PC s nastavitelným ovládáním hlasitosti.
Krok 2: Vývoj softwaru
Hudební noty lze vytvářet generováním oscilace v Arduinu. Frekvence oscilace je výška rychlosti melodie přehrávaných not Beats je období každé přehrávané melodie. Takže musíme udělat přesnou výšku, údery, tempo pro každou hudební notu.
V tomto programu nevygenerujeme všechny frekvence pro všechny zvuky. Je přidán pouze zvuk požadovaný pro hudbu „Jimikky Kammal“. Frekvence pro všechny noty jsou uvedeny níže.
impacttechnolabz.com/fd1_jk.html
Musíme tyto frekvence převést na časové období, aby Arduino získalo dobu zapnutí a vypnutí digitálního pinu. Výpočet tónů se provádí podle matematické operace:
timeHigh = 1 / (2 * toneFrequency) = perioda / 2
např:
Chcete -li generovat oscilace 100 Hz, tj. časové období = 1/100 S = 0,01 S = 10 000 uS
Takže musíme udělat pin HIGH pro 5000 uS a LOW pro 5000 uS
tj. timeHigh = 1/(2*100)
= 0,005 S.
= 5 000 uS
Stáhněte si celý kód
Krok 3: Simulace
Vytvořili jsme simulaci pomocí softwaru Proteus Proffessional nainstalovaného v systému Windows PC, takže zvukový výstup lze v počítači ověřit pomocí zvukové karty. K Proteusu musíte výslovně přidat knihovnu Arduino.
Krok 4: Kód
Stáhněte si celý kód