- Potrebni materijali:
- Kružni dijagram:
- Korištenje regresijske metode za izračunavanje dB iz vrijednosti ADC:
- Arduino program za mjerenje razine zvuka u dB:
- Rad Arduino mjerača razine zvuka:
- Pojačalo s krugom filtera:
Zagađenje bukom zaista je počelo dobivati na značaju zbog velike gustoće naseljenosti. Normalno ljudsko uho moglo je čuti razine zvuka od 0 dB do 140 dB u kojima se razina zvuka od 120 dB do 140 dB smatra šumom. Razina glasnoće ili zvuka obično se mjeri u decibelima (dB), imamo neke instrumente koji bi mogli mjeriti zvučne signale u dB, ali ti su mjerači malo skupi i nažalost nemamo modul osjetnika za mjerenje razine zvuka u decibelima. I nije ekonomično kupiti skupe mikrofone za mali Arduino projekt koji bi trebao mjeriti razinu zvuka u maloj učionici ili dnevnoj sobi.
Dakle, u ovom ćemo projektu koristiti normalni Electret Condenser mikrofon s Arduinom i pokušati izmjeriti razinu zagađenja zvukom ili bukom u dB što je bliže stvarnoj vrijednosti. Upotrijebit ćemo uobičajeni krug pojačala za pojačavanje zvučnih signala i dovod u Arduino u kojem ćemo koristiti regresijsku metodu za izračunavanje zvučnih signala u dB. Da bismo provjerili jesu li dobivene vrijednosti točne, možemo koristiti android aplikaciju „Merač zvuka“, ako imate bolji mjerač, to možete koristiti za kalibraciju. Imajte na umu da ovaj projekt nema za cilj precizno izmjeriti dB, već će samo dati vrijednosti što bliže stvarnoj vrijednosti.
Potrebni materijali:
- Arduino UNO
- Mikrofon
- LM386
- 10K varijabla POT
- Otpornici i kondenzatori
Kružni dijagram:

Krug za ovaj Arduino mjerač razine zvuka vrlo je jednostavan u kojem smo koristili krug LM386 audio pojačala za pojačavanje signala iz kondenzatorskog mikrofona i njegovo napajanje na analogni priključak Arduino. Već smo koristili ovaj LM386 IC za izradu niskonaponskog kruga audio pojačala, a sklop je više-manje isti.
Pojačanje ovog pojedinog pojačala može se postaviti od 20 do 200 pomoću otpornika ili kondenzatora preko pina 1 i 8. Ako ih ne puste, pojačanje će se prema zadanim postavkama postaviti na 20. Za naš projekt koristimo maksimalan dobitak koji ovaj krug postiže, pa koristimo kondenzator vrijednosti 10uF između pinova 1 i 8, imajte na umu da je ovaj pin osjetljiv na polaritet i da bi negativni pin kondenzatora trebao biti spojen na pin 8 krug napaja 5V pin iz Arduina.
Kondenzator C2 koristi se za filtriranje istosmjerne buke iz mikrofona. U osnovi kada mikrofon osjeti zvuk, zvučni valovi pretvorit će se u izmjenične signale. Ovaj izmjenični signal mogao bi imati povezan s istosmjernom bukom koja će se filtrirati pomoću ovog kondenzatora. Slično tome, čak i nakon pojačanja kondenzator C3 koristi se za filtriranje istosmjernog šuma koji je mogao biti dodan tijekom pojačanja.

Korištenje regresijske metode za izračunavanje dB iz vrijednosti ADC:
Kad smo spremni s našim krugom, možemo Arduino spojiti na računalo i s Arduina prenijeti primjer programa „Analog Read Serial“ kako bismo provjerili dobivamo li ispravne ADC vrijednosti iz našeg mikrofona. Sada ove ADC vrijednosti moramo pretvoriti u dB.
Za razliku od ostalih vrijednosti poput mjerenja temperature ili vlage, mjerenje dB nije jednostavan zadatak. Budući da vrijednost dB nije linearna s vrijednošću ADC-a. Postoji nekoliko načina na koje možete doći, ali svaki mogući korak koji sam pokušao nije mi donio dobre rezultate. Ovdje možete pročitati ovaj Arduino forum ako želite probati.
Za moju prijavu nije mi trebala velika preciznost tijekom mjerenja dB vrijednosti i stoga sam odlučio koristiti lakši način izravne kalibracije ADC vrijednosti s dB vrijednostima. Za ovu metodu trebat će nam SPL mjerač (SPL mjerač je instrument koji može očitati dB vrijednosti i prikazati ga), ali nažalost nisam ga imao i siguran je da većina nas neće. Dakle, možemo koristiti android aplikaciju nazvanu "Zvukomjer" koju možete besplatno preuzeti iz trgovine za reprodukciju. Postoji mnogo takvih vrsta aplikacija i možete preuzeti sve što želite. Ove aplikacije koriste ugrađeni mikrofon telefona za otkrivanje razine buke i prikazivanje na našem mobitelu. Nisu vrlo precizni, ali sigurno bi radili za naš zadatak. Pa krenimo s instaliranjem Android aplikacije, moja je kada se otvori izgledala otprilike ovako u nastavku

Kao što sam ranije rekao, odnos dB i analognih vrijednosti neće biti linearan, stoga moramo ove dvije vrijednosti uspoređivati u različitim intervalima. Samo zabilježite vrijednost ADC koja se prikazuje na zaslonu za različite dB prikazane na vašem mobilnom telefonu. Uzeo sam oko 10 očitavanja i ona su izgledala ovako u nastavku, možda se malo razlikujete

Otvorite excel stranicu i unesite ove vrijednosti, za sada ćemo koristiti Excel za pronalaženje vrijednosti regresije za gornji broj. Prije toga napravimo grafikon i provjerimo kako se obojica odnose, moj je izgledao ovako u nastavku.

Kao što možemo vidjeti vrijednost dB nije linearno povezana s ADC-om, što znači da ne možete imati zajednički množitelj za sve vrijednosti ADC-a da biste dobili njegove ekvivalentne vrijednosti dB. U tom slučaju možemo koristiti metodu "linearne regresije". U osnovi, pretvorit će ovu nepravilnu plavu crtu u najbližu moguću ravnu crtu (crna crta) i dati nam jednadžbu te ravne crte. Ova se jednadžba može koristiti za pronalaženje ekvivalentne vrijednosti dB za svaku vrijednost ADC-a koju Arduino mjeri.
U Excelu imamo dodatak za analizu podataka koji će automatski izračunati regresiju za vaš skup vrijednosti i objaviti njegove podatke. Neću opisivati kako to učiniti s excelom jer je to izvan dosega ovog projekta, a lako vam je i Google i naučiti ga. Jednom kada izračunate regresiju za vrijednost, Excel će dati neke vrijednosti kao što je prikazano u nastavku. Zanimaju nas samo brojevi koji su istaknuti u nastavku.

Jednom kada dobijete ove brojeve moći ćete oblikovati donju jednadžbu poput
ADC = (11,003 * dB) - 83,2073
Iz čega možete izvesti dB
dB = (ADC + 83.2073) / 11.003
Možda ćete morati voziti vlastitu jednadžbu jer se kalibracija može razlikovati. No, čuvajte ovu vrijednost na sigurnom jer će nam trebati tijekom programiranja Arduina.
Arduino program za mjerenje razine zvuka u dB:
Kompletni program za mjerenje dB dan je u nastavku, nekoliko važnih redaka objašnjeno je u nastavku
U ova gornja dva retka čitamo ADC vrijednost pina A0 i pretvaramo je u dB pomoću jednadžbe koju smo upravo izveli. Ovu dB vrijednost možda nismo precizni do prave dB vrijednosti, ali ostaje prilično blizu vrijednosti prikazanim u mobilnoj aplikaciji.
adc = analogRead (MIC); // Očitavanje vrijednosti ADC iz pojačala dB = (adc + 83.2073) / 11.003; // Pretvorba vrijednosti ADC u dB pomoću vrijednosti regresije
Kako bismo provjerili radi li program ispravno, dodali smo i LED na digitalni pin 3 koji se podiže na 1 sekundu kada Arduino izmjeri glasnu buku veću od 60 dB.
if (dB> 60) {digitalWrite (3, HIGH); // uključiti LED (HIGH je razina napona) kašnjenje (1000); // čekamo drugi digitalWrite (3, LOW); }
Rad Arduino mjerača razine zvuka:
Kad ste spremni s kodom i hardverom, samo prenesite kôd i otvorite serijski monitor kako biste pogledali vrijednosti dB izmjerene vašim Arduinom. Testirao sam ovaj kôd u svojoj sobi gdje nije bilo puno buke, osim prometa vani, a dolje navedene vrijednosti dobio sam na svom serijskom monitoru, a aplikacija za Android također je prikazala nešto blizu ovog

Kompletni rad projekta nalazi se u videozapisu na kraju ove stranice. Pomoću njega možete projicirati kako biste otkrili zvuk u sobi i provjerili postoji li neka aktivnost ili koliko se buke stvara u svakoj učionici ili nešto slično. Upravo sam napravio LED diodu koja će se goriti 2 sekunde ako ima zvuka snimljenog iznad 60 dB.
Rad neobično zadovoljava, ali se sigurno može koristiti za projekte i druge osnovne prototipove. Uz još nekoliko kopanja otkrio sam da je problem zapravo u hardveru koji mi je povremeno još uvijek stvarao buku. Stoga sam isprobao druge sklopove koji se koriste na mikrofonskim pločama s zabavnim iskrama koje imaju niskopropusni i visokopropusni filtar. Objasnio sam donji krug da biste pokušali.
Pojačalo s krugom filtera:
Ovdje smo koristili niskopropusne i visokopropusne filtere s pojačalom kako bismo smanjili buku u ovom krugu za mjerenje razine zvuka tako da se može povećati točnost.

U ovom gore navedenom krugu koristili smo popularno pojačalo LM358 za pojačavanje signala iz mikrofona. Zajedno s pojačalom koristili smo i dva filtra, visokopropusni filtar čine R5, C2, a niskopropusni filtar koriste C1 i R2. Ovi su filtri dizajnirani da omogućuju frekvenciju samo od 8Hz do 10KHz, jer će niskopropusni filtar filtrirati sve ispod 8Hz, a visokopropusni filtar sve iznad 15KHz. Ovo je frekvencijsko područje odabrano jer moj kondenzatorski mikrofon radi samo od 10Hz do 15KHZ kako je prikazano u tablici ispod.

Ako se vaša potražnja za frekvencijom promijeni, možete upotrijebiti donje formule za izračun vrijednosti otpornika i kondenzatora za vašu potrebnu frekvenciju.
Frekvencija (F) = 1 / (2πRC)
Također, imajte na umu da će vrijednost otpora koji se ovdje koristi također utjecati na pojačanje pojačala. Izračun vrijednosti otpornika i kondenzatora korištenih u ovom krugu prikazan je u nastavku. Ovdje možete preuzeti excel list za izmjenu vrijednosti frekvencije i izračunavanje vrijednosti regresije.

Bivši sklop djelovao je zadovoljavajuće za moja očekivanja, pa ovaj nikada nisam probao. Ako slučajno isprobate ovaj sklop, javite mi ako funkcionira bolje od prethodnog putem komentara.
