Arduino - Seven Segment Display 0-9 Sayıcı Devresi - Elektrik Elektronik Projeleri

Post Top Ad

27 Kasım 2014 Perşembe

Arduino - Seven Segment Display 0-9 Sayıcı Devresi

Bu projemizde bir seven segment displaye 0-9 saydıracağız.
Proje Devresi:
Devrede Kullanılan Malzemeler:

  • Ortak Katot 7-Segment Display
  • Arduino Uno
Biz bu projede ortak katot 7-segment display kullandık. İstenildiği takdirde ortak anot 7-segment display de kullanılabilir. Yalnız proje kodlarında birtakım değişiklik yapılması gerekir.

Seven Segmen Display:
Seven segment display tek haneli bir gösterge elemanıdır. Genellikle rakam yazdırmak için kullanılır. Ortak anot ve Ortak katot olmak üzere iki çeşittir.


Resimde ortak anot ve ortak katot displaylerin pin diagramı görülmektedir.

Ortak katot displayde GND uçlar şaseye bağlanırken diğer uçlara pozitif gerilim uygulanmaktadır. Ortak anot displayde ise VCC uçlara pozitif gerilim uygulanırken, diğer uçlar şase yapılmalı veya negatif gerilim uygulanmalıdır.

Projenin Kaynak Kodu:
int e=2, d=3, c=5, b=7, a=8, f=10, g=11;
void setup()
{
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
}
void loop(){
  int i;
  for(i=0; i<10; i++){
    RakamGoster(i);
    delay(1000);
  }
}
void RakamGoster(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 1:
      digitalWrite(a,LOW);
      digitalWrite(b,HIGH);
      digitalWrite(c,HIGH);
      digitalWrite(d,LOW);
      digitalWrite(e,LOW);
      digitalWrite(f,LOW);
      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 3:
      digitalWrite(a,HIGH);
      digitalWrite(b,HIGH);
      digitalWrite(c,HIGH);
      digitalWrite(d,HIGH);
      digitalWrite(e,LOW);
      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 5:
      digitalWrite(a,HIGH);
      digitalWrite(b,LOW);
      digitalWrite(c,HIGH);
      digitalWrite(d,HIGH);
      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 7:
      digitalWrite(a,HIGH);
      digitalWrite(b,HIGH);
      digitalWrite(c,HIGH);
      digitalWrite(d,LOW);
      digitalWrite(e,LOW);
      digitalWrite(f,LOW);
      digitalWrite(g,LOW);
      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;
    case 9:
      digitalWrite(a,HIGH);
      digitalWrite(b,HIGH);
      digitalWrite(c,HIGH);
      digitalWrite(d,HIGH);
      digitalWrite(e,LOW);
      digitalWrite(f,HIGH);
      digitalWrite(g,HIGH);
      break;
  }
}

Projenin kodunda RakamGoster adında bir fonksiyon oluşturduk. Bu fonksiyon parametre olarak girilen 0-9 arasındaki rakamları displaye yazdırmaktadır.

Devremiz 1sn aralıklarla 0-9 arsındaki rakamları dipslaye yazdıracaktır.

3 yorum:

Post Top Ad