Arduino ile 7 Segment Display Kontrolü
selam Hiber bilişim ailsei bu yazımızda 7 Segment Display ekranın Arduino ile kullanımını inceleyeceğiz. öncelikle 7 Segment Display çalışma mantığını ve nasıl çalıştına bakalım
7 Segment Display Led Nedir? Nasıl Çalışır?
7 segment display, üzerinde rakamları göstermek için 7 adet led bulunan bir dijital rakam görüntüleme modülüdür.
Yazılacak rakama göre bazı ledler yakılır, bazı ledler söndürülür. aşşada görüldüğü gibi7 segment display led ekranlar bağlantılarına göre ortak anot 7 segment display ve ortak katot 7 segment display olmak üzere iki çeşit olabilmektedir. Ortak anot 7 segment display led nedir?Ortak anot 7 segment display, tüm ledlerin + bacaklarının ortak kullanıldığı led display çeşitidir. Bu durumda 3. ve 8. bacaklar arduino 5V pinine bağlanmalıdır.Ortak anot 7 segment display bağlantı şekili
1 nolu bacak ( E )=> arduino 2,2 nolu bacak ( D )=> arduino 3,3 nolu bacak => arduino 5V,4 nolu bacak ( C )=> arduino 4,5 nolu bacak ( DP )=> arduino 5,6 nolu bacak ( B )=> arduino 6,7 nolu bacak ( A )=> arduino 7,8 nolu bacak => arduino 5V,9 nolu bacak ( F )=> arduino 8,10 nolu bacak ( G )=> arduino 9 numaralı pinlere arduino pinine bağlayalım.
Ortak anot 7 segment display arduino bağlantısını aşağıdaki şemaya göre yapalım.Ortak anot 7 segment display led ile sayıları göstermek için yanmasını istediğimiz ledin bağlı olduğu arduino pinine LOW, sönmesini istediğimiz ledin bağlı olduğu arduino pinine HIGH sinyali göndermeliyiz.Arduino Uno kartına şu kodu Arduino IDE ile yükleyeceğiz:
int E=2; int D=3; int C=4; int P=5;
int B=6; int A=7; int F=8; int G=9;
void setup() {
// LED pinlerini çıkış olarak ayarla
pinMode(E, OUTPUT);
pinMode(D, OUTPUT);
pinMode(C, OUTPUT);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(P, OUTPUT);
}
void loop() {
// 0'dan 9'a kadar sayıları yazdırma döngüsü
for (int i = 0; i <= 9; i++) {
SayiYaz(i);
delay(1000); // 1 saniye bekle
}
}
void SayiYaz(int sayi) {
// 7-segment ekran için sayıyı gösteren fonksiyon
// Sayıları 7-segment ekran bağlantısına göre aydınlatma durumlarına göre kontrol edin
switch (sayi) {
case 0:
digitalWrite(E, LOW);
digitalWrite(D, LOW);
digitalWrite(C, LOW);
digitalWrite(B, LOW);
digitalWrite(A, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH); // '0' rakamı için G segmenti HIGH olmalı
break;
case 1:
digitalWrite(E, HIGH);
digitalWrite(D, HIGH);
digitalWrite(C, LOW);
digitalWrite(B, LOW);
digitalWrite(A, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH); // '1' rakamı için G segmenti HIGH olmalı
break;
case 2:
// Diğer durumlar için segmentlerin durumlarını belirtin
// (Kod daha fazla kesilerek kopyalanmış, daha sonra temizlik yapılabilir)
digitalWrite(E, LOW);
digitalWrite(D, LOW);
digitalWrite(C, HIGH);
digitalWrite(B, LOW);
digitalWrite(A, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
break;
// Diğer rakamlar için de benzer şekilde durumları tanımlayın
case 3:
// ...
break;
case 4:
// ...
break;
case 5:
// ...
break;
case 6:
// ...
break;
case 7:
// ...
break;
case 8:
// ...
break;
case 9:
// ...
break;
}
}
Ortak katot 7 segment pin bağlantıları ve kodu1 nolu bacak ( E )=> arduino 2,2 nolu bacak ( D )=> arduino 3,3 nolu bacak => arduino 5V,4 nolu bacak ( C )=> arduino 4,5 nolu bacak ( DP )=> arduino 5,6 nolu bacak ( B )=> arduino 6,7 nolu bacak ( A )=> arduino 7,8 nolu bacak => arduino 5V,9 nolu bacak ( F )=> arduino 8,10 nolu bacak ( G )=> arduino 9 numaralı pinlere arduino pinine bağlayalım.
kodları ise şu şekil
int E=2; int D=3; int C=4; int P=5;
int B=6;int A=7; int F=8; int G=9;
void setup() {
pinMode(E, OUTPUT); pinMode(D, OUTPUT); pinMode(C, OUTPUT);
pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(F, OUTPUT);
pinMode(G, OUTPUT); pinMode(P, OUTPUT);
}
void loop() {
for(int i=0; i<=9;i++){
RakamYaz(i);
delay(1000);
}
}
void RakamYaz(int rakam)
{
switch(rakam)
{
case 0 :
digitalWrite(E,HIGH);
digitalWrite(D,HIGH);
digitalWrite(C,HIGH);
digitalWrite(B,HIGH);
digitalWrite(A,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,LOW);
break;
case 1:
digitalWrite(E,LOW);
digitalWrite(D,LOW);
digitalWrite(C,HIGH);
digitalWrite(B,HIGH);
digitalWrite(A,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 2:
digitalWrite(E,HIGH);
digitalWrite(D,HIGH);
digitalWrite(C,LOW);
digitalWrite(B,HIGH);
digitalWrite(A,HIGH);
digitalWrite(F,LOW);
digitalWrite(G,HIGH);
break;
case 3:
digitalWrite(E,LOW);
digitalWrite(D,HIGH);
digitalWrite(C,HIGH);
digitalWrite(B,HIGH);
digitalWrite(A,HIGH);
digitalWrite(F,LOW);
digitalWrite(G,HIGH);
break;
case 4:
digitalWrite(E,LOW);
digitalWrite(D,LOW);
digitalWrite(C,HIGH);
digitalWrite(B,HIGH);
digitalWrite(A,LOW);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
case 5:
digitalWrite(E,LOW);
digitalWrite(D,HIGH);
digitalWrite(C,HIGH);
digitalWrite(B,LOW);
digitalWrite(A,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
case 6:
digitalWrite(E,HIGH);
digitalWrite(D,HIGH);
digitalWrite(C,HIGH);
digitalWrite(B,LOW);
digitalWrite(A,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
case 7:
digitalWrite(E,LOW);
digitalWrite(D,LOW);
digitalWrite(C,HIGH);
digitalWrite(B,HIGH);
digitalWrite(A,HIGH);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 8:
digitalWrite(E,HIGH);
digitalWrite(D,HIGH);
digitalWrite(C,HIGH);
digitalWrite(B,HIGH);
digitalWrite(A,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
case 9:
digitalWrite(E,LOW);
digitalWrite(D,HIGH);
digitalWrite(C,HIGH);
digitalWrite(B,HIGH);
digitalWrite(A,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
}
}
Kodları uyguladığımızda 0 dan başlayarak 9 a kadar sayılar 1 er saniye aralıklarla gösterilecektir.Devreye 2 adet buton ekleyerek buton ile 7 segment display kontrolü yapabilir, buton ile sayıları arttırıp azaltabileceğiniz bir proje oluşturabilirsinizbugünki yazımızın sonuna geldik şahsen ben yaparken çok eğlendim siz de eğlendinizi?Bir sonraki yazımızda görüşmek üzere.
Berat KURTGÖZ (Yazar)
Tasarım ssnasıl göründüğü ya da nasıl hissettirdiği ile ilgili bir şey değildir. Tasarım nasıl çalıştığı ile ilgilidir
Makaleleri
45
Makale Okunması
17457
Yorumunuz Gönder