İçindekiler:
Bu yazımızda 7 segment displaylerin kullanımına değinmeye çalışacağım. Bildiğiniz gibi 7 segment displayde her segmentin bir adı vardır ve genellikle kodlamalar bu adlara göre yapılır. O yüzden önce segmentlerin adını bilmeliyiz.
Aynı zamanda 7 segment displayler ortak anotlu ve ortak katotlu olmak üzere ikiye ayrılıyorlar. Peki ortak anot ve ortak katot nedir. Hemen açıklayayım;
7 segment displaylerde 7 segment ve bir 1 nokta dışında 2 tane de ortak pin konmuştur. 8 pin ile 8 kısmı kontrol ederken ortak kısımlar ile dörder pinin çıkışını sağlarız. Ortak anot dediğimiz bu ortak pinlerin VCC, ortak katot dediğimiz ise bu ortak pinlerin GND olmasıdır. Örneğin ekranda bir yazdırabilmek için b ve c pinlerini kullanmalıyız. Ortak anot dediğimiz sistemde b ve c pinlerine 5V’ye bağlarken, ortak katotta GND’ye bağlarız. İsterseniz aşağıdaki şemayı inceleyerek daha iyi anlayabilirsiniz.

Şimdi bu devrelerin nasıl bağlandığına bakalım. İhtiyacınız olan şeyler:
- 1 Adet Arduino Uno
- 1 Adet Breadboard
- 1 Adet 7 Segment Display (anot-katot)
- 2 Adet 220 Ohm Direnç
- Jumper Kablolar
Ortak Anot Devre Şeması:

Ortak Katot Devre Şeması:

Gördüğünüz gibi devrelerin arasındaki farkı görmüşsünüzdür. Kodlarında ki farksa şöyledir;
- Ortak Katotta yanmasını istediğime ledler için HIGH veya 1 yazılır.
- Ortak Anotta yanmasını istediğim ledler için LOW veya 0 yazılır.
Şimdide kodlara bakalım.
Ortak Anot Kodları:
int a = 2;
int b = 3;
int c = 6;
int d = 8;
int e = 9;
int f = 11;
int g = 12;
void setup()
{
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void RakamYaz(int rakam)
{
switch(rakam)
{
case 0 : // 0 yazdırır
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
break;
case 1: // 1 yazdırır
digitalWrite(a, HIGH);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 2: // 2 yazdırır
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
break;
case 3: // 3 yazdırır
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
break;
case 4: // 4 yazdırır
digitalWrite(a, HIGH);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 5: // 5 yazdırır
digitalWrite(a, LOW);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 6: // 6 yazdırır
digitalWrite(a, LOW);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 7: // 7 yazdırır
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 8: // 8 yazdırır
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 9: // 9 yazdırır
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
}
}
void loop(){
for(int i=0; i<=9;i++){
RakamYaz(i);
delay(100);
}
}Ortak Katot Kodları:
int a = 3;
int b = 4;
int c = 7;
int d = 9;
int e = 10;
int f = 12;
int g = 13;
void setup()
{
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void RakamYaz(int rakam)
{
switch(rakam)
{
case 0 : // 0 yazdırır
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
break;
case 1: // 1 yazdırır
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 2: // 2 yazdırır
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
break;
case 3: // 3 yazdırır
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
break;
case 4: // 4 yazdırır
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 5: // 5 yazdırır
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 6: // 6 yazdırır
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 7: // 7 yazdırır
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 8: // 8 yazdırır
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 9: // 9 yazdırır
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
}
}
void loop(){
for(int i=0; i<=9;i++){
RakamYaz(i);
delay(100);
}
}Projemiz Çalışırken:

