7 segment displayle dijital çıkış uygulaması yapmak

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.

⚡ Canlı İnteraktif Simülatör

7 Segment Display & Arduino Çıkış Simülatörü

a b c d e f g dp
Rakam Seç:
Arduino Pin Çıkışları: 1 = HIGH (Yanar)
a
0
b
0
c
0
d
0
e
0
f
0
g
0
dp
0
Binary (dp g f e d c b a): B00000000
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.
    }
  }
}

Benzer Temrinler & Yazılar

  • ASCII

    //void setup() { Serial.begin(9600); Serial.println("ASCII Tablosu"); for (byte i = 33; i < 127; i++) { Serial.write(i); //Karakteri yaz. Serial.print(", dec: "); //Onluk karşılığını yaz. Serial.print(i); Serial.print(", hex: "); Serial.print(i, HEX); //Onaltılık karşılığını yaz. Serial.print(", oct: "); Serial.print(i, OCT); //Oktal karşılığını yaz. Serial.print(", bin: "); Serial.println(i, BIN); //İkilik karşılığını yaz. } } void loop() {…

  • Bilgisayardan Arduino’ya Veri Gönderme

    Bu uygulamada Serial.read() fonksiyonuyla USB kablo üzerinden bilgisayardan gelen verilerokunarak seri port ekranına yazdırılmıştır. Bilgisayardan Arduino’ya veri göndermek için seri portekranının üst kısmındaki kutuya karakter yazıp gönder düğmesine tıklanır Görselde Çokkarakterli metin bilgisini okumak için Serial.readString() fonksiyonu kullanılır. void setup() { Serial.begin(9600); //Seri iletişim başlatıldı. } void loop() { if (Serial.available()>0) { //Seri iletişimde veri…

  • Bluetooth Uygulaması

    Bluetooth modülle haberleşmek için telefondan bluetooth bağlantısı açılarak hc-05 cihazı bulunur ve “Bluetooth aygıtını seç” düğmesiyle hc-05 seçilir. Varsayılan şifre “1234” veya “0000” dır.Bluetooth ile “A” harfi gönderilerek LED yakılır, “B” harfi gönderilerek LED söndürülür (Görseldeki). Bluetooth uygulama devresi Görselde görülmektedir. void setup() { pinMode(13, OUTPUT); Serial.begin(9600); // Bluetooth ile seri iletişimi başlat. } void…

  • Engelden Kaçan Robot Uygulaması

    Engelden kaçan robotta engelleri algılamak için ultrasonik sensör kullanılmaktadır GörseldekiUltrasonik sensörden gelen bilgilerle mesafe hesaplanır. Mesafe 30 cm’nin altına indiğinde motor tarafından sürücüye sol tekerleği geriye döndürme bilgisi gönderilmektedir. 30 cm üzerindekitüm mesafe ölçümlerinde tekerlekler ileri yönde döndürülecek şekilde motor sürücüye bilgi gönderilmektedir. Taslaktaki “hiz=255;” değeri düz gitme ve dönüş için farklı değerlere ayarlanarakrobot yavaşlatılabilir….

  • Step Motor Uygulaması

    Step motorlar, adımlarla hareket eden DC motorlardır görselde Faz adı verilen gruplar hâlinde organize edilmiş çoklu bobinleri vardır. Her faza sırayla enerji verildiğinde motor her seferindebir adım olacak şekilde döner. Çift kutuplu step motorlar, iki bobinden oluşur ve genellikle bobinbaşına iki olmak üzere dört bağlantıya sahiptir. Tek kutuplu bir step motor elektriksel olarak ikiayrı bobinden…

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacaktır. Gerekli alanlar * ile işaretlenmiştir.