1. Bu site çerez kullanmaktadır. Siteyi kullanmaya devam etmeniz halinde çerez kullanımı ile ilgili site koşullarını kabul etmiş sayılırsınız. Daha Fazlasını Öğren.
  2. Forum İllegal Uyarısı Forum kuralları gereği forumda video ve illagal paylaşım yapmak yasaktır.Program Arşivimizde ise kısıtlanmış sürüm yada dağıtımı serbest olan (trial - freeware) yazılımlar yayınlayınız..Aksi takdirde mesajlarınız silinecektir..

Arduino ile 7 Segment Display

Konusu 'Pic Uygulama Ve Devreleri' forumundadır ve guclusat tarafından 29 Nisan 2016 başlatılmıştır.

  1. guclusat
    Offline

    guclusat Tanınmış Üye Süper Moderatör

    Katılım:
    14 Haziran 2009
    Mesajlar:
    9.754
    Ödül Puanları:
    48
    Merhaba arkadaşlar bu yazımızda arduino ile 7 segment display uygulaması yapacağız.Uygulamamızda ilk önce iki adet display kullanarak 99’a kadar sayıcı yapacağız daha sonra bu 7 segment displayleri ve Lm35 sıcaklık sensorünü kullanarak bir sıcaklık göstergesi yapacağız.Bu uygulama için fritzing’de bağlantıları hazırlamak isterdim ama şu anda bunu yapmak için yeteri kadar vaktim yok.Burada uygulamaya ait video ve yazılım kodlarını paylaşacağım. 99’a kadar sayma işlemini Arduino uno ile yapacağız sıcaklık göstergesini ise Arduino1280 ile yapacağız.Sıcaklık göstergesi uygulaması arduino uno ilede yapılır fakat sadece sıcaklık değerini gösterebiliriz derece sembolünü bağlayacak gpiolarımız olmadığı için.Kullanacağımız segment displayler anot tipinde olduğu için yanmasını istediğimiz bölümleri low yapacağız.


    Anot ve katot tipi 7-Segment Display

    7segLed.gif

    Örnek bağlantı

    Untitled-1.jpg

    Yukarıda görüldüğü üzere 7-segment ile arduino gpioları drençler ile bağlantılı.Ben uygulamada 470,220,330 ohm gibi farklı değerler kullandım.Sizde gerekli hesaplamaları yaparak uygun değerleri kullanabilirsiniz.

    Kod:
    void setup()
    {
      //Gpioları tanımlarken hangi gpionun 7-segmentin hangi bölümüne gideceğini ayarladık
      //Birler Basamağı
      pinMode(0, OUTPUT);//a
      pinMode(1, OUTPUT);//b
      pinMode(2, OUTPUT);//c
      pinMode(3, OUTPUT);//d
      pinMode(4, OUTPUT);//e
      pinMode(5, OUTPUT);//f
      pinMode(6, OUTPUT);//g
      //Onlar Basamağı
      pinMode(7, OUTPUT);//a
      pinMode(8, OUTPUT);//b
      pinMode(9, OUTPUT);//c
      pinMode(10, OUTPUT);//d
      pinMode(11, OUTPUT);//e
      pinMode(12, OUTPUT);//f
      pinMode(13, OUTPUT);//g
    }
    void loop(){//Fonksiyon
      int i,a,b;
      for(i=0; i<=99;i++){
        a=i/10;//Sayacağımız sayının onlar basamağı
        b=i%10;//Sayacağımız sayının birler basamağı
        RakamGoster(a,b);
        delay(500);
      }
    }
    void RakamGoster(int onlar,int birler)//Rakam göster fonksiyonunu çağırıyoruz
    {
      switch(birler)
      {
      case 0 :
        digitalWrite(0,LOW);
        digitalWrite(1,LOW);
        digitalWrite(2,LOW);
        digitalWrite(3,LOW);
        digitalWrite(4,LOW);
        digitalWrite(5,LOW);
        digitalWrite(6,HIGH);
        break;
      case 1:
        digitalWrite(0, HIGH);
        digitalWrite(1,LOW);
        digitalWrite(2,LOW);
        digitalWrite(3,HIGH);
        digitalWrite(4,HIGH);
        digitalWrite(5,HIGH);
        digitalWrite(6,HIGH);
        break;
      case 2:
        digitalWrite(0, LOW);
        digitalWrite(1,LOW);
        digitalWrite(2,HIGH);
        digitalWrite(3,LOW);
        digitalWrite(4,LOW);
        digitalWrite(5,HIGH);
        digitalWrite(6,LOW);
        break;
      case 3:
        digitalWrite(0, LOW);
        digitalWrite(1,LOW);
        digitalWrite(2,LOW);
        digitalWrite(3,LOW);
        digitalWrite(4,HIGH);
        digitalWrite(5,HIGH);
        digitalWrite(6,LOW);
        break;
      case 4:
        digitalWrite(0, HIGH);
        digitalWrite(1,LOW);
        digitalWrite(2,LOW);
        digitalWrite(3,HIGH);
        digitalWrite(4,HIGH);
        digitalWrite(5,LOW);
        digitalWrite(6,LOW);
        break;
      case 5:
        digitalWrite(0, LOW);
        digitalWrite(1,HIGH);
        digitalWrite(2,LOW);
        digitalWrite(3,LOW);
        digitalWrite(4,HIGH);
        digitalWrite(5,LOW);
        digitalWrite(6,LOW);
        break;
      case 6:
        digitalWrite(0, LOW);
        digitalWrite(1,HIGH);
        digitalWrite(2,LOW);
        digitalWrite(3,LOW);
        digitalWrite(4,LOW);
        digitalWrite(5,LOW);
        digitalWrite(6,LOW);
        break;
      case 7:
        digitalWrite(0, LOW);
        digitalWrite(1,LOW);
        digitalWrite(2,LOW);
        digitalWrite(3,HIGH);
        digitalWrite(4,HIGH);
        digitalWrite(5,HIGH);
        digitalWrite(6,HIGH);
        break;
      case 8:
        digitalWrite(0, LOW);
        digitalWrite(1,LOW);
        digitalWrite(2,LOW);
        digitalWrite(3,LOW);
        digitalWrite(4,LOW);
        digitalWrite(5,LOW);
        digitalWrite(6,LOW);
        break;
      case 9:
        digitalWrite(0,LOW);
        digitalWrite(1,LOW);
        digitalWrite(2,LOW);
        digitalWrite(3,LOW);
        digitalWrite(4,HIGH);
        digitalWrite(5,LOW);
        digitalWrite(6,LOW);
        break;
      }
       switch(onlar)
      {
      case 0 :
        digitalWrite(7,LOW);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
        digitalWrite(12,LOW);
        digitalWrite(13,HIGH);
        break;
      case 1:
        digitalWrite(7, HIGH);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,HIGH);
        digitalWrite(11,HIGH);
        digitalWrite(12,HIGH);
        digitalWrite(13,HIGH);
        break;
      case 2:
        digitalWrite(7, LOW);
        digitalWrite(8,LOW);
        digitalWrite(9,HIGH);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
        digitalWrite(12,HIGH);
        digitalWrite(13,LOW);
        break;
      case 3:
        digitalWrite(7, LOW);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,HIGH);
        digitalWrite(12,HIGH);
        digitalWrite(13,LOW);
        break;
      case 4:
        digitalWrite(7, HIGH);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,HIGH);
        digitalWrite(11,HIGH);
        digitalWrite(12,LOW);
        digitalWrite(13,LOW);
        break;
      case 5:
        digitalWrite(7, LOW);
        digitalWrite(8,HIGH);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,HIGH);
        digitalWrite(12,LOW);
        digitalWrite(13,LOW);
        break;
      case 6:
        digitalWrite(7, LOW);
        digitalWrite(8,HIGH);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
        digitalWrite(12,LOW);
        digitalWrite(13,LOW);
        break;
      case 7:
        digitalWrite(7, LOW);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,HIGH);
        digitalWrite(11,HIGH);
        digitalWrite(12,HIGH);
        digitalWrite(13,HIGH);
        break;
      case 8:
        digitalWrite(7, LOW);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
        digitalWrite(12,LOW);
        digitalWrite(13,LOW);
        break;
      case 9:
        digitalWrite(7,LOW);
        digitalWrite(8,LOW);
        digitalWrite(9,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,HIGH);
        digitalWrite(12,LOW);
        digitalWrite(13,LOW);
        break;
      }
    }
     

    Ekli Dosyalar:

Sayfayı Paylaş