74HC595, Arduino'nun yalnızca üç pinini (veri, saat ve kilit) kullanarak sekiz çıkış elde etmeyi sağlayan seri giriş, paralel çıkışlı bir shift register entegresidir. Birden fazla 74HC595 zincir hâlinde bağlanarak aynı üç pinle 16, 24 ya da daha fazla çıkış elde edilir. Arduino'da shiftOut() fonksiyonuyla bir bayt gönderilir ve kilit pini tetiklenince sekiz çıkış aynı anda güncellenir. Her çıkış yalnızca küçük akımlar (LED gibi) verebilir; büyük yükler için sürücü gerekir.
Arduino Uno'nun pinleri bir LED küpü, çok haneli bir gösterge ya da onlarca LED'li bir pano için yetmeyebilir. 74HC595 shift register, bu sorunu üç pinle çözen ucuz ve klasik bir entegredir. Bu rehberde 74HC595'in çalışmasını, bağlantısını ve zincirleme kullanımını anlatıyoruz.
74HC595 nedir?
74HC595, seri olarak gelen sekiz bitlik veriyi içindeki kaydırmalı kaydediciye alan ve kilit sinyaliyle sekiz paralel çıkışa aynı anda aktaran bir entegredir. Bu sayede mikrodenetleyici yalnızca üç pinle sekiz çıkış kontrol eder. Örnekler: 74HC595 shift register entegresi ve 74HC595 SMD.
74HC595 nasıl çalışır?
- Veri (DS): Gönderilecek bit veri pinine konur.
- Saat (SH_CP, SRCLK): Saat pinindeki her yükselen kenarda bit içerideki kaydediciye girer ve önceki bitler bir basamak kayar.
- Kilit (ST_CP, RCLK, latch): Sekiz bit gönderildikten sonra kilit pinine bir darbe verilir ve kaydedicideki veri aynı anda Q0-Q7 çıkışlarına aktarılır. Böylece veri gönderilirken çıkışlarda titreme olmaz.
74HC595 pinleri
| Pin | Ad | Bağlantı |
|---|---|---|
| 15, 1-7 | Q0-Q7 | Çıkışlar (LED'ler ön dirençle) |
| 8 | GND | GND |
| 9 | Q7' (seri çıkış) | Zincirde bir sonraki 595'in DS girişine |
| 10 | MR (SRCLR) | VCC (kullanılmıyorsa) |
| 11 | SH_CP (SRCLK) | Arduino D12 (saat) |
| 12 | ST_CP (RCLK) | Arduino D8 (kilit) |
| 13 | OE | GND (çıkışlar etkin) ya da parlaklık için PWM |
| 14 | DS (SER) | Arduino D11 (veri) |
| 16 | VCC | 5V |
8 LED'i adım adım nasıl kontrol edersiniz?
- Entegreyi bir breadboard üzerinde ortadaki boşluğa yerleştirin.
- Yukarıdaki tabloya göre besleme, MR, OE ve Arduino bağlantılarını yapın; VCC ile GND arasına 100 nF dekuplaj kondansatörü koyun.
- Q0-Q7 çıkışlarına birer ön dirençle (220-470 Ω) LED bağlayın; bir LED seti ve direnç seti yeterlidir. Direnç hesabı için LED direnci rehberimize bakın.
- Kodda kilit pinini LOW yapın, shiftOut(veriPin, saatPin, MSBFIRST, deger); ile bir bayt gönderin, ardından kilit pinini HIGH yapın.
- Örneğin deger = 0b10101010 gönderildiğinde LED'ler birer atlayarak yanar. Bir döngüyle bitleri kaydırarak "kayan ışık" efekti oluşturabilirsiniz.
Zincirleme (daisy chain) ile daha fazla çıkış
Birinci 74HC595'in Q7' (pin 9) çıkışı ikinci entegrenin DS girişine bağlanır; saat ve kilit pinleri tüm entegrelerde ortaktır. Bu şekilde aynı üç Arduino pini ile 16, 24 ya da daha fazla çıkış elde edilir. Kodda önce en uzaktaki entegrenin baytı, en son ilk entegrenin baytı gönderilir ve ardından tek bir kilit darbesi verilir. 7 segment göstergeler ve LED matrisler bu yöntemle sürülebilir; bkz. 7 segment rehberi.
Akım sınırları ve yüksek akımlı yükler
- 74HC595'in her çıkışı yalnızca küçük akımlar verebilir ve entegrenin toplam akım sınırı da vardır; değerler veri sayfasında yazar. Çok sayıda LED'i tam parlaklıkta aynı anda yakmak bu sınırı aşabilir; LED akımlarını düşük tutun.
- Röle, motor ya da yüksek akımlı LED'ler için her çıkış bir transistör ya da ULN2003 gibi bir sürücüyle desteklenmelidir; bkz. ULN2003 rehberi.
- Daha yüksek akım ve gerilim gerektiren yükler için güç çıkışlı shift register'lar kullanılır; ör. TPIC6B595N.
Sık sorulan sorular
74HC595 giriş çoğaltmak için kullanılır mı?
Hayır, 74HC595 çıkış çoğaltır. Giriş çoğaltmak için 74HC165 gibi paralel giriş, seri çıkışlı shift register'lar ya da MCP23017 gibi I2C genişleticiler kullanılır.
LED'ler neden titriyor ya da yanlış yanıyor?
Kilit pini kullanılmıyor ya da yanlış zamanda tetikleniyor, dekuplaj kondansatörü eksik ya da MR ve OE pinleri boşta olabilir. Bağlantıları tabloya göre kontrol edin.
74HC595 3,3V ile çalışır mı?
Evet, 74HC595 geniş bir besleme aralığında çalışır ve ESP32 gibi 3,3V kartlarla 3,3V beslemeyle kullanılabilir.
LED parlaklığı nasıl ayarlanır?
OE pinine bir PWM sinyali verilerek tüm çıkışların parlaklığı birlikte ayarlanabilir. OE aktif düşük olduğu için yüksek PWM değeri daha sönük ışık demektir.
Kaç tane 74HC595 zincirlenebilir?
Teorik olarak çok sayıda entegre zincirlenebilir. Pratikte saat ve kilit hatlarının uzunluğu, sinyal kalitesi ve güncelleme hızı sınırı belirler; uzun zincirlerde hatlara tampon eklemek gerekebilir.
Özet
- 74HC595, üç pinle sekiz çıkış sağlayan seri giriş, paralel çıkışlı bir entegredir.
- Veri, saat ve kilit pinleriyle çalışır; kilit çıkışları aynı anda günceller.
- shiftOut() ile bir bayt gönderilip kilit tetiklenir.
- Q7' çıkışıyla zincirlenerek çıkış sayısı artırılır.
- Yüksek akımlı yükler için transistör, ULN2003 ya da TPIC6B595 kullanılır.
