Arduino Ders 27: 7 Segment


7 segment display ekran sayıların dijital olarak gösterileceği tüm arduino projelerinde kullanılabilmektedir. Kullanımı basit olmasına rağmen biraz kafa karıştırıcı gelebilir. Ancak aşağıdaki şema ve bağlantıları inceleyerek 7 segment display ekranı tüm projelerinizde kolaylıkla kullanabilirsiniz.

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.

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.

Yorum Gönder

Daha yeni Daha eski