Bu makalede, bir Arduino kullanarak 0-99 sayıcı yapabilen çift haneli bir 7 segmentli ekran sayacı projesini ele alacağız. Projenin devre şeması, Arduino kodu ve Proteus üzerinde gerçekleştirilmiş simülasyon sonuçları detaylı bir şekilde sunulmuştur.
Bu projede, iki basamaklı bir 7 segmentli ekranı verimli bir şekilde sürmek için Arduino’nun iki adet dijital I/O pini multiplexing (çoklama) tekniği ile kullanılmaktadır. Bu yöntem, her bir dijit’i ardışık olarak ve çok hızlı bir şekilde aktive ederek, insan gözünün algılayamayacağı bir hızda tek bir ekran gibi görünmesini sağlar. Pinlerin ortak anot veya katot konfigürasyonuna göre sürülmesi, segmentleri oluşturan LED’lerin ihtiyaç duyduğu akımı sağlamak için kritik öneme sahiptir.
Uygulamanın kodlama aşamasına geçmeden önce, çift haneli yedi segmentli ekranların çalışma prensibini kısaca inceleyelim:
- Yapısı: 7 segmentli bir ekran, aslında belirli bir düzende yerleştirilmiş yedi adet LED’den oluşur. Bu LED’lerin farklı kombinasyonlarda yakılmasıyla rakamlar ve bazı temel harfler ekranda oluşturulur.
- Sürücü Tipi: Piyasada bulunan 7 segmentli ekranların büyük bir çoğunluğu “Ortak Katot” (Common Cathode) yapısındadır. Bu, tüm LED’lerin katot (-) bacaklarının içeride birbirine bağlı olduğu ve bu ortak bacağın GND’ye çekilmesi gerektiği anlamına gelir. Her bir segmentin anot (+) bacağı ise ayrı ayrı kontrol edilir.

Yukarıdaki pin şemasında, 1-5 ve 6, 9, 10 numaralı pinlerin ekranın belirli segmentlerine (a-g) karşılık geldiği görülmektedir. 7 ve 8 numaralı pinler (D1 ve D2) ise sırasıyla birinci ve ikinci dijit’in ortak katot bacaklarıdır. Bir dijit’i aktif hale getirmek için ilgili ortak katot pini (D1 veya D2) lojik 0 (GND) seviyesine çekilir. Elbette, her bir segment LED’inin üzerinden geçecek akımı sınırlayarak onu korumak amacıyla bir akım sınırlama direnci (örneğin, 220Ω veya 330Ω) kullanılması zorunludur. Metinde geçen 10kΩ’lık direnç, genellikle pull-up veya pull-down amaçlı kullanılır ve segment sürmek için uygun bir değer değildir.
Gerekli Malzemeler
- Arduino UNO R3 veya uyumlu bir geliştirme kartı
- 220Ω veya 330Ω Direnç x 2
- Ortak Katot 2 Haneli 7-Segment Ekran
- Jumper Bağlantı Kabloları
Bağlantı Şeması
Devrede, 7 segmentli ekranın segment ve dijit pinleri Arduino’nun dijital pinlerine jumper kablolar aracılığıyla bağlanır. Her bir dijit’in ortak katot pini ile Arduino arasına akım sınırlama dirençleri eklenmelidir. Arduino, programlanan koda göre doğru zamanlama ile dijitleri ve segmentleri kontrol ederek istenen sayının görüntülenmesini sağlar.

Aşağıdaki pin çıkış şeması, 10 pinli çift haneli bir ekranın bacak bağlantılarını göstermektedir. a, b, c, d, e, f, g ve dp (decimal point) segment pinlerinin sıralaması standart olmayabilir, bu nedenle kullandığınız ekranın datasheet’ine başvurmanız önemlidir. Aksi takdirde, ekranda anlamsız karakterler görünecektir. “d1” ve “d2” pinleri sırasıyla sağ ve sol dijit’i kontrol eden ortak bacaklardır.

Arduino Kodu
Arduino IDE kullanarak derleme sonrası oluşan .hex dosyasını elde etmek için şu adımları izleyebilirsiniz:

Arduino IDE’de Dosya > Tercihler menüsünü açın. “Derleme” seçeneğini işaretleyerek derleme işlemlerinin ayrıntılı bir çıktısını alın. Kodu “Yükle” butonu ile derledikten sonra, alt kısımdaki siyah konsol ekranında .hex uzantılı dosyanın tam yolunu bulabilirsiniz. Bu dosyayı Proteus simülasyonunuzdaki Arduino modeline yüklemeniz gerekmektedir.

Eğer .hex dosyasını oluşturmakta zorlanıyorsanız, proje için derlenmiş dosyayı buradan indirebilirsiniz. Ancak, bu .hex dosyasının bu makaledeki devre şemasıyla birebir uyumlu olduğunu ve pin bağlantılarını değiştirmemeniz gerektiğini unutmayın.
Kodu derleyip .hex dosyasını Proteus’taki Arduino’nuza yüklediğinizde ve devre bağlantılarınız doğru ise, aşağıdaki gibi çalışan bir sayaç simülasyonu görmelisiniz:
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.

