Herkese merhaba , bu yazımızda 7 segment ile arduino kullanımına değineceğiz. Keyifli okumalar…

Seven Segment Display Nedir?

İçerisinde 7 adet LED bulunan  ve 0 ile 9 arasındaki rakamları üzerinde görüntüleyebilen sayısal gösterge elemanıdır.    7 segment display;  klima,  duvar saati,  sıcaklık göstergesi gibi birçok alanda kullanılır.

Göstergeler genellikle 2 çeşittir.

can

Ledlerin anotları ortaksa ortak anot, katotları ortaksa ortak katot olarak isimlendirilir.

Biz uygulamamızda ortak katot kullanacağımız için ortak katot bağlantısını GND ucuna bağlarken her bir segmente ait ledlerin anotlarını dijital çıkışlara bağlayacağız. ortak anot kullanıyorsanız tam tersi şekilde bağlantıları yapmalısınız. Projemiz katot bağlantılı olacağından yanacak olan sagmentlere 1, diğerlerine ise 0 uygulayacağız.

final3

Kullanacağımız Malzemeler

1x 7 segment display

pr_01_74

Arduino Uno R3

orjinal-arduino-uno-r3-yeni-versiyon-1064-47-b

Breadboard

bread

 1x 220 ohm direnç

251641916_tn50_0

jumper kablolar

91529-200mm-f-f-40-pin-jumper-wire-pic01-1200x630w

DEVRE ŞEMAMIZ

segmentdis

ARDUINO KODUMUZ  

#define segA 2//A segmentinin bağlantısı:PIN2
#define segB 3//B segmentinin bağlantısı: PIN3
#define segC 4// C segmentinin bağlantısı: PIN4
#define segD 5// Dsegmentinin bağlantısı: PIN5
#define segE 6// E segmentinin bağlantısı: PIN6
#define segF 7// F segmentinin bağlantısı:PIN7
#define segG 8// G segmentinin bağlantısı: PIN8

int SAYI=0;
void setup()
{
for (int i=0;i<9;i++)
{
pinMode(i, OUTPUT);// 2-8'e kadar olan tüm pinleri çıkış olarak aldık
}
}

void loop()
{
switch (SAYI)
{

case 0://tamsayı değeri 0 olduğunda segmentte "0" göster
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, LOW);
break;

case 1://tamsayı değeri 1 olduğunda segmentte "1" göster
digitalWrite(segA, LOW);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
break;

case 2://tamsayı değeri 2 olduğunda segmentte "2" göster
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, LOW);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, LOW);
digitalWrite(segG, HIGH);
break;

case 3:// tamsayı değeri 3 olduğunda segmentte "3" göster
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, HIGH);
break;

case 4:// tamsayı değeri 4 olduğunda segmentte "4" göster
digitalWrite(segA, LOW);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;

case 5:// tamsayı değeri 5 olduğunda segmentte "5" göster
digitalWrite(segA, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;

case 6:// tamsayı değeri 6 olduğunda segmentte "6" göster
digitalWrite(segA, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;

case 7:// tamsayı değeri 7 olduğunda segmentte "7" göster
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
break;

case 8:// tamsayı değeri 8 olduğunda segmentte "8" göster
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;

case 9:// tamsayı değeri 9 olduğunda segmentte göster
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;

break;
}
if (SAYI<10)
{
SAYI++;
delay(1000);// her saniye için tam sayıyı arttır
}
if (SAYI=10)
{
SAYI=0;// eğer tamsayı değeri 10 a eşit ise, sayıyı 0 a resetle
delay(1000);
}
}

Yeni bir projede, yeni bir bakışla tekrardan sizlerle buluşmak ümidiyle ? Şimdilik, Hoşçakalın!

Print Friendly, PDF & Email
Facebook Sayfamizdan Bizleri Takip Edebilirsiniz