Arduino Frekansmetre Yapımı, Frekans Okuyucu
Arduino frekansmetre yapımı ile, maksiumum 5Vpp olmak üzere 1 Mhz‘e kadar okumalar gerçekleştirebilirsiniz. Düşük frekanslardaki okumalarda doğruluk oranı, yüksek frekanslara göre daha düşüktür, bu yüzden bu ölçümlerde %99 doğruluk beklenemez.
220-380VAC aralığındaki frekansları ölçmek için buradaki içeriğimize bakmanızı öneriyoruz.
Okunan frekansı görmek için, seri ekranı veya 16×2 LCD ekranı kullanabilirsiniz, kod kısmını ve devre şemasını 16×2 LCD ekrana göre ayarladık, I2C kullanan bir LCD ekranınız varsa kod kısmındaki ilgili yerleri “//” yorum olarak değiştirebilirsiniz.
0-1 MHz Ölçen Devre
Bu devrede direnç harici bir komponent kullanılmıyor, ayrıca frekans ölçmek için gerekli kütüphaneyi indirmeniz gerekiyor. I2C ve I2C olmayan LCD Ekranlar için ayrıca ufak eklemeler yaptık bu sayede, yorum yaparak ya da yorum kaldırarak kendi LCD ekranınıza göre seçim yapabilirsiniz.
FreqCount ve LiquidCrystal_I2C, Arduino kütüphane yöneticisi (Kütüphaneleri Yönet…) aracılığıyla çevrimiçi olarak veya zip dosyasını indirip kurarak manuel olarak kurulabilir. Eğer kütüphane kurmayı ve eklemeyi bilmiyorsanız bu yazımıza göz atabilirsiniz.
LiquidCrystal_I2C.h kütüphanesi
Gerekli Malzemeler
- Geliştirme kartı(Arduino UNO)
- 16×2 LCD Ekran(Tercihe bağlı)
- Dirençler: 330Ω, 10kΩ
- Devre tahtası
- Kablolar
Devre Şeması
Program Kodu
Program kodu I2C olmayan bir 16X2 LCD ekran için hazırlanmıştır, eğer I2C kullanacaksınız gerekli yerleri düzelterek yapabilirsiniz. Gerekli kütüphaneleri üst taraftaki bağlantılardan indirebilirsiniz.
//#include <LiquidCrystal_I2C.h> //I2C ISE YORUMU KALDIRIN #include <FreqCount.h> #include <LiquidCrystal.h> //I2C ISE YORUM YAPIN. // LCD baglantilari (RS, E, D4, D5, D6, D7) LiquidCrystal lcd(2, 3, 4, 6, 7, 8); //I2C ISE YORUM YAPIN. //LiquidCrystal_I2C lcd(0x27, 16, 2) //I2C ISE YORUMU KALDIRIN void setup(void) { // lcd.begin(); //I2C İÇİN lcd.begin(16, 2); //I2C DEGILSE YORUM YAPIN. lcd.print("Frekans:"); FreqCount.begin(1000); Serial.begin(9600); } void loop() { if (FreqCount.available()) { unsigned long count = FreqCount.read(); lcd.setCursor(0, 1); lcd.print(count); lcd.print(" Hz "); Serial.print("Hz: "); Serial.println(count); } }
Ses Frekansı Ölçen Devre(60-1500Hz)
Kod, genel bir giriş sinyalinin frekansını elde etmek için A0’a bağlıdır, elektronik devre aracılığıyla yükseltilen bir sinyalin frekansını ölçmek için Audio Frequency Meter Library kullanır. Şu anda kitaplık tarafından ölçülen aralık 60 ila 1500 Hz arasındadır ve setBandwidth() yöntemiyle daraltılabilir. Kütüphane, arduino kütüphane yöneticisi kullanılarak ya da doğrudan indirerek .zip olarak kurulabilir.
Gerekli Malzemeler
- Geliştirme kartı(Arduino UNO)
- 10kΩ potansiyometre
- LM358 ya da TLV2462
- Dirençler: 2 x 100kΩ , 2 x 4.7kΩ
- 100n farad kondansatör
- 3.5mm jack ya da kablo ile bağlantı
Devre Şeması
Düşük seviyeli girişlerden bile en dinamik aralığı elde etmek için devre, sinyalin genliğini ADC tarafından desteklenen tam giriş voltajı aralığına getiren evirmeyen bir yükselteçten oluşur. Tam çözünürlükte örnekleme, daha iyi bir doğruluk anlamına gelir.
10k potansiyometre, amplifikatörün kazancının ADC giriş aralığı ile sinyal seviyesine uygun olarak ayarlanmasını sağlar. Bu ayar Arduino IDE Seri Monitör üzerindeki çıkışa bakılarak yapılmalıdır: frekans okuması sabit olduğunda kazanç düzgün şekilde ayarlanır.
Alternatif olarak, bu amaç için özel olarak tasarlanmış, ayarlanabilir kazançlı electret mikrofon amplifikatörü – MAX4466’yı kullanabilirsiniz.
Program Kodu
#include <AudioFrequencyMeter.h> AudioFrequencyMeter olcum; void setup() { Serial.begin(115200); Serial.println("olcum basladi..."); olcum.setBandwidth(70.00, 1500); olcum.begin(A0, 45000); } void loop() { float frekans = olcum.getFrequency(); if (frekans > 0) { Serial.print(frekans); Serial.println(" Hz"); } }
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.