- Gerekli Bileşenler:
- Devre Açıklaması:
- 555 Zamanlayıcı IC kullanan Sinyal Üreteci:
- Schmitt Tetik Kapısı:
- Arduino Frekans Sayacı Kodu Açıklaması:
Hemen hemen her elektronik hobisi, bir saat veya bir sayaç veya bir zamanlayıcı tarafından üretilen sinyalin frekansını ölçmesi gereken bir senaryoyla karşılaşmış olmalıdır. İşi yapmak için osiloskop kullanabiliriz, ancak hepimiz bir osiloskop almaya gücümüz yetmiyor. Frekansı ölçmek için ekipman satın alabiliriz, ancak tüm bu cihazlar maliyetlidir ve herkese göre değildir. Bunu akılda tutarak, Arduino Uno ve Schmitt tetik geçidini kullanarak basit ama verimli bir Frekans Sayacı tasarlayacağız.
Bu Arduino Frekans Sayacı uygun maliyetli ve kolayca yapılabilir, sinyal frekansını ölçmek için ARDUINO UNO'yu kullanacağız, UNO buradaki projenin kalbidir.
Frekans Ölçer'i test etmek için sahte bir sinyal üreteci yapacağız. Bu sahte sinyal üreteci, 555 zamanlayıcı çip kullanılarak yapılacaktır. Zamanlayıcı devresi, test için UNO'ya sağlanacak bir kare dalga oluşturur.
Her şey yerinde olduğunda, bir Arduino Frekans ölçerimiz ve bir kare dalga jeneratörümüz olacak. Arduino, sinüs dalgası, testere dişi dalgası vb. Gibi başka tür dalga formları oluşturmak için de kullanılabilir.
Gerekli Bileşenler:
- 555 zamanlayıcı IC ve 74LS14 Schmitt tetik kapısı veya DEĞİL kapısı.
- 1K Ω direnç (2 adet), 100Ω direnç
- 100nF kondansatör (2 adet), 1000µF kondansatör
- 16 * 2 LCD,
- 47KΩ pot,
- Breadboard ve bazı konektörler.
Devre Açıklaması:
Arduino kullanılarak yapılan Frekans Ölçümünün devre şeması aşağıdaki şekilde gösterilmiştir. Devre basittir, ölçülen sinyal frekansını görüntülemek için bir LCD Arduino ile arayüz oluşturulmuştur. 'Wave Input', Arduino'ya sinyal beslediğimiz Signal Generator Circuit'e gidiyor. Arduino'ya sadece dikdörtgen dalganın beslendiğinden emin olmak için bir Schmitt tetik kapısı (IC 74LS14) kullanılır. Gürültüyü filtrelemek için güç boyunca birkaç kapasitör ekledik. Bu Frekans Metre, 1 MHz'e kadar olan frekansları ölçebilir.
Sinyal üreteci devresi ve Schmitt tetikleyicisi aşağıda açıklanmıştır.
555 Zamanlayıcı IC kullanan Sinyal Üreteci:
Öncelikle 555 IC tabanlı kare dalga üreteci hakkında konuşacağız veya 555 Astable Multivibrator demeliyim. Bu devre gereklidir, çünkü Frekans Ölçer yerinde olduğunda frekansı bizim tarafımızdan bilinen bir sinyale sahip olmamız gerekir. Bu sinyal olmadan Frekans Ölçerin çalıştığını asla söyleyemeyeceğiz. Bilinen bir frekansa sahip bir karemiz varsa, bu sinyali Arduino Uno Frekans Ölçer'i test etmek için kullanabiliriz ve herhangi bir sapma durumunda doğruluk ayarlamaları için ince ayar yapabiliriz. 555 Timer IC kullanan Signal Generator resmi aşağıda verilmiştir:
Astable modunda tipik 555 devresi aşağıda verilmiştir, buradan yukarıda verilen Sinyal Üreteci Devresini türetdik.
Çıkış sinyali frekansı RA, RB dirençleri ve kapasitör C'ye bağlıdır. Denklem şu şekilde verilir:
Frekans (F) = 1 / (Zaman periyodu) = 1.44 / ((RA + RB * 2) * C).
Burada RA ve RB direnç değerleridir ve C kapasitans değeridir. Direnç ve kapasitans değerlerini yukarıdaki denkleme koyarak çıktı kare dalga frekansını elde ederiz.
Yukarıdaki diyagramın RB'sinin Sinyal Üretici Devresindeki bir pot ile değiştirildiği görülebilir; Bu, daha iyi test için çıkışta değişken frekanslı kare dalga elde edebilmemiz için yapılır. Basitlik için, tencere basit bir dirençle değiştirilebilir.
Schmitt Tetik Kapısı:
Tüm test sinyallerinin kare veya dikdörtgen dalgalar olmadığını biliyoruz. Üçgen dalgalara, diş dalgalarına, sinüs dalgalarına vb. Sahibiz. UNO sadece kare veya dikdörtgen dalgaları algılayabildiğinden, herhangi bir sinyali dikdörtgen dalgalara dönüştürebilecek bir cihaza ihtiyacımız var, bu nedenle Schmitt Trigger Gate kullanıyoruz. Schmitt tetik kapısı, aritmetik ve mantıksal işlemler için tasarlanmış bir dijital mantık kapısıdır.
Bu geçit, GİRİŞ voltaj seviyesine göre ÇIKIŞ sağlar. Bir Schmitt Tetikleyicinin bir THERSHOLD voltaj seviyesi vardır, kapıya uygulanan GİRİŞ sinyali mantık geçidinin EŞİĞİNDEN daha yüksek bir voltaj seviyesine sahipse, ÇIKIŞ YÜKSEK olur. INPUT voltaj sinyal seviyesi THRESHOLD'dan düşükse, kapının OUTPUT'u DÜŞÜK olacaktır. Genellikle Schmitt tetikleyicisini ayrı ayrı almayız, her zaman Schmitt tetikleyicisinden sonra bir NOT geçidimiz vardır. Schmitt Trigger çalışması burada açıklanmıştır: Schmitt Trigger Gate
74LS14 yongasını kullanacağız , bu yonganın içinde 6 Schmitt Tetik geçidi var. Bu SIX geçitleri, aşağıdaki şekilde gösterildiği gibi dahili olarak bağlanır.
Ters Schmitt tetik kapısının Doğruluk Tablosu, bu biz kendi terminallerinde pozitif ve negatif zaman aralıklarını evirmek için UNO program bilgisi, Şekil aşağıda göstermeleridir.
Şimdi ST geçidine her türlü sinyali besleyeceğiz, çıkışta ters çevrilmiş zaman periyotlarının dikdörtgen dalgasına sahip olacağız, bu sinyali UNO'ya besleyeceğiz.
Arduino Frekans Sayacı Kodu Açıklaması:
Arduino kullanarak bu frekans ölçümü için kod oldukça basit ve kolay anlaşılırdır. Burada, esas olarak frekansı ölçmekten sorumlu olan pulseIn fonksiyonunu açıklıyoruz. Uno özel bir işlevi vardır pulseIn , pozitif durum süresini ya da belirli bir dikdörtgen dalganın negatif durum süresini belirlememizi sağlayan:
Htime = pulseIn (8, YÜKSEK); Ltime = pulseIn (8, DÜŞÜK);
Verilen işlev, Uno PIN8’inde Yüksek veya Düşük seviyenin mevcut olduğu süreyi ölçer. Yani tek bir dalga döngüsünde, Mikro saniye cinsinden pozitif ve negatif seviyeler için süreye sahip olacağız. PulseIn işlevi mikro saniye cinsinden süreyi ölçer. Verilen bir sinyalde, yüksek zamanımız = 10mS ve düşük zamanımız = 30ms (frekans 25 HZ ile). Yani 30000, Ltime tamsayısında ve 10000 Htime'da depolanacaktır. Bunları bir araya topladığımızda Döngü Süresine sahip olacağız ve bunu tersine çevirerek Frekansa sahip olacağız.
Arduino kullanan bu Frekans Ölçer için tam kod ve video aşağıda verilmiştir.