Bu projemizde ARDUINO UNO'da ADC (Analogdan Dijitale Dönüşüm) konseptini kullanarak Clapper devresi yapacağız. Sesi algılamak ve bir yanıt tetiklemek için bir MIC ve Uno kullanacağız. Bu Clap ON Clap OFF anahtarı, alkış sesini anahtar olarak kullanarak temelde cihazı AÇIK veya KAPALI konuma getirir. Daha önce 555 Timer IC kullanarak Clap anahtarı ve Clap ON Clap OFF anahtarını inşa etmiştik.
Alkışlarken, MIC'de normalden çok daha yüksek bir tepe sinyali olacaktır, bu sinyal bir Yüksek Geçiş Filtresi olsa da amplifikatöre beslenir. Bu yükseltilmiş voltaj sinyali, bu yüksek voltajı bir sayıya dönüştüren ADC'ye beslenir. Bu nedenle, UNO'nun ADC okumasında bir zirve olacak. Bu tepe tespitinde, her alkışta, panodaki bir LED'i değiştireceğiz. Bu proje aşağıda ayrıntılı olarak açıklanmıştır.
MIC veya Mikrofon, temelde ses enerjisini elektrik enerjisine dönüştüren bir ses algılama dönüştürücüdür, bu nedenle bu sensörle değişen voltaj olarak sese sahibiz. Genellikle bu cihaz aracılığıyla ses kaydeder veya algılarız. Bu dönüştürücü, tüm cep telefonlarında ve dizüstü bilgisayarlarda kullanılır. Tipik bir MIC şöyle görünür:
Condenser Mic'in polaritesinin belirlenmesi:
MIC'in biri pozitif ve diğeri negatif olan iki terminali vardır. Mikrofon polaritesi, Multi-Meter kullanılarak bulunabilir. Multi-Meter'ın pozitif probunu alın (ölçüm aletini DIODE TESTING moduna getirin) ve MIC'in bir terminaline ve negatif probu MIC'in diğer terminaline bağlayın. Okumaları ekranda alırsanız, pozitif (MIC) terminali Multi-Meter'ın negatif terminalindedir. Ya da sadece bakarak terminalleri bulabilirsiniz, negatif terminalde mikrofonun metal kasasına bağlı iki veya üç lehim hattı vardır. Negatif terminalden metal kasasına bu bağlantı, negatif terminali bulmak için süreklilik test cihazı kullanılarak da test edilebilir.
Gerekli Bileşenler:
Donanım:
ARDUINO UNO, güç kaynağı (5v), bir kondansatör mikrofonu (yukarıda açıklanmıştır)
2N3904 NPN transistör,
100nF kapasitör (2 adet), bir adet 100uF kapasitör,
1K Ω direnç, 1MΩ direnç, 15KΩ direnç (2 adet), bir LED,
Ve Breadboard ve Bağlantı telleri.
Yazılım: Arduino IDE - Arduino her gece.
Devre Şeması ve Çalışma Açıklaması:
Klape devresinin devre şemasıdır, şekil aşağıda gösterilmiştir:
Çalışmayı dört bölüme ayırdık, yani: Filtrasyon, Amplifikasyon, Analog-dijital dönüştürme ve LED'i değiştirmek için programlama
Ne zaman ses varsa, MIC onu alır ve onu sesin büyüklüğüne doğrusal olarak gerilime dönüştürür. Yani daha yüksek bir ses için daha yüksek değere ve daha düşük ses için daha düşük değere sahibiz. Bu değer, ilk kez yüksek geçiren filtre beslenir filtrasyon. Daha sonra bu filtrelenmiş değer, amplifikasyon için transistöre beslenir ve transistör, kollektörde güçlendirilmiş çıkışı sağlar. Bu toplayıcı sinyal için UNO ADC0 kanalına beslenir analogtan dijitale dönüşüm. Ve son olarak Arduino, ADC kanalı A0 belirli bir seviyenin ötesine her geçtiğinde PORTD'nin PIN 7'sine bağlanan LED'i değiştirmek için programlanmıştır.
1. Filtreleme:
Öncelikle gürültüleri filtrelemek için kullanılan RC Yüksek Geçiş Filtresinden kısaca bahsedeceğiz. Tasarımı kolaydır ve tek bir direnç ve tek kapasitörden oluşur. Bu devre için fazla detaya ihtiyacımız yok, bu yüzden basit tutacağız. Yüksek geçiş filtresi, yüksek frekanslı sinyallerin girişten çıkışa geçmesine izin verir, başka bir deyişle, sinyal frekansı filtrenin öngördüğü frekanstan daha yüksekse çıkışta giriş sinyali görünür. Şimdilik, bu değerler için endişelenmemize gerek yok çünkü burada bir ses amplifikatörü tasarlamıyoruz. Devrede yüksek geçiş filtresi gösterilmektedir.
Bu filtreden sonra, amplifikasyon için transistöre voltaj sinyali beslenir.
2. Amplifikasyon:
MIC'in voltajı çok düşüktür ve ADC için UNO'ya (Analogdan Dijitale Dönüştürme) beslenememektedir, bu nedenle bunun için bir transistör kullanarak basit bir amplifikatör tasarlıyoruz. Burada, MIC voltajlarını yükseltmek için tek bir transistörlü amplifikatör tasarladık. Bu yükseltilmiş voltaj sinyali ayrıca Arduino'nun ADC0 kanalına beslenir.
3. Analogdan Dijitale Dönüşüm:
ARDUINO'nun 6 ADC kanalı vardır. Bunların arasında herhangi biri veya tümü analog voltaj için giriş olarak kullanılabilir. UNO ADC 10 bit çözünürlüktedir (yani (0- (2 ^ 10) 1023) arasındaki tam sayı değerleri) Bu, 0 ile 5 volt arasındaki giriş voltajlarını 0 ile 1023 arasındaki tam sayı değerlerine eşleyeceği anlamına gelir. Birim başına (5/1024 = 4.9mV).
Şimdi, UNO'nun analog sinyali dijital sinyale dönüştürmesi için, aşağıdaki işlevlerin yardımıyla ARDUINO UNO'nun ADC Kanalını kullanmamız gerekiyor:
1. analogRead (pin); 2. analogReference ();
UNO ADC kanallarının varsayılan referans değeri 5V'tur. Bu, herhangi bir giriş kanalında ADC dönüşümü için maksimum 5V giriş voltajı verebileceğimiz anlamına gelir. Bazı sensörler 0-2.5V arasında voltaj sağladığından, 5V referans ile daha az doğruluk elde ederiz, bu nedenle bu referans değerini değiştirmemizi sağlayan bir talimatımız var. Dolayısıyla, referans değerini değiştirmek için "analogReference ()" sahibiz;
Bizim devrede, burada “pim” Biz analog sinyal bağlı pimi temsil eder; doğrudan “analogRead (iğne)” işlevini çağırarak ADC kanalı 0, değeri okuyabilmesi biz, varsayılan bu referans voltajını yazılmıştır bu durumda "A0" olacaktır. ADC'den gelen değer, “int sensorValue = analogRead (A0) olarak bir tamsayı olarak alınabilir; ", Bu komutla ADC'den gelen değer" sensorValue "tamsayısında saklanır. Şimdi, UNO'nun hafızasında dijital formda transistör değerine sahibiz.
4. Arduino'yu her Alkış üzerindeki LED'i değiştirecek şekilde programlayın:
Normal durumlarda, MIC normal sinyaller sağlar ve bu nedenle UNO'da normal dijital değerlere sahibiz, ancak orada MIC tarafından sağlanan bir zirve, bununla UNO'da bir tepe dijital değerimiz var, UNO'yu geçiş yapmak için tepe olduğunda bir LED AÇIK ve KAPALI. Bu yüzden ilk alkışta LED YANAR ve AÇIK kalır. İkinci alkışta LED söner ve bir sonraki alkışa kadar KAPALI kalır. Bununla klape devresine sahibiz. Aşağıdaki program kodunu kontrol edin.