Proje Defteri

🔢 7 Segment Kod Üretici

Bir karakter seçin; Arduino için segment baytını ikili, hex ve ondalık olarak anında alın. Ortak katot/anot ve ondalık nokta desteği — her şey tarayıcınızda çalışır.

Desteklenen karakterler: 0-9, A-F, H, L, P, U ve tire (-). Aşağıdaki düğmeleri de kullanabilirsiniz.
Ortak anot, ortak katot kodunun bit-bit tersidir (NOT).
Varsayılan: bit 0 = a, bit 7 = dp. Donanımınıza göre değiştirin.
İşaretlenince baytın en üst biti (dp) 1 olur (+0x80).
İkili (binary)
Hex
Ondalık (decimal)

7 Segment Kod Üretici Nedir?

7 segment gösterge, rakamları ve bazı harfleri göstermek için yan yana dizilmiş yedi adet LED çubuğundan (segment) ve isteğe bağlı bir ondalık noktadan (dp) oluşan basit bir görüntü birimidir. Bu 7 segment kod üretici aracı, göstermek istediğiniz karakteri seçtiğinizde hangi segmentlerin yanması gerektiğini hesaplar ve bunu tek bir bayt halinde ikili, onaltılık (hex) ve ondalık olarak verir. Doğrudan 7 segment Arduino projelerinizde segments[] dizisine kopyalayabileceğiniz bir kod satırı da üretir. Tüm hesaplama tarayıcınızda yapılır; hiçbir veri sunucuya gönderilmez.

Segmentlerin adlandırılması: a-g ve dp

Yedi segment standart olarak a, b, c, d, e, f, g harfleriyle adlandırılır. Segment a en üstteki yatay çubuk, b sağ üst, c sağ alt, d en alttaki yatay çubuk, e sol alt, f sol üst ve g ortadaki yatay çubuktur. Ondalık nokta ise dp ile gösterilir. Bu sekiz LED'i tek bir 8 bitlik bayta yerleştirdiğimizde, hangi bitin hangi segmente karşılık geldiğini belirten düzene bit sırası (segment haritası) denir.

Bit/bayt haritası — varsayılan dp-g-f-e-d-c-b-a

Bu araç varsayılan olarak dp g f e d c b a sırasını kullanır: en düşük anlamlı bit (bit 0) segment a, bit 6 segment g ve en yüksek anlamlı bit (bit 7) ondalık noktadır (dp). Yani bayt şöyle dizilir: bit7=dp, bit6=g, bit5=f, bit4=e, bit3=d, bit2=c, bit1=b, bit0=a. Örneğin 0 karakterinde g hariç tüm segmentler (a, b, c, d, e, f) yanar; bu da ortak katot için 0b00111111 = 0x3F = 63 değerini verir. Donanımınızda segmentler farklı pinlere bağlıysa bit sırasını "a b c d e f g dp" olarak değiştirebilirsiniz.

Ortak katot mı, ortak anot mı?

İki tip 7 segment gösterge vardır. Ortak katot (common cathode) tipte tüm LED'lerin katotları ortak GND'ye bağlıdır; bir segmenti yakmak için ilgili pine 1 (HIGH) uygularsınız. Ortak anot (common anode) tipte ise anotlar ortak +5V'a bağlıdır ve segment 0 (LOW) ile yanar. Bu nedenle ortak anot baytı, ortak katot baytının bit-bit tersidir: anot = ~katot (NOT işlemi). Aracın "Gösterge tipi" seçeneğiyle iki değer arasında anında geçiş yapabilirsiniz.

Örnek Arduino bağlantısı ve kodu

Tipik bir kurulumda 8 segment pinini (a-g + dp) akım sınırlama dirençleri üzerinden 8 dijital pine bağlarsınız. Üretilen baytları bir diziye koyup bir döngüde pinlere yazarsınız:

// Ortak katot, dp-g-f-e-d-c-b-a sırası
byte segments[10] = {
  0x3F, 0x06, 0x5B, 0x4F, 0x66,
  0x6D, 0x7D, 0x07, 0x7F, 0x6F
};
int pins[8] = {2,3,4,5,6,7,8,9}; // a..g, dp

void showDigit(int n) {
  for (int i = 0; i < 8; i++)
    digitalWrite(pins[i], bitRead(segments[n], i));
}

İpuçları

Sıkça Sorulan Sorular

Ortak katot ve ortak anot arasındaki fark nedir?

Ortak katot göstergede tüm LED'lerin katotları ortak GND'ye bağlıdır ve bir segmenti yakmak için pinine 1 (yüksek) verilir. Ortak anot göstergede ise anotlar ortak +V'ye bağlıdır ve segment 0 (düşük) ile yanar. Bu yüzden ortak anot kodu, ortak katot kodunun bit-bit tersidir (NOT).

Segment baytındaki bit sırası nedir?

Bu araç dp-g-f-e-d-c-b-a sırasını kullanır: en düşük anlamlı bit (bit 0) segment a, en yüksek anlamlı bit (bit 7) ise ondalık noktadır (dp). Yani bayt = dp g f e d c b a. Donanımınızın pin bağlantısı farklıysa segment sırasını değiştirebilirsiniz.

Üretilen hex kodunu Arduino'da nasıl kullanırım?

Her karakterin baytını byte segments[] dizisine yazar, sonra 8 segment pinine bu baytın bitlerini sırayla (a'dan dp'ye) gönderirsiniz. Genellikle bir for döngüsünde digitalWrite ile her bit ayrı pine yazılır; shift register (74HC595) kullanıyorsanız shiftOut() ile tek seferde gönderilir.

Ondalık nokta (dp) baytı nasıl etkiler?

Ondalık nokta kutusunu işaretlediğinizde en yüksek anlamlı bit (bit 7) 1 yapılır; bu da hex değere 0x80 eklenmesi anlamına gelir. Örneğin '0' karakteri ortak katotta 0x3F iken, dp açıkken 0xBF olur.