7 Segment Display ile Rakamlar Nasıl Yazılır?
7 segment display ekran adından da anlaşılacağı üzere 7 adet led kullanılarak rakamları dijital olarak göstermek için kullanılan bir arduino nesnelerinden birisidir. Üzerindeki 7 adet ledi rakamların durumuna göre yakıp söndürerek sayılar elde edilir.

7 Segment Display Çeşitleri Nelerdir?
Piyasada iki çeşit 7 segment display led ekran satılmaktadır. Bunlar ortak anot ve ortak katot olarak belirtilir. Kullanım amacı aynı olmakla birlikte tek fark bağlantı pinleridir.
Ortak anot 7 segment display led ekranlarda 3. ve 8. pinler arduino 5V pinine bağlanırken ortak katot 7 segment display led ekranlarda 3. ve 8. pinler arduino GND pinlerine bağlanır.
Arduino kodu olarak fark ise, 7 segment display led ortak anot ise yanması istenen ledlere digitalWrite komutu ile LOW gönderilmeli, 7 segment display led ortak katot ise yanması istenen ledlere digitalWrite komutu ile HIGH gönderilmelidir.

Yukarıdaki örnek bağlantı şemasında ortak anot bir 7 segment display ekran kullanılmıştır.
Buna göre pin bağlantılarını incelersek;
1 nolu bacak ( E )=> arduino 2,
2 nolu bacak ( D )=> arduino 3,
3 nolu bacak => arduino 5V,
4 nolu bacak ( C )=> arduino 4,
5 nolu bacak ( DP )=> arduino 5,
6 nolu bacak ( B )=> arduino 6,
7 nolu bacak ( A )=> arduino 7,
8 nolu bacak => arduino 5V,
9 nolu bacak ( F )=> arduino 8,
10 nolu bacak ( G )=> arduino 9 numaralı pinlere bağlanmıştır.
2 nolu bacak ( D )=> arduino 3,
3 nolu bacak => arduino 5V,
4 nolu bacak ( C )=> arduino 4,
5 nolu bacak ( DP )=> arduino 5,
6 nolu bacak ( B )=> arduino 6,
7 nolu bacak ( A )=> arduino 7,
8 nolu bacak => arduino 5V,
9 nolu bacak ( F )=> arduino 8,
10 nolu bacak ( G )=> arduino 9 numaralı pinlere bağlanmıştır.
int E=2;
int D=3;
int C=4;
int P=5;
int B=6;
int A=7;
int F=8;
int G=9;
void setup() {
pinMode(E, OUTPUT);
pinMode(D, OUTPUT);
pinMode(C, OUTPUT);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(P, OUTPUT);
}
void loop() {
for(int i=0; i<=9;i++){
RakamYaz(i);
delay(500);
}
}
void RakamYaz(int rakam)
{
switch(rakam)
{
case 0 :
digitalWrite(E,LOW);
digitalWrite(D,LOW);
digitalWrite(C,LOW);
digitalWrite(B,LOW);
digitalWrite(A,LOW);
digitalWrite(F,LOW);
digitalWrite(G,HIGH);
break;
case 1:
digitalWrite(E,HIGH);
digitalWrite(D,HIGH);
digitalWrite(C,LOW);
digitalWrite(B,LOW);
digitalWrite(A,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
case 2:
digitalWrite(E,LOW);
digitalWrite(D,LOW);
digitalWrite(C,HIGH);
digitalWrite(B,LOW);
digitalWrite(A,LOW);
digitalWrite(F,HIGH);
digitalWrite(G,LOW);
break;
case 3:
digitalWrite(E,HIGH);
digitalWrite(D,LOW);
digitalWrite(C,LOW);
digitalWrite(B,LOW);
digitalWrite(A,LOW);
digitalWrite(F,HIGH);
digitalWrite(G,LOW);
break;
case 4:
digitalWrite(E,HIGH);
digitalWrite(D,HIGH);
digitalWrite(C,LOW);
digitalWrite(B,LOW);
digitalWrite(A,HIGH);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 5:
digitalWrite(E,HIGH);
digitalWrite(D,LOW);
digitalWrite(C,LOW);
digitalWrite(B,HIGH);
digitalWrite(A,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 6:
digitalWrite(E,LOW);
digitalWrite(D,LOW);
digitalWrite(C,LOW);
digitalWrite(B,HIGH);
digitalWrite(A,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 7:
digitalWrite(E,HIGH);
digitalWrite(D,HIGH);
digitalWrite(C,LOW);
digitalWrite(B,LOW);
digitalWrite(A,LOW);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
case 8:
digitalWrite(E,LOW);
digitalWrite(D,LOW);
digitalWrite(C,LOW);
digitalWrite(B,LOW);
digitalWrite(A,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 9:
digitalWrite(E,HIGH);
digitalWrite(D,LOW);
digitalWrite(C,LOW);
digitalWrite(B,LOW);
digitalWrite(A,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
}
}
Kodları inceleyecek olursak, for komutu ile 0 dan 9 a kadar rakamlar üretilerek RamakYaz fonksiyonuna gönderiliyor. RamakYaz fonksiyonunda alınan rakam değeri switch case döngüsü ile karşılaştırılarak uygun rakam için uygun ledler yakılıp söndürülerek 7 segment display led üzerinde dijital olarak rakamlar gösteriliyor.
