0
Bu yazıyı " 2 " dakikada okuyabilirsiniz. 🙂

Bu yazıda, Arduino ile TCS3200 renk sensörünü kullanarak renkleri nasıl algılayacağınızı ve RGB (Kırmızı, Yeşil, Mavi) değerlerini nasıl okuyacağınızı inceleyeceğiz. Bu sensör, renk eşleştirme, renk sıralama veya ortam ışığı ölçümü gibi uygulamalarda kullanılabilir.

TCS3200 Renk Sensörü Hakkında

TCS3200, bir nesnenin yansıttığı veya yaydığı ışığın rengini ölçmek için tasarlanmış bir renk sensörüdür. Sensör, bir dizi filtre ve fotodiyot içerir. Filtreler, gelen ışığı kırmızı, yeşil ve mavi renk bileşenlerine ayırır ve fotodiyotlar bu bileşenlerin yoğunluğunu ölçer. Bu yoğunluk değerleri, RGB renk uzayında rengin temsil edilmesini sağlar.

Gerekli Malzemeler:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • TCS3200 renk sensörü modülü
  • Breadboard
  • Jumper kablolar

Devre Kurulumu:

  • TCS3200 Bağlantıları:
    • VCC pinini Arduino’nun 5V pinine bağlayın.
    • GND pinini Arduino’nun GND pinine bağlayın.
    • S2 ve S3 pinlerini Arduino’nun dijital pinlerine bağlayın (örneğin, pin 2 ve 3).
    • OUT pinini Arduino’nun analog pinlerinden birine bağlayın (örneğin, A0).
  • Devre Şeması:

Devre Bağlantı Tablosu:

Arduino PinleriTCS3200 Pinleriİşlev
GNDGNDToprak Bağlantısı
5VVCCGüç Kaynağı (5V)
Pin 2S2Filtre Seçimi 1
Pin 3S3Filtre Seçimi 2
A0OUTSensör Çıkışı

Kodlama:

  • Kod Yazma:
    • Aşağıdaki kodu Arduino IDE’ye yazın:
const int s2 = 2;
const int s3 = 3;
const int out = A0;

void setup() {
  // Pinleri çıkış olarak ayarlayın
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  
  // Seri iletişimi başlatın
  Serial.begin(9600);
}

void loop() {
  // Kırmızı rengi okuyun
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);
  int redValue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  // Yeşil rengi okuyun
  digitalWrite(s2, HIGH);
  digitalWrite(s3, HIGH);
  int greenValue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  // Mavi rengi okuyun
  digitalWrite(s2, LOW);
  digitalWrite(s3, HIGH);
  int blueValue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  // RGB değerlerini seri monitöre yazdırın
  Serial.print("Kirmizi: ");
  Serial.print(redValue);
  Serial.print(", Yesil: ");
  Serial.print(greenValue);
  Serial.print(", Mavi: ");
  Serial.println(blueValue);

  delay(1000); 
}

Kod Açıklaması:

  • Pin Tanımlamaları: TCS3200 sensörünün S2, S3 ve OUT pinleri ile bağlantılı Arduino pinleri tanımlanır.
  • setup() Fonksiyonu:
    • S2 ve S3 pinleri çıkış olarak ayarlanır. Bu pinler, sensörün hangi renk filtresinin aktif olacağını kontrol etmek için kullanılır.
    • Seri iletişim başlatılır.
  • loop() Fonksiyonu:
    • Renk Okuma: S2 ve S3 pinlerine farklı değerler yazarak kırmızı, yeşil ve mavi renk filtreleri sırayla seçilir. pulseIn() fonksiyonu ile her renk için sensör çıkışındaki darbe genişliği ölçülür.
    • RGB Değerlerini Yazdırma: Ölçülen RGB değerleri seri monitöre yazdırılır.

Geliştirmeler:

  • Ölçülen RGB değerlerine göre farklı eylemler gerçekleştirin (örneğin, LED’in rengini değiştirin, bir eşik değeri aşılırsa bir alarm verin).
  • Renkleri tanımak için bir algoritma uygulayın (örneğin, en yüksek RGB değerine göre rengi belirleyin).
  • Ortam ışığı seviyesini ölçmek için sensörü kullanın.

Notlar:

  • TCS3200 sensörünün farklı modelleri ve varyasyonları mevcuttur. Kodunuzda, kullandığınız sensörün özelliklerine göre ayarlamalar yapmanız gerekebilir.
  • Sensörün hassasiyeti, ortam ışığı koşullarına göre değişebilir. Kalibrasyon yapmanız gerekebilir.
  • Sensörün veri sayfasını inceleyerek daha fazla bilgi edinebilirsiniz.
Ahmet Kemal YILDIZ
Eskişehir Osmangazi Üniversitesi Bilgisayar ve Öğretim Teknolojileri Öğretmenliği mezunu bir Bilişim Teknolojileri ve Yazılım Dersi Öğretmeniyim. Bilişim Teknolojileri ve Yazılım dersi ile ilgili ders etkinlikleri, kaynak materyaller, örnek etkinlikler ve ilgi duyduğum birçok konu hakkında vakit buldukça buradan blogluyorum. :)

    21# – Arduino ile RFID Kart’a Veri Yazma

    önceki yazı

    23# – Arduino ile Gerçek Zamanlı Saat (RTC Modülü) LCD Ekran İle Birlikte Kullanımı (I2C Modülüyle)

    Sonraki Yazı

    Bu Yazılar da İlgini Çekebilir!

    Yorumlar

    Yorum yap

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Daha Arduino