Eğitim Şart

Taşı delen suyun şiddeti değil sürekliliğidir!…

CD 4017 Sayıcı İle Frekans Bölücü

Arduino’da kullanılan değişkenler yazımızın başını hatırlarsanız, aslında bu yazının temelinin ATtiny13A’nın küçük hafızasından dolayı bu hafızanın optimum kullanımı için bir giriş yaptığımdan bahsetmiştim. Orada ulaştığım sonuç bir sonraki çalışmamın konusu. ‘Port Manipülasyonu’ deniyor buna. Ama onu açıklarken ihtiyaç duyduğum frekans seviyesine elimdeki DSO 150 osiloskop çıkmadığı için bir frekans bölücü devresine ihtiyaç duydum. Bunu da paylaşmak istedim.

img_20200605

Frekans bölücü olarak CD4017 kullandım. Bu entegre aslında onlu sayıcı (decade counter). Data sheet‘e göre; CMOS olan bu entegre 3-18 volt besleme ile çalışabiliyor. Maksimum giriş frekansı uygulanan besleme gerilimi ile orantılı ve 5.5 MHz’e kadar çıkıyor (5 volt beslemede bile 2.5 MHZ e kadar çıkabiliyor ki benim kullandığım osiloskop için bu sınır sadece 200 kHz). Toplam 14 bacaklı entegrenin saat (clock) girişinden kare dalga yollandığında sırasıyla 0-9 çıkışları 1 oluyor. Zaten bu bacaklara birer tane LED bağlandığında LED’ler sırayla yandığında bir akan ışık efekti alınıyor. Zaten YouTube’da birçok örneğini görebilirsiniz.

14 numaralı bacak (clock) sistemi çalıştıran kare dalgayı uyguladımız bacak. 15 numaralı bacak reset bacağı ve normalde gnd hattında iken devre çalışıyor. Bu bacağı +5 volt hattına çektiğinizde sistem resetleniyor ve sayma duruyor. Bu güzel bir özellik! Bu bacağı örneğin 2 numaralı LED’in bağlı olduğu (4 numaralı) bacağa bağladığınızda sadece ikiye kadar sayıyor, sonra başa dönüyor. Aslında veri kağıdı bu iş için NOR kapılarından bir flip flop ile yapmış bu işi. Ama benim söylediğim de çalışıyor. 12 numaralı bacak ilginç. Onlu saymada ilk beş sayılırken HIGH seviyesinde, sonraki beş sayılırken LOW oluyor.  Bu bacak bile tek başına çıktı olarak kullanılabilir. Zaten birden fazla 4017 ile yürüyen ışık yaparken bu bacak, sonraki 4017’nin clock girişine bağlanıyor. 13 numaralı bacak ‘clock enable’ bacağı. Bu normalde LOW iken devre çalışıyor. HIGH yaptığınızda sayma işlemi olduğu yerde kalıyor (sistem donuyor).

Şimdi bu entegre nasıl frekans bölücü olarak kullanılacak? Varsayalım girişten uyguladığımız kare dalganın frekansı 1 Hz olsun. Yani (farzedin) girişte bir LED var. Bu LED bir saniyede bir kez yanıp söner. Bu girişi alan 4017 saymaya başlıyor ve giriş her HIGH olduğunda, yani giriş LED’i her yandığında 0-9 arası çıkış LED’leri  tek tek yanacak. En son çıkıştaki LED’i düşünün. Yanabilmesi için kendinden önce gelen 9 tanesinin sırayla yanıp sönmesini bekleyecek. Her bir saniyede bir LED yanıyorsa onun yanması için 9 saniye geçecek. Yani giriş LED’i saniyede bir kez yanıp sönerken (1 Hz), 10 numaralı LED 10 saniyede 1 kez yanıp sönecek. Frekansı da 1/10 Hz olacak. Aslında tüm çıkış LED’leri için durum aynı! Herhangi bir çıkış LED’i 10 saniyede bir kez yanıp sönecek. İşte giriş frekansı 1 iken çıkıştaki herhangi bir bacakta frekans 1/10 Hz. Buyrun böldük 10’a.

Devre_sema_1

Peki bunlardan iki tanesini seri bağlayıp, birincinin herhangi bir çıkışını ikincinin ‘clock’ girişine bağlarsak? Bir kez 10’a bölünen giriş dalgası frekansı bir kez daha 10’a bölünürse, orijinal dalga bölündü mü 100’e! Yukarıdaki devreyi ben kart üzerine planlayıp, osiloskop ile ölçebileceğim frekansı arttıracağım. Ayarlanabilir iki çıkış (yukarıdaki devrede LED’lerin olduğu kısım) ile en fazla 200 kHz olan osiloskop frekans sınırım 20MHz seviyelerine çıkacak. Umarım sonraki projemde onun da bitmiş halini paylaşabilirim. Bu arada osiloskop ile kullanırken giriş illa kare dalga mı olacak! Bu sorunu çözmek için girişe bir Schmitt Trigger eklemeyi düşündüm. Ama sonr data sheet’e baktığımda, zaten devrenin clock girişinde var olduğunu gördüm. Çalışmazsa o devre de hazır ekleyeceğim.

Devre_sema_Sch_trg

Hoşça kalın, sağlıkla kalın…

%d blogcu bunu beğendi: