ARDUINO DERS-12 (7 Segment Display Kullanımı)
ŞEKİL 2.1
7 Segment Display'lerdeki ortak pin 7 bölmeli görüntüleyicinin tipini belirmede kullanılır. Bilindiği gibi LED'lerin bir diğer adı ışık yayan diyotlardır.Diyotlarda bilindiği üzere akımın tek yönde akmasına izin veren elemanlardır. Böylelikle LED'lerinde aydınlatılabilmeleri için besleme ve toprak bağlantılarının belirli bir yönde bağlanması gerekmektedir. Elemanın yapısındaki 7 LED'den her birinin pinleri konumsal kısımları ayrılmış şekilde bir dikdörtgen düzlemin arka alt zemininde bulunmaktadır. Konumsal olarak kısımlandırılmış 7 bölge "a" ile "g" harfleri arasındaki 7 harfle (a,b,c,d,e,f,g,) etiketlendirilir. 7 Segment Display'de LED'lerin bir uçları ortak uç olduğundan bu ucun toprak ya da besleme ucu olmasına göre 7 Segment Display'ler ortak anot ve ortak katot olmak üzere iki çeşide ayrılırlar.
Bizim elimizdeki ortak anot oldugundan ortak anotu anlatmak istiyorum;
ORTAK ANOTLU DİSPLAY
Aşağıdaki şekilde ise ortak anot 7 Segment Display'in harflendirilen kısımları ve iç yapısındaki devrenin temel bağlantısı gösterilmiştir. Ortak katot mantığıyla aynı şekilde burada da LED'lerin anot uçları birleştirilerek, 7 Segment Display'in arkasından çıkan ortak anot pinine bağlanmıştır. Yukarıdaki görüntüleme elemanı devreye bağlanırken ortak anot ucu güç kaynağının pozitif ucuna, a-g arasında harflendirilen 7 katot ucu devrenin yapısına göre ya direk olarak güç kaynağının negatif ucuna ya da 7 Segment Display sürmeye yarayan entegrelerin bacaklarına bağlanır. Burada da dikkat edilmesi gereken nokta LED'lerin yüksek güce maruz kalmamaları için ortak anot ucunu güç kaynağına ya da entegrelere bağlamadan önce, LED'lerin anot uçlarından hemen öncesine, devrenin ortak anottan uygulanan gerilim değerine göre, uygun değerde bir direnç bağlanmasıdır. Aksi taktirde görüntületicinin yapısındaki LED'ler kullanılmaz hale gelebilir.
Devredeki farklılık bu kadarken kodda ki farklılık ise şöyle arkadaşlar ben ortak anot kullandığım için yanmasını istediğim kısımları LOW yani 0 yapıyorum oysa ortak katot kullanan arkadaşlar yanmasını istediği kısımları HIGH yani 1 yapmalılar…
GEREKEN MALZEMELER
- 1x ARDUİNO UNO
- 1x BREADBOARD
- 1x 7 SEGMENT DİSPLAY
- 2x 300 OHM DİRENÇ
- JUMPER KABLO
DEVRE KODU:
int a = 6;
int b = 7;
int c = 9;
int d = 10;
int e = 11;
int f = 5;
int g = 4;
void setup()
{
int a = 6;
int b = 7;
int c = 9;
int d = 10;
int e = 11;
int f = 5;
int g = 4;
void setup()
{
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void Rakam Yaz(int rakam){
switch(rakam)
{
case 0 :
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
break;
case 1:
digitalWrite(a, HIGH);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 2:
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
break;
case 3:
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
break;
case 4:
digitalWrite(a, HIGH);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 5:
digitalWrite(a, LOW);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 6:
digitalWrite(a, LOW);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 7:
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 8:
digitalWrite(a, LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
case 9:
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
break;
}
}
void loop(){
for(int i=9; i>=0;i--)
// dilerseniz ileri sayması içinde for(int i=0; i<=9;i++)
// dilerseniz ileri sayması içinde for(int i=0; i<=9;i++)
{
RakamYaz(i);
delay(500);
}
}



Yorumlar
Yorum Gönder