Arduino
|
Rakamları 7 Segment Display Elemanıyla Görüntüleyen Uygulama
|
|
0 ile 9 arasındaki sayılara temel rakamlar denir. Bu rakamların 7 segment display elemanında gösterilmesi için gerekli olan devreyi ve bu devrenin çalışması için gerekli olan kodları düzenleyelim.
Gerekli Devre Elemanları
• 1 adet mikrodenetleyici kart
• 1 adet breadboard
• 1 adet 220Ω (kırmızı, kırmızı, kahverengi, altın rengi) direnç
• 1 adet ortak katot display
• Bağlantı kabloları
Adım 1: Aşağıda ortak katot display uygulamasının devresi verilmiştir. Bu devrede ortak katot display kullanılmıştır.
• a, b, c, d, e, f, g bağlantı uçları sırasıyla mikrodenetleyici kartın D2, D3, D4, D5, D6, D7, D8 portlarına bağlanmıştır.
• Display ortak ucu ise 220Ω dirençle mikrodenetleyici kartın GND pinine bağlanmıştır.

Adım 2: Ortak katot display uygulamasının aşağıdaki kodları incelendiğinde;
• Her bir sayı değerini display ekranında gösterebilmek için bir fonksiyon tanımlanması gerekir.
Fonksiyon tanımlama aşağıda gösterilmiştir.
void : fonksiyon veri tipi
sifir : fonksiyon adı
{komut veya komutla} süslü parantez içinde komutlar yazılacak
Fonksiyon eğer değer döndürülmeyecekse veri tipi olarak void kullanılır.
• Display ekranında her sayının gösterimi için oluşturulan fonksiyonlar void loop() ana fonksiyonu içinde çağrılır.
• Bu şekilde 1 saniye aralıklarla 0’dan 9’a kadar yukarı doğru sayan bir sayıcı elde edilmiş olur.
Adım 3: Ortak katot display uygulamasının program kodları aşağıdaki gibidir.
void setup(){
for (int i=2;i<=8;i++) pinMode(i, OUTPUT);
}
void loop(){
sifir(); delay(1000);
bir(); delay(1000);
iki(); delay(1000);
uc(); delay(1000);
dort(); delay(1000);
bes(); delay(1000);
alti(); delay(1000);
yedi(); delay(1000);
sekiz(); delay(1000);
dokuz(); delay(1000);
}
void sifir() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 1); //e
digitalWrite(7, 1); //f
digitalWrite(8, 0); //g
}
void bir() {
digitalWrite(2, 0); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 0); //d
digitalWrite(6, 0); //e
digitalWrite(7, 0); //f
digitalWrite(8, 0); //g
}
void iki() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 0); //c
digitalWrite(5, 1); //d
digitalWrite(6, 1); //e
digitalWrite(7, 0); //f
digitalWrite(8, 1); //g
}
void uc() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 0); //e
digitalWrite(7, 0); //f
digitalWrite(8, 1); //g
}
void dort() {
digitalWrite(2, 0); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 0); //d
digitalWrite(6, 0); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
void bes() {
digitalWrite(2, 1); //a
digitalWrite(3, 0); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 0); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
void alti() {
digitalWrite(2, 1); //a
digitalWrite(3, 0); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 1); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
void yedi() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 0); //d
digitalWrite(6, 0); //e
digitalWrite(7, 0); //f
digitalWrite(8, 0); //g
}
void sekiz() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 1); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
void dokuz() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 0); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
|
|