16 × 2 Ekran Kullanan Arduino Frekans Ölçer

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazıda, okumaları 16x2 LCD ekranda sergilenecek ve 35 Hz ila 1 MHz arasında bir ölçüm aralığına sahip olacak Arduino kullanarak bir dijital frekans ölçer oluşturacağız.

Giriş

Elektronik meraklısı olarak, hepimiz projelerimizde frekansı ölçmemiz gereken bir noktaya denk gelirdik.



Bu noktada, bir osiloskobun frekansı ölçmek için çok kullanışlı bir araç olduğunu fark etmiş olurduk. Ancak, hepimiz bir osiloskopun pahalı bir araç olduğunu biliyoruz, hobicilerin hepsi bir tane alamaz ve osiloskop yeni başlayanlar için aşırı bir araç olabilir.

Hobileri, frekansı ölçme sorununun üstesinden gelmek için pahalı bir osiloskoba ihtiyaç duymaz, sadece frekansı makul doğrulukla ölçebilen bir frekans ölçere ihtiyacımız var.



Bu yazıda, yapımı basit ve başlangıç ​​dostu olan, Arduino'daki noob'un bile kolaylıkla başarabileceği bir frekans ölçer yapacağız.

Yapısal ayrıntılara girmeden önce, sıklığın ne olduğunu ve nasıl ölçülebileceğini inceleyelim.

Frekans nedir? (Çaylaklar için)

Frekans terimine aşinayız, ama bu gerçekten ne anlama geliyor?

Frekans, saniyedeki salınımların veya döngülerin sayısı olarak tanımlanır. Bu tanım ne anlama geliyor?

'Bir şeyin' genliğinin BİR saniyede kaç kez yukarı ve aşağı gittiği anlamına gelir. Örneğin, ikametgahımızdaki AC güç frekansı: 'Voltaj' ('bir şey' yerine 'voltaj') genliği bir saniyede artar (+) ve düşer (-), bu çoğu ülkede 50 kattır.

Bir döngü veya bir salınım yukarı ve aşağıdan oluşur. Yani bir döngü / salınım, genliğin sıfırdan pozitif tepeye gitmesi ve sıfıra dönmesi ve negatif tepeye gitmesi ve sıfıra dönmesidir.

'Zaman periyodu' ayrıca sıklık ile uğraşırken kullanılan bir terimdir. Zaman periyodu, 'bir döngüyü' tamamlamak için geçen süredir. Aynı zamanda frekansın ters değeridir. Örneğin 50 Hz'de 20 ms'lik bir zaman periyodu vardır.

1/50 = 0,02 saniye veya 20 milisaniye

Şimdiye kadar sıklık ve bununla ilgili terimler hakkında bir fikriniz olacaktı.

Frekans nasıl ölçülür?

Bir döngünün yüksek ve düşük sinyalin birleşimi olduğunu biliyoruz. Yüksek ve düşük sinyallerin süresini ölçmek için arduino'da 'pulseIn' kullanıyoruz. pulseIn (pin, HIGH) yüksek sinyallerin süresini ve pulseIn (pin, LOW) düşük sinyallerin süresini ölçer. Her ikisinin de darbe süresi eklenir ve bir döngü süresi verir.

Belirlenen süre daha sonra bir saniye için hesaplanır. Bu, aşağıdaki formülle yapılır:

Frekans = 1000000 / mikrosaniye cinsinden zaman periyodu

Arduino'dan zaman periyodu mikrosaniye cinsinden elde edilir. Arduino, tüm saniye boyunca giriş frekansını örneklemez, ancak yalnızca bir döngünün zaman periyodunu analiz ederek frekansı doğru bir şekilde tahmin eder.

Artık arduino'nun frekansı nasıl ölçtüğünü ve hesapladığını biliyorsunuz.

Devre:

Devre, projenin beyni olan arduino, 16x2 LCD ekran, IC 7404 invertör ve kontrastı ayarlamak için bir potansiyometreden oluşmaktadır. LCD ekran .

Önerilen kurulum, 35Hz ila 1 MHz arasında değişebilir.

Arduino ekran bağlantısı:

Yukarıdaki şema kendi kendini açıklayıcıdır, arduino ile ekran arasındaki kablo bağlantısı standarttır ve diğer arduino ve LCD tabanlı projelerde benzer bağlantılar bulabiliriz.

16x2 Ekran Kullanan Arduino Frekans Ölçer

Yukarıdaki şema, IC 7404 invertöründen oluşmaktadır. IC 7404'ün rolü, girişten gelen gürültüyü ortadan kaldırmaktır, böylece gürültü, yanlış okumalara neden olabilecek şekilde arduino'ya yayılmaz ve IC 7404, geçmeyecek kısa ani voltajı tolere edebilir. arduino pimleri. IC 7404, yalnızca arduino'nun analog dalgalara kıyasla kolayca ölçebildiği dikdörtgen dalgalar üretir.

NOT: Maksimum tepeden tepeye giriş 5V'u geçmemelidir.

Program:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time
float frequency
const int input = A0
const int test = 9
void setup()
{
pinMode(input,INPUT)
pinMode(test, OUTPUT)
lcd.begin(16, 2)
analogWrite(test,127)
}
void loop()
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
X=pulseIn(input,HIGH)
Y=pulseIn(input,LOW)
Time = X+Y
frequency=1000000/Time
if(frequency<=0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
lcd.setCursor(0,1)
lcd.print('0.00 Hz')
}
else
{
lcd.setCursor(0,1)
lcd.print(frequency)
lcd.print(' Hz')
}
delay(1000)
}
//-----Program Developed by R.Girish-----//

Frekans ölçeri test etme:

Projeyi başarıyla oluşturduktan sonra, her şeyin yolunda gidip gitmediğini kontrol etmek gerekir. Okumaları doğrulamak için bilinen bir frekans kullanmalıyız. Bunu başarmak için arduino'nun 490Hz frekansa sahip dahili PWM işlevini kullanıyoruz.

Programda pin # 9,% 50 görev döngüsünde 490Hz verecek şekilde etkinleştirilmiştir, kullanıcı, frekans ölçerin giriş kablosunu kavrayabilir ve şekilde gösterildiği gibi arduino'nun 9 numaralı pinine sokabilir, LCD ekranda 490 Hz görebiliriz (biraz toleransla), bahsedilen prosedür başarılı olduysa, frekans ölçer size deneyler sunmaya hazırdır.

Yazarın prototipi:

Arduino Frekans Ölçer Prototip Görüntüsü

Kullanıcı, yukarıdaki resimde gösterilen harici frekans üretecini kullanarak bu Arduino frekans ölçer devre prototipini de test edebilir.




Önceki: Tam Program Kodlu Arduino Saf Sinüs İnvertör Devresi Sonraki: Arduino kullanarak Tek Kanallı Osiloskop yapmak