TCS3200, kırmızı, yeşil, mavi ve filtresiz fotodiyotlardan oluşan bir diziyle cisimden yansıyan ışığı ölçen ve ışık şiddetiyle orantılı frekansta kare dalga çıkışı veren bir renk sensörüdür. S2 ve S3 pinleriyle hangi renk filtresinin okunacağı, S0 ve S1 pinleriyle çıkış frekans ölçeği seçilir; Arduino çıkış darbesinin süresini pulseIn() ile ölçer. Doğru sonuç için sensör beyaz ve siyah yüzeylerde kalibre edilir ve ortam ışığından korunur. TCS34725 ise I2C ile çalışan daha hassas bir alternatiftir.
Renklerine göre şeker ya da boncuk ayıran bir makine, renk tanıyan bir robot ya da bir boya örneğinin rengini okuyan bir cihaz... Bu projelerin temelinde bir renk sensörü bulunur. Bu rehberde en yaygın renk sensörü TCS3200'ün nasıl çalıştığını, Arduino ile bağlantısını ve doğru kalibrasyonu anlatıyoruz.
TCS3200 nasıl çalışır?
TCS3200'ün içinde, bir kısmının üzerinde kırmızı, bir kısmının üzerinde yeşil ve mavi filtre bulunan, bir kısmı ise filtresiz olan küçük fotodiyotlardan oluşan bir dizi vardır. Seçilen filtreli fotodiyotların aldığı ışık bir akım-frekans dönüştürücüyle kare dalgaya çevrilir: ışık ne kadar şiddetliyse çıkış frekansı o kadar yüksektir. Bir cisim önce kırmızı, sonra yeşil, sonra mavi filtreyle okunur ve üç değerin oranından rengi belirlenir. Modüllerde cismi aydınlatan beyaz LED'ler bulunur.
TCS3200 pinleri
| Pin | Görevi |
|---|---|
| S0, S1 | Çıkış frekansı ölçeği (%2, %20, %100 ya da kapalı) |
| S2, S3 | Okunacak filtre: kırmızı, mavi, filtresiz ya da yeşil |
| OUT | Işık şiddetiyle orantılı frekansta kare dalga |
| OE | Çıkışı etkinleştirme (LOW = etkin) |
| VCC, GND | Besleme |
S2/S3 kombinasyonları: LOW/LOW kırmızı, LOW/HIGH mavi, HIGH/LOW filtresiz, HIGH/HIGH yeşil. S0/S1'in HIGH/LOW yapılması %20 ölçek seçer; Arduino ile en çok kullanılan ayardır.
TCS3200 Arduino'ya nasıl bağlanır?
- VCC'yi 5V'a, GND'yi GND'ye bağlayın; OE varsa GND'ye bağlayın.
- S0 → D4, S1 → D5, S2 → D6, S3 → D7, OUT → D8.
- Kodda S0'ı HIGH, S1'i LOW yaparak %20 frekans ölçeğini seçin.
- Her renk için S2 ve S3'ü ayarlayıp pulseIn(8, LOW) ile çıkış darbesinin süresini ölçün. Darbe süresi kısa ise o renk güçlüdür (frekans yüksek).
Örnek sensörler: TCS3200 renk sensörü, TCS3200 renk sensörü kartı ve ortam ışığını engelleyen yuvalı model sensör yuvalı TCS3200.
Renk sensörü adım adım nasıl kalibre edilir?
- Sabit mesafe: Sensörü cisimden sabit bir mesafede (genellikle 1-3 cm) tutacak bir yuva ya da tutucu kullanın; mesafe değişirse değerler de değişir.
- Ortam ışığını engelleyin: Sensörün etrafını siyah bir boru ya da kutuyla kapatın; güneş ve tavan ışığı ölçümü bozar.
- Beyaz ölçüm: Beyaz bir kâğıdı okuyun ve her renk için en kısa darbe sürelerini (en parlak değerleri) kaydedin.
- Siyah ölçüm: Siyah bir yüzeyi okuyun ve her renk için en uzun darbe sürelerini kaydedin.
- Ölçekleme: Her ölçümü map() fonksiyonuyla siyah-beyaz aralığına göre 0-255 değerine çevirin; böylece RGB değerleri elde edilir.
- Renkleri tanımlayın: Ayırt etmek istediğiniz her rengin RGB değerlerini kaydedin; okunan değerin hangi kayıtlı renge en yakın olduğunu hesaplayın.
Ölçeklemenin mantığını potansiyometre ve analog okuma rehberimizde anlattık.
TCS3200 ve TCS34725 farkı
| Özellik | TCS3200 | TCS34725 |
|---|---|---|
| Çıkış | Frekans (darbe) | Dijital, I2C |
| Kullanılan pin | 5 dijital pin | 2 pin (SDA, SCL) |
| Kızılötesi filtre | Yok | Var (daha doğru renk) |
| Çözünürlük | Ölçüm süresine bağlı | 16 bit |
| Kullanım kolaylığı | Kalibrasyon önemli | Kütüphaneyle kolay |
Daha hassas ve kolay kullanım için TCS34725 RGB renk algılayıcı ya da yuvalı TCS34725 tercih edilebilir; bağlantı için I2C rehberimize bakın.
Renk ayırma makinesi fikri
Bir servo, cismi sensörün önüne getirir; renk okunduktan sonra ikinci bir servo, kanalı ilgili kutuya yönlendirir. Bu proje renk sensörü, servo kontrolü ve karar verme mantığını bir arada öğretir; servo kullanımı için servo motor rehberimize bakın.
Sık sorulan sorular
Renk sensörü neden yanlış renk okuyor?
Ortam ışığı, sensörle cisim arasındaki mesafenin değişmesi, parlak yüzeylerdeki yansımalar ve kalibrasyon yapılmaması en sık nedenlerdir. Sensörü kapalı bir yuvaya alıp sabit mesafede kalibre edin.
TCS3200 ne kadar uzaktan okur?
En iyi sonuç birkaç santimetre mesafede alınır. Mesafe arttıkça yansıyan ışık azalır ve ortam ışığının etkisi büyür.
Renk sensörü ile RGB kodu elde edilir mi?
Kalibrasyondan sonra yaklaşık RGB değerleri elde edilir. Ancak sensörün ölçtüğü renk, ışık kaynağına ve yüzeyin yapısına bağlı olduğu için ekrandaki renk kodlarıyla birebir aynı olmayabilir.
Renk sensörü karanlıkta çalışır mı?
Modül üzerindeki beyaz LED'ler cismi aydınlattığı için karanlıkta çalışır; hatta ortam ışığı engellendiğinde daha tutarlı sonuç verir.
TCS3200 3,3V ile çalışır mı?
TCS3200 geniş bir besleme aralığında çalışabilir; modülün LED'leri ve kartın tasarımı için belgesi kontrol edilmelidir. ESP32 gibi 3,3V kartlarla kullanılırken çıkış seviyesinin karta uygun olması gerekir.
Özet
- TCS3200, renk filtreli fotodiyotlarla ışığı frekansa çevirir.
- S2/S3 filtreyi, S0/S1 frekans ölçeğini seçer.
- Arduino çıkışı pulseIn() ile ölçer; kısa darbe güçlü renk demektir.
- Beyaz ve siyah kalibrasyon, sabit mesafe ve ortam ışığından koruma şarttır.
- TCS34725, I2C ile çalışan daha hassas bir alternatiftir.
