Merhaba arkadaşlar, bugün sizlerle Seri Ekran üzerinden ortak katot 7 Segment Display kullanacağız.


Malzeme Listesi:


Ortak katot, kullanılan nesneye tek bir yerden eksi kutbunun verilmesidir. Çıkış pinleri ise artı kutba bağlanır. 7 Segment Display’lerin ortak anot ya da ortak katot olduğunu anlamanın kısa yolu yüzey renklerine bakmaktır. Eğer yüzey rengi siyah ise ortak katot, gri ise ortak anot olmaktadır. Ortak anot ve ortak katotun yazılımdaki tek farkı; ortak anotta çalışmasını istediğimiz lede eksi kutup vermemiz gerekirken, ortak katotta artı kutup vermemiz gerekir.

Kodumuza geçmek için önce bağlantıları aşağıdaki gibi yapalım.

Kodumuza geçelim.


int ust = 2; //A
int solust = 3; //F
int sagust = 4; //B
int orta = 5; //G
int solalt = 6; //E
int sagalt = 7; //C
int alt = 8; //D
int nokta = 9; //DP
void setup()
{
Serial.begin(9600);
pinMode(ust ,OUTPUT);
pinMode(solust ,OUTPUT);
pinMode(sagust ,OUTPUT);
pinMode(orta ,OUTPUT);
pinMode(solalt ,OUTPUT);
pinMode(sagalt ,OUTPUT);
pinMode(alt ,OUTPUT);
pinMode(nokta ,OUTPUT);
}
void loop()
{
char alinan = 0;
if (Serial.available() > 0)
{
alinan = Serial.read();
gosterge(alinan);
}
}
void gosterge(char veri)
{
if (veri == '1')
{
Serial.println("1");
digitalWrite(ust, LOW);
digitalWrite(solust, LOW);
digitalWrite(sagust, HIGH);
digitalWrite(orta, LOW);
digitalWrite(solalt, LOW);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, LOW);
digitalWrite(nokta, LOW);
}
else if (veri == '2')
{
Serial.println("2");
digitalWrite(ust, HIGH);
digitalWrite(solust, LOW);
digitalWrite(sagust, HIGH);
digitalWrite(orta, HIGH);
digitalWrite(solalt, HIGH);
digitalWrite(sagalt, LOW);
digitalWrite(alt, HIGH);
digitalWrite(nokta, LOW);
}
else if (veri == '3')
{
Serial.println("3");
digitalWrite(ust, HIGH);
digitalWrite(solust, LOW);
digitalWrite(sagust, HIGH);
digitalWrite(orta, HIGH);
digitalWrite(solalt, LOW);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, HIGH);
digitalWrite(nokta, LOW);
}
else if (veri == '4')
{
Serial.println("4");
digitalWrite(ust, LOW);
digitalWrite(solust, HIGH);
digitalWrite(sagust, HIGH);
digitalWrite(orta, HIGH);
digitalWrite(solalt, LOW);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, LOW);
digitalWrite(nokta, LOW);
}
else if (veri == '5')
{
Serial.println("5");
digitalWrite(ust, HIGH);
digitalWrite(solust, HIGH);
digitalWrite(sagust, LOW);
digitalWrite(orta, HIGH);
digitalWrite(solalt, LOW);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, HIGH);
digitalWrite(nokta, LOW);
}
else if (veri == '6')
{
Serial.println("6");
digitalWrite(ust, HIGH);
digitalWrite(solust, HIGH);
digitalWrite(sagust, LOW);
digitalWrite(orta, HIGH);
digitalWrite(solalt, HIGH);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, HIGH);
digitalWrite(nokta, LOW);
}
else if (veri == '7')
{
Serial.println("7");
digitalWrite(ust, HIGH);
digitalWrite(solust, LOW);
digitalWrite(sagust, HIGH);
digitalWrite(orta, LOW);
digitalWrite(solalt, LOW);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, LOW);
digitalWrite(nokta, LOW);
}
else if (veri == '8')
{
Serial.println("8");
digitalWrite(ust, HIGH);
digitalWrite(solust, HIGH);
digitalWrite(sagust, HIGH);
digitalWrite(orta, HIGH);
digitalWrite(solalt, HIGH);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, HIGH);
digitalWrite(nokta, LOW);
}
else if (veri == '9')
{
Serial.println("9");
digitalWrite(ust, HIGH);
digitalWrite(solust, HIGH);
digitalWrite(sagust, HIGH);
digitalWrite(orta, HIGH);
digitalWrite(solalt, LOW);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, HIGH);
digitalWrite(nokta, LOW);
}
else if (veri == '0')
{
Serial.println("0");
digitalWrite(ust, HIGH);
digitalWrite(solust, HIGH);
digitalWrite(sagust, HIGH);
digitalWrite(orta, LOW);
digitalWrite(solalt, HIGH);
digitalWrite(sagalt, HIGH);
digitalWrite(alt, HIGH);
digitalWrite(nokta, LOW);
}
}

Öncelikle Arduino’ya bağladımız pinlerin 7 Segment Display’de hangi lede karşılık geldiğini tanıtıyoruz.

Daha sonra bütün pinlerimizi çıkış olarak tanıtıyoruz ve seri haberleşmeyi 9600 Baudrate değerinde başlatıyoruz.

void loop fonksiyonunun içinde alinan adlı bir char oluşturduk ve seri haberleşmeye alinan değerini okuması için komut verdik.

Yeni bir fonksiyon oluşturduk ve adını gosterge koyduk. gosterge fonkisyonunun içindeki veri tipi char olduğu için gosterge fonksiyonunu tanımlarken veri adındaki değişkenin tipi char olmalı. Bu yüzden gosterge fonksiyonunu tanımlarken parantez içine char veri yazıyoruz ve alinan değerini veri değerine dönüştürüyoruz. Böylece seri ekrana girilen değerler void gosterge kısmında belirtilen dijital durumlardaki karşılığını uygulayarak 7 Segment Display’e sayıyı yazdıracaktır.

Ayrıca seri ekranda yukarıdaki gibi hangi değeri girdiğimiz ve 7 Segment Display’de hangi değerin gösterildiği yazdırılacaktır.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz