1000 TL Üzeri Alışverişlerde Ücretsiz Kargo ve Türkiye'nin Her Yerine 79,90₺

Arduino 7 Segment Display Kullanımı - Mini Projeler | Robocombo

Arduino 7 Segment Display Kullanımı - Mini Projeler | Robocombo

Arduino ile 7 Segment Display Kullanımı

Eveeet Maker dostlar hepinizi selamlıyorum ve bu yazımızda arduino ile 7 segment display kullanımı öğreneceğiz.

 

7 Segment Display Nedir Nasıl Kullanılır?

 

7 segment displayler ortak anotlu ve ortak katotlu olmak üzere ikiye ayrılıyor Peki nedir ortak anotlu veya ortak katotlu da ne diye sorular dolaşıyor sanırım zihninizde.

Sözü uzatmadan ceavaplandıralım, az sayıda pin kullanmak için 7 segment displaylerimizde 7 tane segment ve bir tane nokta dışında 2 tane ortak pin bulunuyor. 8 pin 8 kısmı kontrol ederken ortak kısımlar ile dörder pinin çıkışını sağlayabiliyoruz. Gerçekten kim düşünmüşse helal olsun. Ekranımızda 16 adet kısım var hali hazır da dolayısıyla eğer tümünü birde açmak istiyorsak normal şartlarda 16 adet pin gerekirdi bize. Ama ortak uçlar sayesinde çıkış pinleri 8 pinden 2 pine indirmiş oluyoruz. Sanırım şimdi daha iyi anlaşıldı.

 

Ortak anot demek ortak pinlerin Vcc olması durumu Adı üstünde "Anot" 😉

 

Ortak katot ise anladınız zaten ama hadi yazalım yine de: Ortak pinlerin  Gnd olması durumu.

 

Şimdi sıra nasıl çalıştığını anlamaya geldi.

 


 

 

7 Segment Display Sıralaması

 

Resimde görüldüğü üzere aslında 8 yazmak için bütün anahtarları tetiklememiz gerekiyor.

 

Sağdaki resimde daha net anlaşılıyor sanırsam çıkış pinlerinin 2 adet olduğu .

 

Nasıl çalıştığını da öğrendiğimize göre artık uygulamaya geçebiliriz.

 

Uygulama 1

 

İhtiyacımız olan malzemeler:

 

1 Adet 7 Segment Display

1 Adet Arduino Uno

1 Adet Breadboard

1 Adet 7 Segment Display

Jumper kablolar

2 adet 220 ohm direnç

Displayin içindeki ledleri yüksek akım yakmasın diye ordalar hani merak edersiniz 😊

 

7 Segment Display Bağlantıları

 

Projenin çizimini sizler için ellerimle yaptım. Simetri hastaları varsa sorumluluk kabul etmiyorum baştan belirteyim. 😊

 

Ortak Anot için buyrunuz :

 

 


Ortak katot için buyrunuz:

 

 

 

gördüğünüz gibi sadece 5v yerine Gnd'ye bağladık.

 

Sırada projemizin kodları var. (Benden size küçük bir sır, Arduino kodlamayı öğrenmek gerçekten çok kolay ve tamamen hakim olmanız çok extreme koşullar hariç gerekmiyor. temelini

öğrendikten sonra kodlarla oynaya oynaya düzenleye düzenleye kendi projeniz için kod bloğu oluşturabilirsiniz. 😉)

Ortak katot kullananlar koddaki "LOW" yazan yerleri "HIGH", "HIGH" yazan yerleri ise "LOW" ile değiştirmelidir.

 

Arduino Display Kodları

int a = 6; // Pinleri tanımlıyoruz
int b = 7;
int c = 9;
int d = 10;
int e = 11;
int f = 5;
int g = 4;
void setup()
{
pinMode(a, OUTPUT); // Pinlerin çıkış pini olduğunu belirtiyoruz.
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void loop() {
// "9" Sayısını yazar.
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
delay(1000);
// "8" Sayısını yazar.
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
delay(1000);
// "7" Sayısını yazar.
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
delay(1000);
// "6" Sayısını yazar.
digitalWrite(a, LOW);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
delay(1000);
// "5" Sayısını yazar.
digitalWrite(a, LOW);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
delay(1000);
// "4" Sayısını yazar.
digitalWrite(a, HIGH);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
delay(1000);
// "3" Sayısını yazar.
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
delay(1000);
// "2" Sayısını yazar.
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
delay(1000);
// "1" Sayısını yazar.
digitalWrite(a, HIGH);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
delay(1000);
// "0" Sayısını yazar.
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
delay(1000);

}

 

Uygulama 2

 

2 Adet 7 Segment Display

1 Adet Arduino Uno

1 Adet Breadboard

 

Arduino 7 Segment Display Kullanımı için Örnek Proje

Şimdi de 0-99 arası sayan bir proje yapalım.

 

 

Bağlantıyı resimdeki gibi gerçekleştiriyoruz.

 

Farkettiğiniz üzere 3.3 v çıkışına bağladık eğer 5v kullanmak isterseniz dirençle beraber kullanmanızı tavsiye ederim.

 

Kodlar için buyrun.

 

//SSD is Seven-Segment Display

void setup()
{
  for (int i = 0; i <= 13; i++)
    pinMode(i, OUTPUT); //Set all pins from 0 to 13 as OUTPUT
}
//Aşağıdaki satır, 0'dan 9'a kadar bir SSD'deki rakamlar için tüm ikili sayıları içeren diziyi oluşturma çabalarının ürünüdür :) (ssd =seven segment display)
const int number[11] = {0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000};

void loop()
{
  for (int tens = 0; tens < 10; tens++)

  {
    display_tens(tens);
  }
}

void display_tens(const int tens)
{
  int pin1, a, ones;     
  //pin1  1.SSD'nin pinleri ile alakalıdır.

  for (pin1 = 0, a = 0; pin1 < 7; pin1++, a++)
  {
    digitalWrite(pin1, bitRead(number[tens], a));
  }
  for (ones = 0; ones < 10; ones++)
  {
    display_ones(ones);
    delay(300); 
    //300 ms periyotla sayılar bir bir artar.
  }
}

void display_ones(const int x)
{ int pin2, b;             
//pin2  2.SSD'nin pinleri ile alakalıdır.

  for (pin2 = 7, b = 0; pin2 <= 13; pin2++, b++)
  {
    digitalWrite(pin2, bitRead(number[x], b));

  }

}

Gerekli malzemeleri  buradan alabilirsiniz.

 

Etiketler: 7 Segment Display,Arduino 7 Segment,7 Segment ,Display
Eylül 07, 2021
Listeye dön
cultureSettings.RegionId: 0 cultureSettings.LanguageCode: TR
Çerez Uyarısı

Alışveriş deneyiminizi iyileştirmek için yasal düzenlemelere uygun çerezler (cookies) kullanıyoruz. Detaylı bilgiye Gizlilik ve Çerez Politikası
sayfamızdan erişebilirsiniz.