Arduino Renk Algılama- TCS230 TCS3200 Renk Sensörü
TCS230 Renk Sensörü Nasıl Çalışır?
TCS230, 8 x 8'lik bir fotodiyot dizisi yardımıyla renkli ışığı algılar. Daha sonra bir Akımdan Frekansa Dönüştürücü kullanılarak, fotodiyotlardan gelen okumalar, ışık yoğunluğuyla doğru orantılı bir frekansta bir kare dalgaya dönüştürülür. Son olarak, Arduino Board'u kullanarak kare dalga çıktısını okuyabilir ve renk için sonuçları alabiliriz.
Sensöre daha yakından bakarsak, çeşitli renkleri nasıl algıladığını görebiliriz. Fotodiyotların üç farklı renk filtresi vardır. Bunlardan 16'sında kırmızı filtre var, 16'sında yeşil filtre var, 16'sında mavi filtre var ve diğer 16 fotodiyotta filtresiz temiz.
Her 16 fotodiyot paralel olarak bağlanmıştır, bu nedenle S2 ve S3 kontrol pinlerini kullanarak hangilerinin okunacağını seçebiliriz. Örneğin, kırmızı rengi tespit etmek istiyorsak, tabloya göre iki pini düşük mantık seviyesine ayarlayarak sadece 16 kırmızı filtreli fotodiyot kullanabiliriz.
Sensörde, çıkış frekansını ölçeklendirmek için kullanılan iki kontrol pini daha vardır, S0 ve S1. Frekans,% 100,% 20 veya% 2'lik üç farklı ön ayar değerine ölçeklenebilir. Bu frekans ölçekleme işlevi, sensör çıkışının çeşitli frekans sayaçları veya mikro denetleyiciler için optimize edilmesini sağlar.Artık devam etmeye ve TCS230 sensörünü Arduino kartına bağlamaya hazırız. İşte devre şemaları.
TCS230 Renk Sensörü Kaynak Kodu
Açıklama: Öncelikle sensörün bağlı olduğu pinleri tanımlamamız ve frekansı okumak için bir değişken tanımlamamız gerekiyor. Kurulum bölümünde dört kontrol pini çıkış olarak ve sensör çıkışını Arduino girişi olarak tanımlamamız gerekir. Burada frekans ölçeklendirmeyi de ayarlamamız gerekiyor, bu örnek için% 20'ye ayarlayacağım ve sonuçları Seri Monitörde görüntülemek için seri iletişimi başlatacağım.
Döngü bölümünde, kırmızı filtreli fotodiyotları okumakla başlayacağız. Bu amaçla, iki kontrol pini S2 ve S3'ü düşük mantık seviyesine ayarlayacağız. Daha sonra "pulseIn ()" işlevini kullanarak çıkış frekansını okuyacağız ve onu değişken "frekansa" koyacağız. Serial.print () işlevini kullanarak sonucu seri monitörde yazdıracağız. Aynı prosedür diğer iki renk için de geçerlidir, sadece kontrol pimlerini uygun renk için ayarlamamız gerekir.
Şimdi Seri Monitörü çalıştırırsak bazı değerler almaya başlayacağız. Bu değerler, seçilen frekans ölçeklendirmesinin yanı sıra çevredeki aydınlatmaya da bağlıdır.
Burada, sensörün veri sayfasındaki fotodiyot spektral yanıt diyagramından görüldüğü gibi, her bir fotodiyot tipinin farklı hassasiyetine bağlı olarak üç değerin farklı olduğuna dikkat edin.
Yine de sensörün önüne farklı renkler getireceğimizde değerlerin nasıl tepki vereceğini şimdi görelim. Örneğin, kırmızı rengi getirirsek, benim durumumda başlangıç değeri 70'ten 25'e düşecektir.
Şimdi, algılanan renkleri 0 ile 255 arasında değerlere sahip RGB Modeli ile temsil etmek istersek, okumaları 0 ile 255 arasındaki değerlere eşlemek veya dönüştürmek için map () işlevini kullanacağız.
70'in değeri 0'a ve 25 - 255'e eşlenecektir. Aynı prosedür diğer iki renk için de geçerlidir.
İşte bu örnek için son kaynak kodu:
Renklerin o kadar doğru olmadığını, ancak yine de basit projeler için yeterince iyi olduklarını unutmayın.
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Bu konuları arkadaşlarınız ile paylaşarak onların da bilgiye ulaşmasında yardımcı olursanız çok sevinirim.Daha eklenecek ve çalışılacak o kadar çok bilgi var ki... Sayfalarımı ziyaret ettiğiniz için Size çok teşekkür ederim. Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır. İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir. Ülkemizin çocukları ve gençlerine bu konularda Türkçe kaynak sıkıntısı çekenlere bazı materyaller sunmaktır.Arduino, Modüller ve kodlama konusunu tanıtmaktır, sevdirmektir. Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz.Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır. Varsa; bazı materyallerin üzerine eklediğimiz email ve site adresimiz sadece yayını temsilendir.Dünyada bilgi paylaşıldıkça ilerler ve birlikte öğrenmek için hevesleniriz.Türkiye'mizin gençlerinde ilgi uyandırabildi ve dikkati fen bilimlerine çekebildi isem.Ne mutlu bana.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabiliriz. İlginize teşekkür ederim.