manşet

Arduino İle 7 Segment Display Kullanımı



Öncelikle 7 segment display nedir?


       7 segment display ledlerden oluşan ortak anot veya katot uclarına sahip elemanlardır.0-9 arası sayısal ifadeleri göstermek için kullanılır.Genel olarak dijital saat, takvim vs sayıcı devrelerinde sıklıkla kullanılmaktadır.







ORTAK KATOT                -          ORTAK ANOT






         Yukarıda ki resimde 7-segment displayin iç yapısında ki led bağlantılarının verildiğini görüyoruz . Eğer ortak uç katot ise gnd , ortak uç anot ise 5V girişine bağlıyoruz.Ben burada ortak uç katot kullanacağım. Uygulama için gerekli olan malzemelerimiz

  • 1 adet arduino uno 
  • Breadboard 
  • 1 adet 7 segment display 
  • 2 adet 220 ohm direnç 
  • Yeteri kadar jumper kablo


          Uygulamamızda 0 ile 9 arasındaki çift sayıları gösteren devre yapacağız. Şekildeki bağlantılarımızı yapıp kod kısmına geçebiliriz.

PROGRAMIN KODLARI

int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
int f = 6;
int g = 7;

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 :
   digitalWrite(a,HIGH);
   digitalWrite(b,HIGH);
   digitalWrite(c,HIGH);
   digitalWrite(d,HIGH);
   digitalWrite(e,HIGH);
   digitalWrite(f,HIGH);
   digitalWrite(g,LOW);
     break;

         case 2:
   digitalWrite(a, HIGH);
   digitalWrite(b,HIGH);
   digitalWrite(c,LOW);
   digitalWrite(d,HIGH);
   digitalWrite(e,HIGH);
   digitalWrite(f,LOW);
   digitalWrite(g,HIGH);
     break;

         case 4:
   digitalWrite(a, LOW);
   digitalWrite(b,HIGH);
   digitalWrite(c,HIGH);
   digitalWrite(d,LOW);
   digitalWrite(e,LOW);
   digitalWrite(f,HIGH);
   digitalWrite(g,HIGH);
     break;

         case 6:
   digitalWrite(a, HIGH);
   digitalWrite(b,LOW);
   digitalWrite(c,HIGH);
   digitalWrite(d,HIGH);
   digitalWrite(e,HIGH);
   digitalWrite(f,HIGH);
   digitalWrite(g,HIGH);
     break;

        case 8:
   digitalWrite(a, HIGH);
   digitalWrite(b,HIGH);
   digitalWrite(c,HIGH);
   digitalWrite(d,HIGH);
   digitalWrite(e,HIGH);
   digitalWrite(f,HIGH);
   digitalWrite(g,HIGH);
     break;
   

   }
}
void loop(){
for(int i=0; i<=9;i++){
rakamyaz(i);
delay(1000);

}
}



Hiç yorum yok:

Yorum Gönder