Arduino Dersleri – SSD ( 7 Parçalı Gösterge )

Merhaba arkadaşlar,
Mobilhanem.com için hazırladığımız Arduino derslerimize Seven Segment Display (SSD) ile devam ediyoruz. SSD 7 adet led çubuktan ve bazende bir noktadan oluşur. Yaygın olarak rakamların gösteriminde kullanılır. İçerisinde bulundan her bir led ayrı ayrı kontrol edilerek istenilen rakamların oluşması sağlanır. Bu dersimizde bir SSD‘in yapısına, devresinin kurulumun şekline bakacağız ve Arduino ile birlikte nasıl kullanacağımızı göreceğiz.

SSD ( Seven Segment Display )

Yandaki resimde temel bir 7 parçalı gösterge bulunmaktadır. SSD’lerin genel olarak ortak anotlu veya ortak katotlu olmak üzere iki çeşidi bulunmaktadır. Bu dersimizde resimde görüldüğü gibi 7 parça çubuk led ve bir noktadan oluşan ve ortak katotlu bir SSD kullanacağız. Elimizdeki SSD’in üzerinde 10 adet bağlantı bacağı bulunmaktadır.Bu bağlantı bacaklarından 8 tanesi çubuk ve nokta şeklindeki ledlerin pozitif bacakları iken diğer iki bacak tüm bu ledlerin ortak negatif bacağı olarak kullanılmaktadır.

 

 

Yandaki resimde 7 parçalı göstergenin üzerindeki ledler ve kontrol bacakları harflendirilmiş olarak gösterilmektedir. Anlaşılacağı üzere bir led kontrol etmek için o lede ait olan kontrol bacağını kullanmamız gerekmektedir. Yani bu derste kullanacağımız ortak katotlu 7 parçalı gösterge için hangi ledi yakmak istiyorsak o ledin kontrol bacağına gerilim uygulayacağız.

 

Rakamların Gösterimi

Her bir rakamı ve nokta işaretini kullanmak için yukarıdaki şekilden faydalanarak çeşitli kombinasyonlar oluşturmamız gerekmekte. Şimdi her bir rakam için hangi kombinasyonu kullanmamız gerektiğine belirleyelim.

  • 0 : a – b – c – d – e – f
  • 1 :  b – c
  • 2 : a – b – g – e – d
  • 3 : a – b – c – d – g
  • 4 : f – g – b – c
  • 5 : a – f – g – c – d
  • 6 : a – f – e – d – c – g
  • 7 : a – b – c
  • 8 : a – b – c – d – e – f – g
  • 9 : a – b – c – g – f

Yukarıda her bir rakamın gösterimi için hangi ledleri kullanmamız gerektiğini belirledik. Bunun dışında nokta şeklindeki ledi kullanmak istediğimizde DP bağlantı bacağını kullanmamız gerecek.

Arduino İle SSD Kullanımı

7 parçalı bir gösterge hakkında genel bir bilgimizi ve rakamların gösterimi için ihtiyacımız olan kombinasyonları kullanarak 0’dan 9’a kadar sayan ve ardından başa dönen bir Arduino kodu ve devresi hazırlayacağız.

Bu örneğimiz için gerekli olan devre şeması aşağıdaki gibidir.

Arduino SSD Devre Şeması

Arduino Seven Segment Display Kodu

byte a = 2, b = 3, c = 4, d = 5, e = 6,e f = 7, g = 8;
byte nokta = 9;
byte sayac = 0;

void setup() {
  Serial.begin(9600);
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(nokta, OUTPUT);
}

void loop() {
  rakamiGoster(sayac);
  sayac = ++sayac % 11;
  delay(1000);
}

void rakamiGoster(int rakam) {
  switch (rakam) {
    case 0: // a-b-c-d-e-f
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, HIGH);
      digitalWrite(g, LOW);
      digitalWrite(nokta, LOW);
      break;
    case 1: // b–c
      digitalWrite(a, LOW);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, LOW);
      digitalWrite(g, LOW);
      digitalWrite(nokta, LOW);
      break;
    case 2: // a–b–g–e–d
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, LOW);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, LOW);
      digitalWrite(g, HIGH);
      digitalWrite(nokta, LOW);
      break;
    case 3: // a–b–c–d–g
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, LOW);
      digitalWrite(f, LOW);
      digitalWrite(g, HIGH);
      digitalWrite(nokta, LOW);
      break;
    case 4: // f–g–b–c
      digitalWrite(a, LOW);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      digitalWrite(nokta, LOW);
      break;
    case 5: // a–f–g–c–d
      digitalWrite(a, HIGH);
      digitalWrite(b, LOW);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, LOW);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      digitalWrite(nokta, LOW);
      break;
    case 6: // a–f–e–d-c–g
      digitalWrite(a, HIGH);
      digitalWrite(b, LOW);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      digitalWrite(nokta, LOW);
      break;
    case 7: // a–b–c
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, LOW);
      digitalWrite(g, LOW);
      digitalWrite(nokta, LOW);
      break;
    case 8: // a–b–c–d–e–f–g
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      digitalWrite(nokta, LOW);
      break;
    case 9: // a–b–c–g–f
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      digitalWrite(nokta, LOW);
      break;
    case 10: // nokta
      digitalWrite(a, LOW);
      digitalWrite(b, LOW);
      digitalWrite(c, LOW);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, LOW);
      digitalWrite(g, LOW);
      digitalWrite(nokta, HIGH);
      break;
  }
}

 

Bu dersimizde Arduino’da 7 parçalı göstergenin kullanım şeklini ve Arduino ile basit bir örneği nasıl yapabileceğimizi inceledik. Konuyla ilgili yorumlarınızı konu altından yapabilir, sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz. Bir sonraki içeriğimizde Mobilhanem.com‘da görüşmek üzere.

Tüm Arduino Dersleri için tıklayınız..

57

Muhammed Enes Ateş

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?