7-segment ekran nedir?
7 segmentli ekran, rakamları (0-9) ve bazı harfleri görüntülemek üzere belirli bir düzende düzenlenmiş 7 ayrı LED'den oluşan bir elektronik bileşendir. Bu LED'ler a, b, c, d, e, f, g olarak adlandırılır ve ekran genellikle isteğe bağlı bir ondalık nokta (dp) içerir.


Farklı düzenlemelere ve kombinasyonlara göre, 7 segmentli ekran için 128 farklı varyasyon (Arap rakamları ve karakterler) bulunmaktadır.
7 Segmentli Ekran Pin Dizilişi
7 segmentli bir ekranın pin dizilişi, türüne göre değişiklik gösterir; bu ekranlar temel olarak iki kategoriye ayrılır: ortak anotlu ve ortak katotlu.

Pin Dizilişi Yapılandırması
Aşağıda, tipik bir 7-segment ekran için örnek bir pin ataması verilmiştir (gerçek pin düzeni, üreticiye ve modele göre değişiklik gösterebilir):
Ortak anot:
7 segmentli ekranın tüm anotları (artı uçları) birbirine bağlanmıştır; bir katot düşük seviyeye çekildiğinde, ilgili LED yanar.

- g, f, a, b, e, d, c, dp: Bunlar, sırasıyla yedi segmente ve ondalık noktasına karşılık gelen segment pinleridir.
- COM: VCC'ye bağlı ortak anot pini.
Ortak Katot:
7 segmentli ekranın tüm katotları (negatif uçlar) birbirine bağlanmıştır; bir anot (pozitif uç) yüksek seviyeye çekildiğinde, ilgili LED yanar.

Benzer şekilde, segment pinleri (g, f, a, b, e, d, c, dp) segmentlere ve ondalık noktaya karşılık gelir, ancak ortak katot pini (COM) GND'ye bağlanır.
7 Segmentli Ekranın Kablolaması
Bir 7-segmentli ekranı çalıştırmak için, her bir segmentin (a, b, c, d, e, f, g, dp) mikrodenetleyicideki belirli çıkış pinlerine bağlanması gerekir. Örneğin, ortak katotlu bir 7-segmentli ekranda, her segmentin negatif ucu ortak bir toprak pinine bağlanırken, her segmentin pozitif ucu mikrodenetleyicideki farklı bir çıkış pinine bağlanır.
Temel Kablolama Kurulumu
- 7 segmentli ekran 8 pime sahiptir (7'si segmentler için, 1'i ondalık nokta için).
- Her bir segmente karşılık gelen pin (a'dan g'ye kadar) mikrodenetleyiciye bağlanır.
- Ortak katot yapılandırması için, ortak katot pimini toprağa bağlayın.
Arduino'ya Bağlantı Örneği
Bir 7-segmentli ekranı Arduino'ya bağlarken, segment pinleri genellikle Arduino kartındaki farklı dijital pinlere bağlanır. Örneğin, ortak anot yapılandırmasında segment pinleri şu şekilde bağlanabilir:
- a – Arduino Pini 7
- b – Arduino Pini 8
- c – Arduino Pini 4
- d – Arduino Pini 3
- e – Arduino Pini 2
- f – Arduino Pin 6
- g – Arduino Pin 5
- COM – Arduino Pin 9 (VCC'ye bağlı)
Bu yapılandırmada, belirli bir segmenti aydınlatmak için ilgili Arduino pini LOW olarak ayarlanırken, ortak anot pini HIGH olarak kalır.
7 Segmentli Ekranı Nasıl Kontrol Edilir
7 segmentli bir ekranı kontrol etmenin anahtarı, istenen sayıyı veya sembolü oluşturmak için her bir segmente doğru voltajı sağlamaktır.
Sayıların Görüntülenmesi
Bir sayıyı görüntülemek için mikrodenetleyicinin ilgili segmentleri aydınlatması gerekir. Örneğin:
- 0'ı görüntülemek için a, b, c, d, e ve f segmentleri yanmalı, g segmenti ise sönük kalmalıdır.

Gerekli Bileşenler
Bir LED matrisine benzer şekilde, bu proje için oldukça fazla kablo ve direnç gerekecektir. Her bir LED’in yanmasını önlemek için kendi direncine ihtiyacı olduğundan, lütfen yeterli sayıda direnç hazırladığınızdan emin olun. Projenin tamamı için aşağıdaki bileşenlere ihtiyacınız olacak:
- Arduino Uno
- Arduino IDE
- Yedi segmentli ekran
- Elektrik kabloları
- 8 adet 220 ohm direnç
- Deney tahtası
- USB kablosu
Sayıları Görüntülemek İçin Örnek Kod
int pin_a = 7, pin_b= 6, pin_c = 5, pin_d = 10, pin_e = 11, pin_f = 8, pin_g = 9, pin_p = 4;
// Segment data for digits 0-9
int numTable[10][8] = {
{1, 1, 1, 1, 1, 1, 0, 0}, // 0
{0, 1, 1, 0, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1, 0}, // 2
{1, 1, 1, 1, 0, 0, 1, 0}, // 3
{0, 1, 1, 0, 0, 1, 1, 0}, // 4
{1, 0, 1, 1, 0, 1, 1, 0}, // 5
{1, 0, 1, 1, 1, 1, 1, 0}, // 6
{1, 1, 1, 0, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1, 0}, // 8
{1, 1, 1, 1, 0, 1, 1, 0}, // 9
};
void setup(){
for (int i = 4; i <= 11; i++){
pinMode(i, OUTPUT);
}
}
void loop(){
for (int i = 0; i < 10; i++){
digitalWrite(pin_a, numTable[i][0]);
digitalWrite(pin_b, numTable[i][1]);
digitalWrite(pin_c, numTable[i][2]);
digitalWrite(pin_d, numTable[i][3]);
digitalWrite(pin_e, numTable[i][4]);
digitalWrite(pin_f, numTable[i][5]);
digitalWrite(pin_g, numTable[i][6]);
digitalWrite(pin_p, numTable[i][7]);
delay(1000);
}
}
Bu örnekte, numTable dizi, her bir rakam için uygun segmentleri açmak için gereken verileri içerir.
Çok basamaklı 7-segment ekran projeleri
Çok basamaklı ekranlarda, birden fazla 7-segment ekranı kontrol etmenin en basit yolu çoklayıcı kullanmaktır; bir başka yol ise Arduino kütüphanesidir.
Çoklama Tekniği
Çoklayıcı kullanıldığında, birden fazla ekran aynı kontrol pinlerini paylaşır ve her ekran sırayla açılır. Bu işlem o kadar hızlı gerçekleşir ki, insan gözü tüm rakamların aynı anda yandığını algılar.
7-Segment Ekranların Çoklayıcıya Bağlanması İçin Örnek Kod
const int digitPins[3] = {2, 3, 4}; // Digit selection pins
const int segmentPins[8] = {6, 7, 8, 9, 10, 11, 12, 13}; // Segment pins
int numTable[10][8] = { {0, 0, 0, 0, 0, 0, 1, 1}, {1, 0, 0, 1, 1, 1, 1, 1}, ... };
void setup(){
for (int i = 2; i <= 4; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
for (int i = 6; i <= 13; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, HIGH);
}
}
void loop(){
for (int i = 0; i < 10; i++){
for (int j = 0; j < 3; j++) {
showdigit(i, j);
}
delay(500);
}
}
void showdigit(int num, int digit){
digitalWrite(digitPins[digit], HIGH);
for (int i = 0; i < 8; i++) {
digitalWrite(segmentPins[i], numTable[num][i]);
}
delay(500);
digitalWrite(digitPins[digit], LOW);
}
Kütüphaneleri Kullanarak 7 Segmentli Ekranları Kontrol Etme
Kullanım kolaylığı sağlamak amacıyla, 7 segmentli ekranların kontrolünü basitleştiren SevSeg gibi kütüphaneler mevcuttur. Bu kütüphane, karmaşık kablolama ve kontrol mantığının büyük bir kısmını soyutlaştırdığı için çok basamaklı ekranları kontrol etmekte oldukça kullanışlıdır.
Arduino menüsünden SevSeg'i arayabilir ve yükleyebiliriz: Araçlar >> Kitaplıkları Yönet.

SevSeg Kütüphanesini Kullanan Örnek Kod
#include "SevSeg.h"
SevSeg sevseg;
void setup() {
sevseg.begin(COMMON_CATHODE, 3, digitPins, segmentPins);
}
void loop() {
int readValue = analogRead(A0);
int showValue = map(readValue, 0, 1023, 0, 999);
sevseg.setNumber(showValue, 3);
sevseg.refreshDisplay();
}
7 Segmentli Ekranların Kullanım Alanları
Basitliği, kullanım kolaylığı ve düşük maliyeti nedeniyle, 7 segmentli ekran aşağıdakiler gibi çeşitli uygulamalarda yaygın olarak kullanılmaktadır:
- Elektronik saatler: saat ve tarihi gösterir;
- Hesap makineleri: hesaplama sonuçlarını gösterme;
- Ev aletleri: mikrodalga fırın, klima ve çamaşır makinesi gibi ürünler için ekran panelleri;
- Araba gösterge panelleri: hız ve kilometre gibi bilgileri gösterir;
- Endüstriyel ekipmanlar: sıcaklık kontrol cihazları ve basınç göstergeleri gibi cihazlardan gelen okumaları gösterir;
- Laboratuvar aletleri: deney verilerini ve sonuçlarını gösterir;
- Tüketici elektroniği: ses ekipmanlarında ses seviyesi kontrol ekranı.
Sonuç
7-segment ekranlar, sayısal verilerin basit bir şekilde görüntülenmesini sağlayan çok yönlü bileşenlerdir. Bu ekranların kablolama düzenini, kontrol yöntemlerini ve uygulama alanlarını anlamak, basit saatlerden karmaşık ekranlara kadar projelerinizin işlevselliğini büyük ölçüde artırabilir. İster çoklayıcı, ister kütüphaneler, ister kaydırma kayıtçıları kullanıyor olun, 7-segment ekranları etkili bir şekilde kontrol etmenin birçok yolu vardır ve bunların her biri farklı proje gereksinimlerine uygundur.



