Bu bölümde Arduino ile çalışabilen elektronik göstergeleri tanıyacağız ve bu göstergeler ile uygulamalar yapacağız. Eğitim kapsamında 7 segmentli göstergelerden ve 2x16 LCD ekranlardan yararlanacağız.
Arduino ile 7 segmentli gösterge kullanımı
Arduino projelerinde sayı bazlı çıktıların Bluetooth veya bilgisayara ihtiyaç duymadan gösterilmesi için 7 segmentli göstergeler kullanılır. Gösterge üzerinde bulunan ve ayrı ayrı kullanılabilen 7 çubuk LED bulunmaktadır. Bu yüzden bu göstergeye 7 segmentli gösterge denir. Gösterge üzerinde ondalıklı sayıların gösterimi için sağ altta nokta bulunmaktadır. Aşağıdaki resimde 7 segmentli gösterge ve göstergenin içi gösterilmiştir.
Bir sayının ekrana yazdırılması için a, b, c, d, e, f ve g harfleri ile temsil edilen çubuk LED'ler yakılır. Bu LED'lerin yanması için LED pinlerinin 5 Volt veya 0 Volta çekilmesi gerekir. LED'in yanması için 5 volta mı yoksa 0 volta mı çekilmesi gerektiği, göstergenin türüne göre değişmektedir. Anot göstergelerde ortak uç + 5 volta bağlanır ve yakılmak istenin LED'in pini 0 volt düzeyine çekilir. Katot türündeki bir göstergede ise tam tersi olarak ortak uç toprağa bağlanır ve yakılmak istenilen LED'in pini 5 Volt düzeyine çekilir.
Not: Elektronik parça satıcılarından gösterge almak istediğinizde size ilk olarak ortak anot mu yoksa ortak katot mu istediğiniz sorulur. Bu yüzden malzemeleri satın almadan önce kullanacağınız göstergenin türünü belirlemelisiniz.
LED çubuklarının fazla akım çekmemesi için ortak uçlara 220 ohm direnç takılmalıdır. Bu direnç LED'in üzerine düşen akımı düşürmektedir. Göstergenin kullanımını daha iyi anlamak için 0 ile 9 arasında sayan bir sayıcı yapalım.
Uygulama: 0-9 arasında sayan kronometre
Bu uygulamada 0 ile 9 arasında her saniye bir artan bir sayaç yapacağız. Devre bağlantılarının daha iyi anlaşılması için öncelikle yukarıda paylaşılan LED bağlantılarına tekrar bakınız. Arduino gösterge kullanımını kolaylaştırmak için hazır kütüphaneye sahiptir. Fakat öncelikle konunun daha iyi anlaşılması için kendi kodumuzu yazacağız.
Bu uygulamayı yapmak için ihtiyacınız olan malzemeler:
- 1 x Arduino
- 7 x 220 ohm direnç
- 1 x 7 segmentli gösterge
- 1 x Breadboard
/*
Arduino -> Gösterge
2 -> A
3 -> B
4 -> C
5 -> D
6 -> E
7 -> F
8 -> G
VCC -> Ortak Uç
*/
byte gosterge[10][7] = { { 0,0,0,0,0,0,1 }, // = 1
{ 1,0,0,1,1,1,1 }, // = 0
{ 0,0,1,0,0,1,0 }, // = 2
{ 0,0,0,0,1,1,0 }, // = 3
{ 1,0,0,1,1,0,0 }, // = 4
{ 0,1,0,0,1,0,0 }, // = 5
{ 0,1,0,0,0,0,0 }, // = 6
{ 0,0,0,1,1,1,1 }, // = 7
{ 0,0,0,0,0,0,0 }, // = 8
{ 0,0,0,1,1,0,0 } // = 9
};
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void sayiyiYaz(byte sayi) {
byte pin = 2;
for (int i = 0; i < 7; i++) {
digitalWrite(pin, gosterge[sayi][i]);
pin ++;
}
}
void loop() {
for (int i = 0; i < 10; i ++) {
sayiyiYaz(i);
delay(1000);
}
}
Yukarıdaki kodu ile 0-9 arasında bir sayıcı yapmış olduk. Kod biraz incelenirse, tüm sayıların gosterge isimli değişken dizisinde tutulduğu görülmektedir. Bu diziden seçilen herhangi bir sayı kümesi (satır) kendi içerisinde hangi LED'lerin yakılacağını tutmaktadır. sayiyiYaz fonksiyonu ile seçilen yazdırılmak istenin sayının satırı gosterge dizisinden alınmaktadır. Daha sonra for döngüsü yardımıyla tüm LED girişleri sayının değerine göre 5 Volt veya 0 Volt düzeyine çekilmektedir.
Eğer elinizde Anot yerine Katot türünde bir gösterge var ise, gosterge dizisindeki tüm 0'ları 1, tüm 1'leri de 0 yapmalısınız. Ayrıca göstergenin ortak ucunu da toprağa bağlamayı unutmayınız.
Loop fonksiyonu for dögüsü içerisinde 0'dan 9'a kadar saymaktadır. Döngünün her değeri sayiyiYaz fonksiyonu içerisine aktarılmaktadır. Böylece sayılar gösterge üzerinde görünmektedir. "delay" fonksiyonu ile bir saniye bekleme sağlanmıştır.
Hiç yorum yok:
Yorum Gönder