Arduino ile 7 Segment Display

guclusat

Tanınmış Üye
Süper Moderatör
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;
  }
}
 

Eklentiler

Geri
Yukarı