Arduino ile 7 Segment Display Led Kullanımı
Bu dersimizde arduino ile 7 segment display led kullanmak için gerekli arduino bağlantısını ve 7 segment display arduino kodlarını inceleyeceğiz.
Sıfırdan arduino derslerinin bu dersinde arduino ile 7 segment display led kullanmak için gerekli 7 segment display arduino bağlantısını, ve 7 segment display arduino kodlarını inceleyeceğiz.
Bu dersin sonunda;
- 7 segment display nasıl çalışır?
- Ortak anot 7 segment display led nedir?
- Ortak katot 7 segment display led nedir?
- Arduino 7 segment display bacak bağlantıları nasıl yapılır?
- 7 segment display arduino kodları nasıl yazılır?
sorularının detaylı cevaplarını vermiş olacağız.
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.
7 segment display ekranlar tekli olabileceği gibi yan yana birleştirilmiş 4 lü çeşitleri de vardır. 7 segment display ekranlardan tekli olanlar 1 digit 7 segment diplay, 4 lü olanlara 4 digit 7 segment display olarak isimlendirilir.
Yazılacak rakama göre bazı ledler yakılır, bazı ledler söndürülür. Aşağıdaki resimde rakamların gösterilmesi için ledlerin durumları gösterilmiştir.
7 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. Bu ikisi arasında kullanım ve kodlama açısından bazı farklılıklar bulunmaktadır.
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.
Diğer bacak bağlantılarını şu şekilde yapalım…
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.
Ortak Anot 7 Segment Display Arduino Kodları
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
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++){ SayiYaz(i); delay(1000); } } void SayiYaz(int sayi){ 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); break; case 1: digitalWrite(E,HIGH); digitalWrite(D,HIGH); digitalWrite(C,LOW); digitalWrite(B,LOW); digitalWrite(A,HIGH); digitalWrite(F,HIGH); digitalWrite(G,HIGH); break; case 2: digitalWrite(E,LOW); digitalWrite(D,LOW); digitalWrite(C,HIGH); digitalWrite(B,LOW); digitalWrite(A,LOW); digitalWrite(F,HIGH); digitalWrite(G,LOW); break; case 3: digitalWrite(E,HIGH); digitalWrite(D,LOW); digitalWrite(C,LOW); digitalWrite(B,LOW); digitalWrite(A,LOW); digitalWrite(F,HIGH); digitalWrite(G,LOW); break; case 4: digitalWrite(E,HIGH); digitalWrite(D,HIGH); digitalWrite(C,LOW); digitalWrite(B,LOW); digitalWrite(A,HIGH); digitalWrite(F,LOW); digitalWrite(G,LOW); break; case 5: digitalWrite(E,HIGH); digitalWrite(D,LOW); digitalWrite(C,LOW); digitalWrite(B,HIGH); digitalWrite(A,LOW); digitalWrite(F,LOW); digitalWrite(G,LOW); break; case 6: digitalWrite(E,LOW); digitalWrite(D,LOW); digitalWrite(C,LOW); digitalWrite(B,HIGH); digitalWrite(A,LOW); digitalWrite(F,LOW); digitalWrite(G,LOW); break; case 7: digitalWrite(E,HIGH); digitalWrite(D,HIGH); digitalWrite(C,LOW); digitalWrite(B,LOW); digitalWrite(A,LOW); digitalWrite(F,HIGH); digitalWrite(G,HIGH); break; case 8: digitalWrite(E,LOW); digitalWrite(D,LOW); digitalWrite(C,LOW); digitalWrite(B,LOW); digitalWrite(A,LOW); digitalWrite(F,LOW); digitalWrite(G,LOW); break; case 9: digitalWrite(E,HIGH); digitalWrite(D,LOW); digitalWrite(C,LOW); digitalWrite(B,LOW); digitalWrite(A,LOW); digitalWrite(F,LOW); digitalWrite(G,LOW); break; } } |
Kodları incelediğimizde;
1 2 3 4 5 |
void loop() { for(int i=0; i<=9;i++){ SayiYaz(i); delay(1000); } |
loop döngüsünde ise 0 dan başlayarak 9 a kadar sayıları 1 er arttırarak SayiYaz fonksiyonuna gönderiyoruz.
void SayiYaz(int sayi) kodu ile bir fonksiyon oluşturuyoruz. Bu fonksiyon içinde switch case döngüsü ile fonksiyona gelen sayıyı kontrol edip, sayıya göre yanması ve sönmesi gereken ledleri ayarlıyoruz.
Ortak katot 7 segment display led nedir?
Ortak katot 7 segment display, tüm ledlerin – bacaklarının ortak kullanıldığı led display çeşitidir. Bu durumda 3. ve 8. bacaklar arduino GND pinine bağlanmalıdır.
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 katot 7 segment display arduino bağlantısını aşağıdaki şemaya göre yapalım.
Ortak katot 7 segment display led ile sayıları göstermek için yanmasını istediğimiz ledin bağlı olduğu arduino pinine HIGH, sönmesini istediğimiz ledin bağlı olduğu arduino pinine LOW sinyali göndermeliyiz.
Ortak Katot 7 Segment Display Arduino Kodları
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
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şturabilirsiniz.
ÖZET: Bu yazımızda arduino ile 7 segment display ekran kullanımını inceledik.
Konu ile ilgili görüş, öneri ve düşüncelerinizi yorumlar bölümünden bize ulaştırabilirsiniz.
Yeni yazılardan anında haberdar olmak için arduinomedia facebook hesabını takip etmeyi unutmayın.
https://www.facebook.com/arduinomedia/
Diğer tüm arduino modül kullanımları ve örnek arduino projeleri için kardeş sitemizi incelemeyi unutmayın…
Bir sonraki dersimizde görüşmek dileğiyle…
teşekkürler bu proje çok işime yaradı
evet gerçekten benimde çok işime yaradı
İŞİME YARADI AMA EKSİKLİK VAR
DÜZELTİLMESİNİ İSTİYORUM