top of page

7 Segment ile Sayaç yapımı

  • oguzhanaldemir10
  • 29 Ara 2015
  • 2 dakikada okunur

Bu bölümde 7 Segment Display ile sayaç yapalım.Ama önce 7 segment display hakkında biraz bilgi edinmeliyiz.Displaylerin bir çok çeşiti bulunmakta (ortak anot,ortak katot, 7seg,14 seg, 16 seg vs.). Biz projemizde 7 segmentli ortak katot display kullanacağız.

Elimizde bulunan katot displayin hangi pininin hangi ledi yaktığı yandaki resim göstermekte. A ledini yakmak için örneğin 7 numaralı display pinine gerilim vermeliyiz. Tabii ki 5 voltu aşmamak ve 8.,3. pinlerin toprağa bağlı olması şartı ile. Herhangi bir lede gerilim uygulamadaki direnç bağlama kuralımızı burda da işleyebiliriz o yüzden pinlere direkt 9v veya benzeri gerilimleri uygulamayın.

Projemize gelince, yanmasını istediğimiz ledleri teker teker Arduino'muzdaki belirlediğimiz pinlere takıyoruz. Kusura bakmayın fritzingde devre biraz karışık çıktı fakat eminim ki kodlara bakarak zaten devreyi kendiniz de kurabilirsiniz rahatlıkla. Devrede bir önceki yazıda yaptığımız uygulamaya benzer olacak sadece daha gösterişli ve daha anlamlı daha işe yarar bir proje olacak. Geliştirilerek skorboard yapılabilir bu proje ile.

Butona her bastığımızda sırasıyla istediğimiz sayılar yanmaya başlayacak. Örneğin, 1 sayısı için B ve C ledlerine bağlı pinler 1, diğerleri 0 olacak. Peki bunu nasıl yapacağız.

Kodlarımızda "sayi" isimli bir integer değer gireceğiz ve 0'da itibaren her döngüde 1 artacak. Bu integer değerin 10 ile bölümünden kalan sayıyı displayde göstereceğiz. Yani "%10" ifadesini kullanacağız.

Kodlarımız;

int buton=12;

int a=2; // her pine displaydeki bir led bağlı

int b=6;

int c=8;

int d=9;

int e=4;

int f=3;

int g=7;

int x=5; //Displaydeki nokta led

int sayi=0; // Modu alınacak sayi

void setup () {

pinMode(a,OUTPUT);

pinMode(b,OUTPUT);

pinMode(c,OUTPUT);

pinMode(d,OUTPUT);

pinMode(e,OUTPUT);

pinMode(f,OUTPUT);

pinMode(g,OUTPUT);

pinMode(x,OUTPUT);

pinMode(buton,INPUT_PULLUP);

Serial.begin (9600);} // Sayi değerini monitörde görmek için

void loop () {

int butondurumu=digitalRead(buton); // buton durumu okuyoruz

if (butondurumu==0) //butona her basıldığında;

{sayi=sayi+1;} // sayi değeri 1 artacak

if (sayi%10==0) //sayinin moduna göre display ledleri

{digitalWrite(a,HIGH); //yanacak

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,LOW);

}

else if (sayi%10==1)

{digitalWrite(a,LOW);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}

else if (sayi%10==2)

{digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,LOW);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

}

else if (sayi%10==3)

{digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

}

else if (sayi%10==4)

{digitalWrite(a,LOW);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

else if (sayi%10==5)

{digitalWrite(a,HIGH);

digitalWrite(b,LOW);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

else if (sayi%10==6)

{digitalWrite(a,HIGH);

digitalWrite(b,LOW);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

else if (sayi%10==7)

{digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}

else if (sayi%10==8)

{digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

else if (sayi%10==9)

{digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

delay(100);

Serial.println(sayi); //Bilgisayardaki değere bakarak

delay(10); //displayin doğru olup olmadığını

//anlayabiliriz.

}


 
 
 

Yorumlar


Featued Posts 
Recent Posts 
Find Me On
  • Facebook Long Shadow
  • Twitter Long Shadow
  • YouTube Long Shadow
  • Instagram Long Shadow
Other Favotite PR Blogs
Serach By Tags

© 2023 by Make Some Noise. Proudly created with Wix.com

  • Facebook Clean Grey
  • Instagram Clean Grey
  • Twitter Clean Grey
  • YouTube Clean Grey
bottom of page