|
8x8 dot matrix display
üzerindeki çoklu dokunmayı
algılayabilen bir projeyle
.
LED'ler(Light Emitting Diode)
ışık yaymak üzere
tasarlanmış diyotlardı,
halbuki bu projede LED'ler
sensör olarak yani giriş
elemanı olarak
kullanılmışlar.
Başka bir sitede ise
gene yukarıda bahsettiğim
projeden feyz alınarak
yapılmış birtakım
denemelerin anlatımı yer
almakta.
Bu sitede LED'lerin çift
yönlü(bi-directional) olarak
kullanımı üzerine okuduğum
yazıya göre proje LED'in 2
özelliğinden yola çıkılarak
yapılmış. Bunlardan
birincisi, LED'in aynı veya
daha büyük bir frekanstaki
başka bir LED'in ışığına
maruz kaldığında düşük
miktarda gerilim üretmesi,
diğer özellik ise LED'in
ters kutuplandığı zaman PN
jonksiyonunda yük
biriktirip, kutuplama
kesildiğinde ise biriken
yükü boşaltması. LED'in bu
özelliklerini kullanabilmek
için breadboard üzerinde bir
test devresi oluşturulmuş: 2
adet LED anot ve katotları,
PIC'in(ADC özelliği olan bir
model, örn. Pic16F877) 4
ayrı I/O pinlerine, akımı
sınırlandırmak için anotlar
uygun dirençler üzerinden,
bağlanmış ve aşağıdaki
adımlar uygulanmış. Bu
adımları kendim uygulamadım
ama bu yazılardan yola
çıkarak yukarıdaki proje
gibi bir projeyi uygun bir
vakit bulduğumda(muhtemelen
1 sene sonrası) yapmayı
düşünüyorum, o zaman projeyi
tüm ayrıntılarıyla kendi
tecrübelerime dayanarak
yazmayı düşünüyorum.
Biliyorum bu projenin
robotikle bir ilgisi yok,
aslında istenilirse bir ilgi
kurulabilir, ancak bölümüm
ve ilgi alanımdan ötürü bu
yazıyı yazma gereği duydum.
Ayrıca bu yazı yukarıdaki
projeyi gerçekleştirmek
üzere yapılan denemelerden
ilkidir ve tek başına böyle
bir projeyi yapmak için
yeterli değildir, ama bu
yolda da az da olsa bir
aşama kaydettireceğine
eminim. Tüm bu
açıklamalardan sonra
adımların neler olduğuna
bakabiliriz(kaynak
sitede):
LED'lerden biri ışık yaymak
maksadıyla kullanılırken
diğeri ise ışığı algılamak
için kullanılmış.
-
Tüm
LED'leri ileri yönde
kutuplayın, yani
anodların bağlı olduğu
pinleri lojik 1,
katodların bağlı olduğu
pinleri ise lojik 0
seviyesine çekin.
-
1. LED'i ters yönde
kutuplayın,
yani anodların bağlı
olduğu pinleri lojik 0,
katodların bağlı olduğu
pinleri ise lojik 1
seviyesine çekin. Bunu
yaparak 1. LED'in
kapasitansını lojik 1
seviyesine şarj etmiş
oluyoruz.
-
1. LED'in katodunun
bağlı olduğu pini yüksek
empedans moduna getirin
ve bu pini
mikrodenetleyicinin
ADC'sine bağlayın.
-
LED'de depolanan
gerilimi okuyabilmek
için analog veriyi
dijital veriye çevirin.
(Kaynakta yazılana göre
karanlıkta bu gerilim
3.3 V olarak, diğer
LED'in yaydığı ışık
algılayıcı olarak
kullanılan 1. LED'e bir
ayna ile tutulduğunda
ise 0.9 V olarak
okunmuş. Algılayıcı
LED'e tutulan kırmızı
lazer ise okunan
gerilimi 0 V'a indirmiş,
yani LED'in
kapasitansında biriken
yükü tamamıyla
boşaltmış.)
-
1. LED'i tekrar ileri
yönde kutuplayın, yani
katodunu tekrar lojik 0
seviyesine çekin.
-
Dizideki diğer LED'ler
için de 2'den 6'ya kadar
olan maddeleri
tekrarlayın(Bu madde
2'den fazla LED
kullanıldığında geçerli)
-
Analiz için ADC
sonuçlarını seri porttan
PC'ye gönderin.
Maddeleri olduğu gibi
aktarıyorum dedim ancak
yazının daha açık olması
için kendi cümlelerimi de
ekledim.
Daha sonra ADC örnekleme
kısmına LED'in tepki
süresini artırmak için Opamp
bağlanmış. 1 ms'lik
örnekleme süresi kullanılmış
ancak bu da LED'lerde hafif
bir titreme yapmış.
Örnekleme süresi yarıya
indirilerek titreme
engellenmiş, ancak daha
hızlı örnekleme süresi
algılayıcı LED'in parlaklığa
karşı hassasiyetini
düşürmüş. Daha sonra LED
sayısı 4'e çıkarılmış ve
algılayıcı LED'in
hassasiyetinde artış
oluşturmuş.
Denemeleri yapan kişi son
maddede belirttiğimiz ADC
sonuçlarını Visual Basic'de
yaklaşık 6 saatte yazdığı
bir programla gözlemlemiş ve
aşağıdaki sonucu almış.
|