74HC595 Multiplexing

74HC595 Multiplexing

74HC595 Multiplexing kısmına geçmeden önce kullanacağımız entegreyi kısaca tanıyalım: 74HC595, içinde bir kaydırma yazmacı ve D tipi mandal bulunan 16 pinli bir entegredir. Seri girişten aldığı veriyi paralel çıkış pinlerine aktarır. Ayrıca paralel çıkışlara ek olarak seri çıkış da sağlayabilir. Kaydırma yazmacı ve mandal için bağımsız saat girişlerine sahiptir. Bu entegre, CMOS uygulamalarında kullanılmak üzere tasarlanmış HC mantık ailesine aittir.

74HC595’in iki adet dahili register’i bulunmaktadır. Birincisi shift register’dir ve ikincisi bir storage register’dir. Veriler, seri olarak shift register’e parça parça aktarılır ancak yalnızca data latch pini aktif yüksek olduğunda storage register’ine aktarılır.

74HC595, Arduino’nuzdaki dijital çıkış pinlerinin sayısını artırmanın kolay ve ucuz bir yoludur. Bu içerikte, multiplexing(çoklama) adı verilen bir teknik kullanarak bir 74HC595 ile 16 adede kadar LED’i nasıl süreceğinizi göstereceğiz. Sonunda, 16 LED’in tümü, Arduino’nun mevcut dijital pinlerinden sadece üçünü gerektirecektir. Ayrıca buradan 74HC595 veri sayfasına bakabilirsiniz.

74HC595 Pinout Şeması

595 serisi shift register ailesinde piyasada birçok farklı model bulunur. Temel çalışma prensipleri benzer olsa da küçük elektriksel farklar olabilir. Bu yazıda 74HC595 modeline odaklanacağız.

74HC595 Multiplexing 74hc595 multiplexing,arduino multiplexing,arduino ile multiplexing
74HC595

Pin Yapılandırması

Bu bölümde, tüm pinlerin Pin Açıklamaları ile birlikte çalışma ve işlevselliklerini görüyoruz.

1, 2, 3, 4, 5, 6, 7, 15 –> Çıkış pinleri
Bu sekiz pin, shift register’in çıkış pinleridir. Bu pinleri, storage register verilerini görüntülemek istediğimiz herhangi bir çevre birimine bağlamalıyız. Günümüzde yaygın olarak kullaılmakta olan alanlara örnek vermem gerekirse:

  • LED
  • Yedi Segmentli Ekranlar

Vb. diyebiliriz.

SH_CP Pini

Bu, bir 74hc595 shift register’in saat giriş pinidir. Bu pine uygulanan saat sinyalinin her pozitif geçişinde, seri giriş pininden 8 bitlik shift register’ine bir veri kaydırılır.

ST_CP Pini

Bu, bir storage register’inin aktif yüksek, saat giriş pinidir. Bu pindeki bir sinyalin pozitif geçişi, verileri çıkış pinlerine güncellemek için kullanılır.

OE Pini

Çıkış(Output) Etkinleştirme pini etkin düşüktür. Bu pin düşük olduğunda, depolama kaydındaki veriler çıkışta görünmektedir. Yüksek sinyaller uygulandığında, çıkışlar yüksek empedans uygulanması ile kapatılır.

DS Pini

Bu pin, giriş verilerinin sağlandığı seri veri giriş pinidir.

Alternatif Shift Register’ler

  • CD4035
  • CD4015
  • CD4014
  • 74LS166

74HC595 Multiplexing Çalışma Prensibi

Daha önce bahsedildiği gibi dahili olarak 74HC595 shift register ve storage register gibi iki register’den oluşur. Her ikisi de 8 bit genişliğindedir. İlki, saatin her pozitif ucunda veri girişini kabul etmekten sorumludur ve veri almaya devam eder. Ancak shift register’den gelen veriler, yalnızca mandal giriş pinine aktif bir yüksek sinyal uyguladığımızda depolama kaydına aktarılmaktadır.

74HC595 Multiplexing 74hc595 multiplexing,arduino multiplexing,arduino ile multiplexing

Multiplexing Nedir?

Multiplexing, bir matris/dizide birbirine bağlanmış birçok bileşeni kontrol etmek için çok verimli bir tekniktir. Bu örnekte, yalnızca bir dizi LED’in çoğullanmasından bahsedeceğiz, ancak aynı temel ilkeler diğer çoğullanmış bileşenler (sensörler, düğmeler, vb.) için de geçerlidir.

Çoklanmış bir LED dizisinde, herhangi bir zamanda yalnızca bir sıra LED yanar. Bu, LED matrisinde görüntüleyebileceğimiz şekil türlerini sınırlayacak gibi görünüyor, ancak aslında öyle değil. Bunun nedeni, arduino’nun (veya diziye veri gönderen her neyse) her satırda o kadar hızlı geçiş yapmasıdır (saniyede yüzlerce veya binlerce kez), ardışık her satırın yanıp sönmesini algılamamamızdır.

74HC595 Multiplexing 74hc595 multiplexing,arduino multiplexing,arduino ile multiplexing
Şekil 1
74HC595 Multiplexing 74hc595 multiplexing,arduino multiplexing,arduino ile multiplexing
Şekil 2

Peki bir seferde bir satıra nasıl veri göndeririz? Bir sıraya beş volt (kırmızı) bağlayıp diğer üç sıraya toprak (mavi) bağlayıp her bir sırayı teker teker çevirirsek, şekil 1 gibi bir şey olur. Şimdi sıralardan biri + 5, sütunlardan birini toprağa bağlarız. Şekil 2’de görüldüğü gibi bu durum +5 sıra ile GND kolonunun birleşim noktasındaki LED’in yanmasına neden olacaktır. Bu şekilde, matristeki 16 LED’in her birini yalnızca sekiz kablo (dördü satırlara ve dördü sütunlara) kullanarak ayrı ayrı ele alabiliriz.

Şimdi aşağıdaki resme bakın. Sol üst köşedeki LED’i (konum 1,1) çok hızlı bir şekilde açtığımızı, ardından LED’i (2,2), sonra (3,3) ve (4,4)’te açtığımızı ve bu dördü arasında geçiş yaptığımızı hayal edin. LED’ler çok hızlı (saniyede yüzlerce kez). Bu LED’lerin dördünün de aynı anda yandığı görülecektir.

74HC595 Multiplexing 74hc595 multiplexing,arduino multiplexing,arduino ile multiplexing

74HC595 Nasıl Çalışır?

74HC595, 8 pinli bir kaydırma yazmacıdır yani shift register’dir. Kaydırma yazmaçları, aynı anda birçok girişi veya çıkışı kontrol etmek için mantık kapılarını kullanan entegrelerdi. Bunlar, Arduinodaki dijital pinler gibi, doğası gereği dijitaldirler- bu, yalnızca 0V ve 5V (düşük veya yüksek) okuyabilecekleri veya yazabilecekleri anlamına gelir, sensörlerden veya potansiyometrelerden analog verileri okumak için kullanılmamalıdırlar (bunun yerine bir mux kullanmalısız). 74HC595, Qa-Qh (veya Q0-Q7) olarak etiketlenmiş 8 çıkışa sahiptir, bu pinlerden veri okuyamaz, sadece çıkış olarak kullanılabilirler (girişleri olan bir kaydırma yazmacı arıyorsanız 74HC165’e bakın).

74HC595 Multiplexing 74hc595 multiplexing,arduino multiplexing,arduino ile multiplexing

74HC595, Arduino ile (veya seçtiğiniz mikro denetleyicinize) üç bağlantıyla kontrol edilir; bunlara veri(data) pini, mandal(latch) pini ve saat pini(clock) denir. Yukarıdaki akış şemasına bakın (şekil 1):

-ilk olarak çıkışları devre dışı bırakmak için mandal pini toprağa ayarlanır, bu şekilde 74HC595’e yeni veriler gönderirken çıkış pimleri değişmez
-Bir sonraki yeni veri, saat pimine darbe vurarak ve her yeni veri baytını veri piminden bit bit göndererek seri olarak 74HC595’e gönderilir. Arduino, kütüphanelerinde sizin için bununla ilgilenen shiftOut adlı kullanışlı bir fonksiyona sahiptir.
-son olarak, mandal pinini yükseğe ayarlayın. Bu, yeni verilerinizi tüm çıkış pinlerine bir kerede gönderir (paralel çıkış).

Bu içerikte size bir 74HC595 ile 4×4 LED matrisini nasıl kontrol edeceğinizi göstereceğiz. Bir önceki adımda, 4×4 LED matrisini sadece 8 pin (sıralar için dördü ve sütunlar için dördü) kullanarak kontrol etmenin mümkün olduğunu gösterdik. Sonraki adımlarda size 4×4 LED matrisini 74HC595’in 8 çıkış pinine nasıl bağlayacağınızı ve her şeyi Arduino ile nasıl süreceğinizi göstereceğiz.

74HC595 zincirleme bağlayarak çıktılarınızı daha da genişletmek mümkündür, ancak bu, bu öğreticinin kapsamı dışındadır. Bu yazıyı bitirdikten sonra göz atmanızı öneririz:

Atmega8 ile 74HC595 zincirleme bağlamak.

Devre Şeması

74HC595 Multiplexing 74hc595 multiplexing,arduino multiplexing,arduino ile multiplexing
Devre Şeması

Yukarıdaki resim, LED matrisi ve 74HC595 devresinin şemasını göstermektedir.

Arduino74HC595
A0Saat (Clock) Pini (pin 11)
A1Mandal (Latch) Pini (pin 12)
A2Veri (Data) Pini (pin 14)
Arduino 74HC595 Bağlantıları

Bununla birlikte, bu entegre yalnızca 0 veya 5V çıkış verir ve pin başına 70mA’ya kadar çıkış verebilir. Bu, LED’lere zarar vermemek için akım sınırlayıcı dirençler kullanmamız gerektiği anlamına gelir. Şematikte LED matrisinin katotlarına bağlı dirençleri bulabilirsiniz.

74HC595 Multiplexing 74hc595 multiplexing,arduino multiplexing,arduino ile multiplexing
Dirençler 1, 2, 3, 4 olarak işaretlenmiştir.

Kullandığımız LED’lerin özelliklerinden:
Maksimum ileri akım: 30mA
İleri voltaj: 3.2V

V = IR’den bu maksimum değerleri elde etmek için gereken direnci hesaplayabilirsiniz, ya da sizin için hazırladığımız buradaki Ohm Kanunu hesaplama aracını kullanabilirsiniz.:
direnç = (5V-3.2V) / (0.03A)
= 60Ω

Aslında 60Ω direnç kullanmak iyi bir fikir değildir; LED’lere zarar verebilirsiniz. Ayrıca 74HC595’in çıkış pinlerinin akım sınırlarını da hesaba katmamız gerekir. Multiplexing yaptığımız için herhangi bir anda en fazla dört LED yanabilir. 60Ω kullanılırsa dört LED birlikte yaklaşık 120mA (30mA × 4) akım çekebilir. Bu durum uzun vadede güvenli değildir. Bunun yerine 120Ω direnç seçerek toplam akımı yaklaşık 60mA (15mA × 4) seviyesine çekmek daha güvenli olur.

Bunlar kullandığımız belirli LED’ler için örnek hesaplamalar, LED’lerinizin özelliklerine göre kendi hesaplamalarınızı yapmanız gerekecek. Ne yapacağınızdan emin değilseniz 220Ω veya daha yüksek dirençler kullanın; çok fazla direnç kullanmak LED’lerin daha az parlak olmasına neden olur, ancak zarar görmezler.

Çıkış pinleri (Qa-Qh), 74HC595’in 1-7 ve 15 numaralı pinlerinde bulunur. Dirençleri bağlantı telleri ile 4-7 pinlerine bağlayın. Erkek başlık pinlerini 1-3 ve 15 pinlerine bağlayın.

Şematikte gösterildiği gibi, pin bağlantıları aşağıdaki gibidir:

ÜST
satır 1 (veya “mavi 1”) QD(3)
satır 2 (veya “mavi 2”) QC(2)
satır 3 (veya “mavi 3”) QB(1)
satır 4 (veya “mavi 4”) QA(15)
ALT

SOL (ekranın önüne bakıyorsanız/LED’lere bakıyorsanız)
sütun 1 (veya “led gnd 4”) QH(7)
sütun 2 (veya “led gnd 3”) QG(6)
sütun 3 (veya “led gnd 2”) QF(5)
sütun 4 (veya “led gnd 1”) QE(4)
SAĞ

Üç 74HC595 veri pinini şemaya göre 0, 1 ve 2’deki arduino analog pinlerine bağlayın. 74HC595’in 8 ve 13 numaralı pinlerini arduino GND’sine ve 74HC595’in 10 ve 16 numaralı pinlerini Arduino 5V’ye bağlayın.

Arduino74HC595
A0Saat (Clock) Pini (pin 11)
A1Mandal (Latch) Pini (pin 12)
A2Veri (Data) Pini (pin 14)
Arduino 74HC595 Bağlantıları

Arduino Kodu

Aşağıdaki kodu arduinoya yükleyin ve LED’lerin doğru şekilde bağlanıp bağlanmadığını test edin. Her bir LED’in birer birer yandığını görmelisiniz, bu döngü sonsuza kadar tekrar etmeye devam edecektir.

Hızlı Güvenlik Notları

  • Direnç değerini LED veri sayfasına göre yeniden hesaplayın.
  • Pin başına ve toplam akım sınırını aşmayın.
  • Uzun süreli testlerde entegre sıcaklığını kontrol edin.
  • Parlaklık yetmiyorsa direnci düşürmek yerine sürücü topolojisini gözden geçirin.

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.