2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Acesta este un proiect simplu de generare a tonurilor folosind Arduino Pro Mini. O parte a piesei super hit "Jimikky Kammal" din filmul "Velipadinte Pusthakam" este dezvoltată în monoton.
Notele muzicale apar în natură ca unde sinusoidale netede și rulante. În acest proiect, în loc de unde sinusoidale netede, vom produce sunet cu unde pătrate. Undele pătrate produc un ton, dar sunt mai clare și metalice decât o undă sinusoidală normală. O notă muzicală poate fi creată generând frecvență. Fiecare frecvență are un ton unic. Aici Arduino este folosit pentru a crea această frecvență.
Pasul 1: Configurare hardware
Este foarte ușor de configurat hardware-ul. Pentru dezvoltarea acestui proiect suntem solicitați
- Arduino Pro Mini
- Speaker
- FTDI USB to Serial Adapter (pentru încărcarea programului pe Arduino Pro Mini)
Interfață FTDI USB la adaptor serial la Arduino Pro Mini pentru programare așa cum se arată în schema circuitului. Conectați un pin al difuzorului la pinul digital 11 (puteți schimba numărul pinului în Program) al Arduino Pro Mini și altul la masă.
În acest circuit, nu adăugăm niciun circuit de amplificare, astfel încât volumul să fie foarte mic. Puteți adăuga orice circuit de amplificare audio astfel, veți obține mult sunet la ieșire sau puteți utiliza difuzorul PC-ului cu control al volumului reglabil.
Pasul 2: Dezvoltare software
Notele muzicale pot fi create generând oscilații în Arduino. Frecvența oscilației este tonalitatea vitezei tonului notelor muzicale redate Beats este perioada fiecărui ton redat. Deci, trebuie să facem tonuri exacte, ritmuri, tempo pentru fiecare notă muzicală.
În acest program, nu generăm toate frecvențele pentru toate sunetele. Se adaugă doar sunetul necesar pentru muzica „Jimikky Kammal”. Frecvențele pentru toate notele sunt date mai jos de link.
impacttechnolabz.com/fd1_jk.html
Trebuie să convertim aceste frecvențe în perioadă de timp, astfel încât Arduino să obțină durata pentru pornirea și oprirea pinului digital. Calculul tonurilor se face urmând operația matematică:
timeHigh = 1 / (2 * toneFrequency) = period / 2
de exemplu:
Pentru a genera oscilații de 100 Hz, Adică Perioadă de timp = 1/100 S = 0,01 S = 10000 uS
Deci, trebuie să facem pinul HIGH pentru 5000 uS și LOW pentru 5000 uS
adică timp Înalt = 1 / (2 * 100)
= 0,005 S
= 5000 uS
Descărcați codul complet
Pasul 3: Simulare
Am creat o simulare cu ajutorul software-ului Proteus Proffessional instalat pe PC-ul Windows, astfel ieșirea audio poate fi verificată în PC prin intermediul unei plăci de sunet. Trebuie să adăugați explicit Biblioteca Arduino la Proteus.
Pasul 4: Cod
Descărcați codul complet