6 Ekim 2014 Pazartesi

Arduino 7 Segment Display Uygulaması





          Başlangıçta beni çok uğraştıran 7 segment uygulaması bulunmaktadır. Ben bu uygulamayı yapmaya çalışırken tabi 7 segmentin Anot ve Katot diye iki çeşidi olduğundan habersizdim. Biraz araştırmadan sonra bunu öğrendim ama aradaki temel farkın Katotun toprağa Anotun ise 5 Volta bağlandığını sanmam oldu. İşin aslında Anot’ta “pinMode(a,HIGH);” yazdığımızda a pinine bağlı ledi söndürüyormuş. Katot display de ise aynı kod ile ledi yakıyormuşuz. Bu biraz alışageldiğim mantığa ters düştü.Çok basit bir ayrıntı fakat beni fazlaca oyaladı. Aşağıda Anot 7 segment uygulaması bulunmaktadır. Sonra kodu Katot bir 7 segment ile denemeyin , acayip sonuçlarla karşılaşabilirsiniz! Fritzing ile oluşturduğum şeması ve kodu aşağıdaki gibidir;




int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 8;
int g = 7;

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(){
  gecis();
  delay(500);
  sifir();
  delay(500);
  gecis();
  delay(500);
  bir();
  delay(500);
  gecis();
  delay(500);
  iki();
  delay(500);
  gecis();
  delay(500);
  uc();
  delay(500);
  gecis();
  delay(500);
  dort();
  delay(500);
  gecis();
  delay(500);
  bes();
  delay(500);
  gecis();
  delay(500);
  alti();
  delay(500);
  gecis();
  delay(500);
  yedi();
  delay(500);
  gecis();
  delay(500);
  sekiz();
  delay(500);
  gecis();
  delay(500);
  dokuz();
  delay(500);
}
void sifir(){
  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,LOW);
}
void bir(){
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
}
void iki(){
  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(g,LOW);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
}
void uc(){
  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
  digitalWrite(g,LOW);
}
void dort(){
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
}
void bes(){
  digitalWrite(a,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
}
void alti(){
  digitalWrite(a,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
}
void yedi(){
  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
}
void sekiz(){
  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
}
void dokuz(){
  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
}
void gecis(){
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  digitalWrite(e,HIGH);
  digitalWrite(f,HIGH);
  digitalWrite(g,HIGH);
}


0 yorum:

Yorum Gönder