#2 Arduino ile 7 Segment Display

Malzemeler:

1 Adet Arduino Uno (25 TL)
1 Adet 7 Segment Display (1 TL)
2 Adet 220 ohm direnç( 0,20 TL)

Devre kurulumu:

7 Segmentin bacakları aşağıdaki resimde gösterildiği gibidir.


NOT: 7 Segment displayler anot ve kotot olmak üzere 2 ye ayrılır. Ben bu yazımda anot 7 segment kullandım. Yani Hıgh yazdığım pin yanacaktır.Diğer tür katotda ise Low yazdığım pin yanacaktır.Anot devresinden 3 . ve 8. bacaklar GND pinine gidiyordu. Katot devresin bu pinleri Arduinonun 5V pinine bağlamayı unutmayın.

Şekilde gösterildiği gibi her segment bir harf ile gösterilir kodu yazarken hangi harfin hangi bacakta olacağı önemlidir. Eğer bağlantıları düzgün yapmazsak saçma şeyler görmemiz mümkün. Devreyi aşağıdaki gibi kuralım.
5. bacak boş kalacak çünkü displayin sağ alt kısmındaki noktanın yanmasına gerek yok. 

Programlama:

Programlama kısmı basit her bir segmenti led olarak düşünün. Yani elinizde 7 led var gibi kodu yazıyoruz. 0 göstermesi için ortadaki yani g ledinin sönük diğerlerinin yanık olması gerekir. Bunu her bir sayı için yapabilirsiniz.

#define A 9   // tabloya göre a segmentin 7. bacagına bağlı
#define B 8   // hepsini aynı mantıkla bağlıyoruz
#define C 2
#define D 3
#define E 4
#define f 10
#define G 11

void setup()
{
  pinMode(A, OUTPUT);  // tüm kısımları tanımladık bu kısımda
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(G, OUTPUT);

}

void loop()
{
  digitalWrite(A, HIGH);  //burda tüm kısımları birer led gibi düşünün
  digitalWrite(B, HIGH);  //0 görünümü olması için g kısmının yanamaması gerekir
  digitalWrite(C, HIGH);  //diğerlerinş yakarken g sönük kalması 0 ı verir bize
  digitalWrite(D, HIGH);  //tüm sayıları aynı mantıkla kendinizde bulabilirsiniz
  digitalWrite(E, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(G, LOW);
  delay(1000);



digitalWrite(A,LOW);    // 1 için sadece b ve c nin yanması gerek
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(f, LOW);
digitalWrite(G, LOW);
delay(1000);



digitalWrite(A,HIGH); // 2 için c ve f sönük olması yeterli
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(f, LOW);
digitalWrite(G, HIGH);
delay(1000);



digitalWrite(A,HIGH);
digitalWrite(B, HIGH);  // 3 için
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(f, LOW);
digitalWrite(G, HIGH);
delay(1000);



digitalWrite(A,LOW);    //4
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);



digitalWrite(A,HIGH);    //5
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);



digitalWrite(A,HIGH);    //6
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);



digitalWrite(A,HIGH);    //7
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(f, LOW);
digitalWrite(G, LOW);
delay(1000);



digitalWrite(A, HIGH);    //8
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);

digitalWrite(A, HIGH);    //9
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);
}

Kodu arduinoya yüklediğinizde sayıların 1 saniyede bir arttığını 9 dan sonra 0 a geçtiğini görebilirsiniz. Bu proje bitince  hemen devreyi bozmadan önce bir sonraki yazımda bulacağınız #Trafik lambası uygulamasını da yapın derim :)

 Unutmayın etrafınıza baktığınızda bir çok seven segment displayin günlük hayatta kullanıldığını görürsünüz. Nerede kullanabileceğiniz neler yapabileceğiniz hayalgücünüze kalmış. Biraz araştırmayla odanızın duvarına saat bile yapabilirsiniz. 


Yorumlar

Bu blogdaki popüler yayınlar

Sinyal Jeneratörü Nedir? (Function generator)

Arduino'dan Python'a veri aktarma

#12 Arduino ile Step Motor Kontrolü