Görselde ortak katotlu ve ortak anotlu 7 segment displayin yapısı, Görsel 2.25b’de ise dijital çıkış şeması ve devresi görülmektedir. Displayin a, b, c, d, e, f, g segmentleri sırasıyla
Arduino’nun 6, 5, 4, 3, 2, 1, 0 numaralı pinlerine bağlıdır. Ortak katot Arduino’nun GND ucuna
bağlıdır. Karar yapısı olarak switch case kullanılmıştır. Rakam değişkenin içeriğine göre ilgili komut kümesi çalıştırılarak dijital çıkışların durumuna göre rakamlar displayde yanmaktadır. For
döngüsüyle 0,2 saniyede bir rakamlar artırılmaktadır. Tabloda ortak katot display giriş kodları verilmiştir.

void setup() {
  pinMode(0, OUTPUT); //g segmenti.
  pinMode(1, OUTPUT); //f segmenti.
  pinMode(2, OUTPUT); //e segmenti.
  pinMode(3, OUTPUT); //d segmenti.
  pinMode(4, OUTPUT); //c segmenti.
  pinMode(5, OUTPUT); //b segmenti.
  pinMode(6, OUTPUT); //a segmenti.

}
void loop() {
  digitalWrite(0, 0); //7 segment displaye 0 rakamını yaz.
  digitalWrite(1, 1);
  digitalWrite(2, 1);
  digitalWrite(3, 1);
  digitalWrite(4, 1);
  digitalWrite(5, 1);
  digitalWrite(6, 1);
  delay(1000);

  digitalWrite(0, 0); //7 segment displaye 1 rakamını yaz.
  digitalWrite(1, 0);
  digitalWrite(2, 0);
  digitalWrite(3, 0);
  digitalWrite(4, 1);
  digitalWrite(5, 1);
  digitalWrite(6, 0);
  delay(1000);

  digitalWrite(0, 1); //7 segment displaye 2 rakamını yaz.
  digitalWrite(1, 1);
  digitalWrite(2, 0);
  digitalWrite(3, 1);
  digitalWrite(4, 1);
  digitalWrite(5, 0);
  digitalWrite(6, 1);
  delay(1000);
}

const byte a = 6, b = 5, c = 4, d = 3, e = 2, f = 1, g = 0;
//Segmentlerin bağlandığı pinler.

void setup() {
  for (byte i = 0; i <= 6; i++)
  {
    pinMode(i, OUTPUT); // 0 - 6 pinleri çıkış yap.
  }
}

void loop() {
  for (byte rakam = 0; rakam <= 9; rakam++) { //Rakamları yukarı say.
    switch (rakam) { //rakam değişkenini seçenkelerden bul.
      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;
    } //switch case bitti.
    delay(200);
  } //for döngüsü bitti.
}

const byte a = 6, b = 5, c = 4, d = 3, e = 2, f = 1, g = 0;
//Segmentlerin bağlandığı pinler.
int sure = 200;

void setup() {
  for (byte i = 0; i <= 6; i++) {
    pinMode(i, OUTPUT); // 0 - 6 pinleri çıkış yap.
  }
}

void loop() {
  for (byte rakam = 0; rakam <= 9; rakam++) { //Rakamları ileri say.
    yazdir(rakam);
    delay(sure);
  }
  for (byte rakam = 8; rakam >= 1; rakam--) { //Rakamları geri say.
    yazdir(rakam);
    delay(sure);
  }
}

void yazdir(byte rakam) {
  switch (rakam) { //rakam değişkenini seçenkelerden bul.
    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;
  }
}

const byte a = 6, b = 5, c = 4, d = 3, e = 2, f = 1, g = 0 ; //Segmentlerin bağlandığı pinler.
byte rakamSegmenleri[10][7] = { //Her rakam için segment durumları.
  //g, f, e, d, c, b, a
  { 0, 1, 1, 1, 1, 1, 1 }, // = 0
  { 0, 0, 0, 0, 1, 1, 0 }, // = 1
  { 1, 0, 1, 1, 0, 1, 1 }, // = 2
  { 1, 0, 0, 1, 1, 1, 1 }, // = 3
  { 1, 1, 0, 0, 1, 1, 0 }, // = 4
  { 1, 1, 0, 1, 1, 0, 1 }, // = 5
  { 1, 1, 1, 1, 1, 0, 1 }, // = 6
  { 0, 0, 0, 0, 1, 1, 1 }, // = 7
  { 1, 1, 1, 1, 1, 1, 1 }, // = 8
  { 1, 1, 0, 1, 1, 1, 1 }  // = 9
};
void setup() {
  for (byte i = 0; i <= 6; i++) { //Yedi adet pin çıkış olarak ayarlandı.
    pinMode(i, OUTPUT); // 0 - 6 pinleri çıkış yap.
  }
}
void loop() {
  for (byte rakam = 0; rakam <= 9; rakam++) {
    for (byte segment = 0; segment < 7; segment++) {
      digitalWrite(segment , rakamSegmenleri[rakam][segment]);
    }
    delay(200);
  }
}

void setup() {
  DDRD = B01111111; //0-6 numaralı pinler çıkış, 7 numaralı pin giriş olarak ayarlandı.
}

void loop() {
  PORTD = B00111111; //0-5 numaralı pinlere 1 bilgisi, 6. pine 0 bilgisi gönderildi.
  delay(1000);
  PORTD = B00000110;
  delay(1000);
  PORTD = B01011011;
  delay(1000);
}

const byte a = 6, b = 5, c = 4, d = 3, e = 2, f = 1, g = 0;
//Segmentlerin bağlandığı pinler.

void setup() {
  for (byte i = 0; i <= 6; i++)
  {
    pinMode(i, OUTPUT); // 0 - 6 pinleri çıkış yap.
  }
}

void loop() {
  for (byte rakam = 0; rakam <= 9; rakam++) { //Rakamları yukarı say.
    switch (rakam) { //rakam değişkenini seçenkelerden bul.
      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;
    } //switch case bitti.
    delay(200);
  } //for döngüsü bitti.
}

//Seri ekrandan girilen rakamı display'de gösteren program.

const byte a = 2, b = 3, c = 4, d = 5, e = 6, f = 7, g = 8;
//Segmentlerin bağlandığı pinler.

void setup() {
  for (byte i = 2; i <= 8; i++)
  {
    pinMode(i, OUTPUT); // 0 - 6 pinleri çıkış yap.
  }
  Serial.begin(9600);
}

void loop() {
  if (Serial.available()) {
    byte rakam = Serial.parseInt();
    if (rakam != 0) {
      delay(500); // Rakamların gösterimi arasındaki bekleme süresi.
      switch (rakam) { //rakam değişkenini seçenkelerden bul.
        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;
      } //switch case bitti.
    }
  }
}

Categories:

Tags:

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dersler