4 Dijit 7 Segment Led Ekran Uygulaması
4 Dijit 7 Segment Led Ekran Uygulaması
4 Dijit 7 Segment Led Ekran Uygulaması

4 Dijit 7 Segment Led Ekran Uygulaması

Bu uygulamada 4 dijit 7 segment led ekran ile sayıcı denemesi yapacağız.

Youtube Kanalı:
 
 

7  Segment ekran ortak katot bir ekrandır. 5461AS kodlu  led ekran piyasada çok bulunan bir led displaydir. Ve dört adet katot ucu vardır. Bunlar d1, d2,d3 ve d4’tür. Arduino kartın dijital pinlerini kullanarak ekranın ledlerini yakacağız.

Dört dijit 7 segment ekranın 10 adet pini vardır. Bunlar: a, b, c, d, e, f, g, nokta ve dört adet Katot(GND) ucudur.

a, b, c, d, e, f, g, nokta pinleri, Arduino kartın dijital çıkış pinlerine 1K’lık dirençlerle bağlanmıştır. a, b, c, d, e, f, g, nokta pinleri, kartın d13, d12, d11, d10, d9, d8, d7, d6 dijital çıkışlarına bağlanmıştır. d5,d4,d3 ve d2 ise BC547 transistörlerinin baz uçlarına bağlanmıştır. Baz akımını kontrol etmek için 47K’lık dirençler kullandık.

Arduino kod ekranında, her rakam için bir dizi tanımladık ve hangi ledleri yakacağımızı belirttik. Aşağıdaki kodlarda ise bir “for” döngüsü yardımıyla, bu dizi içindeki değerleri “digitalWrite” komutuyla dışarı aktardık.

Arduino Kodları aşağıda:

//--------- -{a,b,c,d,e,f,g,dot}
  int s0[] = {1,1,1,1,1,1,0,0};
  int s1[] = {0,1,1,0,0,0,0,0};
  int s2[] = {1,1,0,1,1,0,1,0};
  int s3[] = {1,1,1,1,0,0,1,0};
  int s4[] = {0,1,0,0,1,1,1,0};
  int s5[] = {1,0,1,1,0,1,1,0};
  int s6[] = {1,0,1,1,1,1,1,0};
  int s7[] = {1,1,1,0,0,0,0,0};
  int s8[] = {1,1,1,1,1,1,1,0};
  int s9[] = {1,1,1,1,0,1,1,0};
  int s10[]= {1,1,1,1,1,1,0,0};
  
void setup()
{
  
  pinMode(13, OUTPUT);  // a 
  pinMode(12, OUTPUT);  // b 
  pinMode(11, OUTPUT);  // c 
  pinMode(10, OUTPUT);  // d 
  pinMode(9, OUTPUT);    // e 
  pinMode(8, OUTPUT);  // f
  pinMode(7, OUTPUT);  // g 
  pinMode(6, OUTPUT);  //DOT LED  <-----------
  
 }
void loop()
{
  // test routing-----------------------
  for(int i=6;i<14;i++)  {
    digitalWrite(i,HIGH); delay(50);digitalWrite(i,LOW);
    }
    for(int i=14;i>5;i--)  {
    digitalWrite(i,HIGH); delay(50);digitalWrite(i,LOW);
    }
// test routing-----------------------END
for(int i=1;i<10;i++) { digitalWrite(14-i,s0[i-1]); delay(50);digitalWrite(14-i,s0[i-1]);}; delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s1[i-1]); delay(50);digitalWrite(14-i,s1[i-1]);}  delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s2[i-1]); delay(50);digitalWrite(14-i,s2[i-1]);}    delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s3[i-1]); delay(50);digitalWrite(14-i,s3[i-1]);}; delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s4[i-1]); delay(50);digitalWrite(14-i,s4[i-1]);}  delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s5[i-1]); delay(50);digitalWrite(14-i,s5[i-1]);}    delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s6[i-1]); delay(50);digitalWrite(14-i,s6[i-1]);}; delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s7[i-1]); delay(50);digitalWrite(14-i,s7[i-1]);}  delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s8[i-1]); delay(50);digitalWrite(14-i,s8[i-1]);}    delay(100);
for(int i=1;i<10;i++) { digitalWrite(14-i,s9[i-1]); delay(50);digitalWrite(14-i,s9[i-1]);}; delay(100);
}