TC230 Renk Sensörü

TC230 rengi frekannsa çeviren bir sensördür. Sensör üzerinde bulunan 8x8=64 adet fotodiyot dizisinden 16 adedi Kırmızı, 16 adedi Yeşil ve 16 adedi de Mavi filtreye sahiptir. Sensörün S2 ve S3 bacakları 1 ve 0 yapılarak hangi rengin aktif olacağı mikroişlemci tarafından seçilebilmekte, bu sayede 3 rengin ve "Clear" olarak ifade edilen toplam ışığın ayrı ayrı ölçülmesi mümkün olabilmektedir.

S2
S3
Renk
0
0
Kırmızı
0
1
Mavi
1
0
Beyaz (filtre yok)
1
1
Yeşil


Sensörün çıkış bacağı, Atmega8'in T1(PD5) bacağına, S2 ve S3 bacakları ise sırasıyla PC0 ve PC1 bacaklarına bağlanmıştır. PORTC'ye okunacak rengin değerleri yazıldıktan sonra, TCNT1 sayacı sıfırlanmakta, 10 milisaniyelik bir beklemeden sonra TCNT1 sayacı tekrar okunmakta, böyle sensörün ürettiği frekans ölçülmektedir. Frekans ölçümü için yapılan beklemenin çok hassas olmasına gerek yoktur, zira bir zaman hatası var ise bu tüm okumalar için aynı olacağından sonucu etkilemeyecektir (sensörden gelen pulse'ın frekansının mutlak değerinin bir önemi yoktur). Bu işlem Kırmızı, Yeşil ve Mavi renkler için tekrarlandığında, elde edilen değerler oranlanarak, sensöre gösterilen cismin renginin hangi oranlarda Kırmızı, Yeşil ve Maviden oluştuğu kolaylıkla hesaplanabilmektedir. Rengin hangi koyuluk derecesinde olduğunun saptanması için ise devre o anki ışık ortamında, sensörün karşısına beyaz bir kağıt konularak ilk kez çalıştırıldığında, beyaz kağıttan yansıyan ışığın değeri eeproma kaydedimektedir. İşlemcinin PD3 bacağı 0 yapılarak (şasiye bağlanarak) devre çalıştırıldığında, işlemci beyaz seviyesini belirleme modunda çalışacak ve sensörün o anda gördüğü renge göre beyaz seviyesini hesaplayıp eeproma kaydedecektir.

Sensör Özkul Elektronik web sitesinden online satın alınmıştır. Fotoğraflardan da anlaşılacağı üzere sensör SMD'dir, sensörün bulunduğu pertinaksın altına iki adet SMD parlak beyaz led yerleştirilerek, ortamdaki ışığın semsör üzerindeki etkisi asgariye indirilmiştir.

Projede sensörün belirlediği renkler, 0-255 arası değerler alacak şekilde ölçeklendirilerek RS232 üzerinden PC ye gönderilmektedir. Microsoft'un bedava sürümü olan Visual C++ Express versiyonunda yazdığım program bu renk değerlerini RS232'den okuyup ekranın bir kısmını bu renge boyamaktadır. Projede özellikle printf fonksiyonları kullanılmamış, bu sayede proje kodunun minimal düzeyde kalması sağlanmıştır.

Proje Dosyaları

Proje Dosyaları