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.