Arduino 7 Segment Display Kontrolü

Merhaba arkadaşlar.

Aslında bu dersimizin amacı fonksiyon ve dizileri daha iyi kavramaktır. Çünkü bu dersimizde yeni bir komut ya da fonksiyon öğrenmeyeceğiz, sadece Temel Arduino Dersleri kategorisinde öğrendiğimiz Diziler ve Fonksiyonları kullanarak uygulamamızı yapacağız.

Öncelikle hangi rakamda hangi çıkışlar aktif olacak onu belirleyelim.

Bunu bir tablo yardımı ile öğreneceğiz. Ben aşağıdaki gibi bir tablo oluşturdum;

 

Yukarıdaki tabloda kırmızı ile işaretlenen alan 7 segment display pinleridir, pembe ile işaretlenen alan ise rakamlardır. Yeşil ile işaretlenen alanlar ise soldaki belirtilen hangi rakamda, displayin hangi digitlerinin aktif olacağını belirtir. Rakam sütunundaki rakamı yazmak için, displayde yanacak olan harfler “1” rakamı ile, sönecek olan harfler “0” rakamı ile gösterilmiştir.

Örneğin 0 rakamı satırındaki tüm 1 ve 0 değerlerini bir binary sayı olarak farzedersek bu binary sayı binary 1111110 olacaktır. Bu binary sayının decimal karşılığı ise DEC sütununda belirtildiği üzere 126 sayısıdır.

Sıfırdan itibaren her rakamın decimal karşılığını bir byte dizisine atayalım;

Yukarıdaki kodda rakamlar dizisinin her elemanı sıfırdan başlayarak 9’a kadar bir rakamı temsil eder.

Şimdi Setup yapısı ayarlarında yukarıdaki tabloda PIN satırında yazılı tüm pinleri çıkış olarak ayarlayalım;

Şimdi gelelim asıl meseleye. Display fonksiyonumuzu yazacağız. Bu fonksiyonumuz 0 ile 9 arasında byte türü parametre alacaktır. Ardından biz foksiyona gönderdiğimiz değeri displaye yazacaktır.

Fonksiyonumuz byte türü parametre alacak ve geriye değer döndürmeyecek. O halde sözdizimi şu şekilde olacaktır;

Ardından bu fonksiyonumuzun içerisine rakamları yazdırmak için bir döngü oluşturacağız. Gelen her bir sayıyı bitlerine ayıracağız ve bitSet() fonksiyonu ile her bir bitin değerini digitalWrite() fonksiyonu ile çıkışa yazacağız.

Şimdi ise loop yapısından fonksiyonumuza, displayde göstereceğimiz rakamı parametre göndererek çağıralım;

Dilersek bir döngü ile de, displayimize 0’dan 9’a kadar olan sayılarımızı bir saniye aralıklarla yazdırabiliriz. 0’dan 9’a kadar tüm rakamları 1 saniye aralıklarla displaye yazdıran döngümüz;

Kodlarımızın tamamı şu şekilde olacak:

Kodlarımızı arduinomuza yükleyip, aşağıdaki devreyi kuralım. Devrede ortak katodlu 7 segment display kullanılmıştır. Devredeki tüm dirençler 330R değerindedir.

Devreyi çalıştırınca 0-9 arası rakamların 1 saniye aralıklarla displaye yazdırdığını görürüz.

Arduino Seven Segment Display

 

Yorum Yap