Herkese merhabalar!

Bu proje yazısında sizlerle beraber TCS3200 renk sensörünü yakından tanıyacağız ve LCD display ile beraber kullanarak bir proje gerçekleştireceğiz. Projeye geçmeden önce TCS3200’ün iç yapısına ve çalışma mantığına bir göz atalım.

TCS3200 Nasıl Çalışır?

TCS3200, oluşturduğu verileri fotodiyotlar ve bir akım-frekans dönüştürücüsü yardımıyla sağlıyor diyebiliriz. Sensör, üzerine gelen ışığın şiddetiyle orantılı bir frekansta kare dalga üretiyor, biz de bu kare dalgayı kullanarak verileri alıyor olacağız. Kodumuzda pulseIn() fonksiyonunu kullanarak gelen dalgadaki HIGH veya LOW sürelerini elde edeceğiz.

Peki sensör renkleri nasıl ayırt ediyor? Burada devreye fotodiyotların üzerinde bulunan filtreler giriyor. Sensörün yapısındaki 8×8 diziminde bulunan fotodiyotların 16’sı kırmızı, 16’sı mavi, 16’sı yeşil filtreye sahip, geriye kalan 16 fotodiyotta ise filtre bulunmuyor. Bu fotodiyotları kontrol etmek için sensörün üzerindeki S2 ve S3 pinlerini kullanacağız. Örneğin; kırmızı rengi belirlemek için S2 ve S3’ü lojik-0 konumuna getirerek işlem yapmamız gerekecek. Bu sayede sensörü kullandığımız yerdeki kırmızı rengin yoğunluğu hakkında bilgi sahibi olmuş olacağız. Aynı işlemi aşağıdaki tabloya göre yeşil ve mavi renkleri için de uygulayacağız. Bu sayede RGB(Kırmızı-Yeşil-Mavi) değerleri elde etmiş olacağız.

 

Sensörün üzerindeki S0 ve S1 pinleri de çıkış frekansını ölçeklendirmeye yarıyor. Biz bu ölçeği S0 “HIGH” ve S1” LOW” olacak şekilde %20 düzeyinde tutacağız. OUT pini ile de verileri alacağız. Tüm bu pinleri Arduino’nun dijital giriş-çıkışlarına bağlayarak kullanacağız.

Sensörün üzerinde 4 adet de beyaz led var. Bu ledler daha sağlıklı veri elde etmemiz için konmuş yardımcı elemanlar diyebiliriz. TCS3200 sensörü ile yuvalı ve yuvasız olarak karşılaşabilirsiniz. Bu sensörler arasında kullanımı açısından herhangi bir fark yoktur. Yuvalı olan sensörde çip, dış ortamdan daha az etkilenmesi için bir yuvanın içinde bulunur.


TCS3200 ile Renk Algılayıcısı

TCS3200 ile aldığımız değerleri 2×16 LCD ekran üzerinden göreceğimiz bir proje gerçekleştireceğiz. Aynı zamanda belirlediğimiz değer aralıklarına göre belli renkleri algılayarak LCD ekrandan okuyabileceğiz. Eğer 2×16 LCD display kullanımını bilmiyorsanız şu yazımıza göz atabilirsiniz.

Gerekli Malzemeler 

Devre Şeması

Kalibrasyon

Projede kullandığımız TCS3200 sensöründen alacağımız değerler birçok etkene göre değişiklik gösterebilir. Bu etkenler ortamın ışık yoğunluğu, sensörün yuvalı olup olmaması olabilir. Bu yüzden bizim kullandığımız kodu direkt olarak projenize uygulamak istediğinizde farklı sonuçlar alabilirsiniz. Bu oldukça normal bir durum, o yüzden bu aşamada yalnızca sensör değerlerini serial monitörde görebileceğimiz bir kod kullanacağız. Bu sayede sensörümüzden aldığımız çıktıları görmüş olacağız.

Ben bu kodu kullanarak ilk testimi beyaz kağıt üzerinde yaptım. Sağladığımız değerler düştükçe renk yoğunluğu artıyor demektir. Beyaz kağıttan aldığımız veriler beklediğimiz gibi 3 renk için de düşük çıktı. Aynı testi hızlıca ana renkler öncelikli olmak üzere bazı ara renkler için de uyguladım. Bu testleri farklı renkteki kağıtları kullanarak yaptım. Testlerin sonucunda sensörün renkler üzerinde hangi değerlerde tepkiler verdiğini görmüş olduk.

Bu gözlemleri yapmamızın amacı kodumuzu yazarken renkler için bir eşik değer belirlemekti.  Hangi değerler ne ifade ediyor bunu görmüş olduk. Örneğin kırmızı renk için eşik değerini 100 olarak belirlediğimizi düşünelim. Kodumuzu yazarken bu değeri göz önünde bulundurarak 100’ün altında değer aldığımız nesnelerde kırmızı yoğunluğunun yüksek seviyelerde olduğunu çıkarabiliriz. Yani bu gözlemler, elimizdeki değerler ile ilgili fikir sahibi olmamızı sağlamış olacak. Tüm bu işlemler için aşağıdaki kodu kullanmamız gerekiyor.

//maker.robotistan.com

#define s0 8 //Bağladığımız pinlere göre tanımlamalarımızı yapıyoruz
#define s1 9
#define s2 10
#define s3 11
#define sensorOut 12


int K, Y, M = 0; //3 ana renk için değişken tanımlıyoruz

void setup() {
  pinMode(s0, OUTPUT);//S0, S1, S2 ve S3 pinlerini OUTPUT olarak tanımlıyoruz
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  pinMode(sensorOut, INPUT);//OUT pinini INPUT olarak tanımlıyoruz

  digitalWrite(s1,LOW);  //Frekans ölçeğimizi %20 olarak tanımlıyoruz
  digitalWrite(s0,HIGH);  
  Serial.begin(9600);

}

void loop() {
  

  digitalWrite(s2, LOW); //Kırmızıyı filtrelemek için
  digitalWrite(s3, LOW);
  K = pulseIn(sensorOut, LOW);//OUT pini üzerindeki LOW süresini okur
  Serial.print("Kırmızı= ");
  Serial.print(K); //Kırmızı için aldığımız değeri serial monitöre yazdır
  Serial.print("  ");
  delay(50);//50 milisaniye bekle
 
  digitalWrite(s2, HIGH); //Yeşili filtrelemek için
  digitalWrite(s3, HIGH);
  Y = pulseIn(sensorOut, LOW); //OUT pini üzerindeki LOW süresini okur
  Serial.print("Yeşil= ");
  Serial.print(Y); //Yeşil için aldığımız değeri serial monitöre yazdır
  Serial.print("   ");
  delay(50);//50 milisaniye bekle
 
  digitalWrite(s2, LOW); //Maviyi filtrelemek için
  digitalWrite(s3, HIGH);
  M = pulseIn(sensorOut, LOW);//OUT pini üzerindeki LOW süresini okur
  Serial.print("Mavi= ");
  Serial.print(M);//Mavi için aldığımız değeri serial monitöre yazdır
  Serial.println();
  delay(50);//50 milisaniye bekle
}

Proje Kodu

Şimdi proje için ihtiyacımız olan koda geçiyoruz. Bu kodda basit bir şekilde aldığımız değerleri LCD ekrana yazdıracağız. Belli kriterlere uyan renklerimizi “Algılanan Renk” şeklinde LCD ekranımızda göreceğiz. Hem değerleri hem de algılanan rengi 2×16’lık bir ekranda görmemiz mümkün değil. Bu yüzden ekranda sırasıyla değerleri ve ardından bu değerlerin sonucunda ortaya çıkan rengi okuyacağız. Ara renkleri belirlerken aşağıdaki renk diyagramından yararlandım.

Algılanan rengi belirlerken kullandığımız değerleri kendi sensörünüzden aldığınız değerlere göre değiştirin. Aksi halde doğru değerleri okuyamayabilirsiniz.

//maker.robotistan.com

#include <LiquidCrystal.h> //LCD kütüphanesini kodumuza dahil ediyoruz

#define s0 8 //Bağladığımız pinlere göre tanımlamalarımızı yapıyoruz
#define s1 9
#define s2 10
#define s3 11
#define sensorOut 12

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);//LCD pinlerini tanımlıyoruz
int K, Y, M = 0; //3 ana renk için değişken tanımlıyoruz

void setup() {

  lcd.begin(16,2);
  pinMode(s0, OUTPUT);//S0, S1, S2 ve S3 pinlerini OUTPUT olarak tanımlıyoruz
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  pinMode(sensorOut, INPUT);//OUT pinini INPUT olarak tanımlıyoruz

  digitalWrite(s1,LOW);  //Frekans ölçeğimizi %20 olarak tanımlıyoruz
  digitalWrite(s0,HIGH);  
  Serial.begin(9600);

}

void loop() {
  
  lcd.print("K=");
  digitalWrite(s2, LOW); //Kırmızıyı filtrele
  digitalWrite(s3, LOW);
  K = pulseIn(sensorOut, LOW); //OUT pini üzerindeki LOW süresini okur
  Serial.print("Kırmızı= ");
  Serial.print(K); //Kırmızı için aldığımız değeri serial monitöre yazdır
  Serial.print("  ");
  lcd.print(K); //Kırmızı için aldığımız değeri LCD ekrana yazdır
  lcd.print("  ");
  lcd.setCursor(7, 0); //İmleci 7. sütuna al
  delay(50); //50 milisaniye bekle
 
  lcd.print("Y=");
  digitalWrite(s2, HIGH); //Yeşili filtrele
  digitalWrite(s3, HIGH);
  Y = pulseIn(sensorOut, LOW); //OUT pini üzerindeki LOW süresini okur
  Serial.print("Yeşil= ");
  Serial.print(Y); //Yeşil için aldığımız değeri serial monitöre yazdır
  Serial.print("   ");
  lcd.print(Y); //Yeşil için aldığımız değeri LCD ekrana yazdır
  delay(50);

  lcd.setCursor(4, 1); //İmleci 2. satır 4. sütuna taşı
  lcd.print("M=");
  digitalWrite(s2, LOW); //Maviyi filtrele
  digitalWrite(s3, HIGH);
  M = pulseIn(sensorOut, LOW); //OUT pini üzerindeki LOW süresini okur
  Serial.print("Mavi= "); 
  Serial.print(M); //Mavi için aldığımız değeri serial monitöre yazdır
  Serial.println();
  lcd.print(M); //Mavi için aldığımız değeri LCD ekrana yazdır
  lcd.setCursor(0, 0);
  delay(1000); //1000 milisaniye bekle
  //Renk değerlerini 1 saniye boyunca ekranda göreceğiz
  
  lcd.clear(); //Ekranı temizle
  delay(150); //150 milisaniye bekle


  lcd.setCursor(1,0); //İmleci 1. sütuna al
  lcd.print("Algilanan Renk");
  lcd.setCursor(2,1); //İmleci 2. satır 2. sütuna al
  //Kalibrasyon bölümünde elde ettiğimiz değerleri bu kısımda kullanacağız
  if(K<70 && M<70 && Y<70) //Eğer tüm renklerin yoğunluğu yüksekse: Beyaz
  {
  Serial.print("Renk = Beyaz   ");
  lcd.print("Beyaz");  
  }
  else if(K<100 && Y<M && abs(K-Y)<20)
  //Kırmızı yoğunluğu yüksek ve yeşille arasındaki değer 20'den azsa: Sarı
  {
  Serial.print("Renk = Sarı   ");
  lcd.print("Sari");
  }
  else if(K<100 && M<Y && abs(M-K)<20)
  //Kırmızı yoğunluğu yüksek ve mavi ile arasındaki değer 20'den azsa: Magenta
  {
  Serial.print("Renk = Magenta   ");
  lcd.print("Magenta");
  }
  else if(Y<130 && Y<M && Y<K)
  //Yeşil yoğunluğu belli bir seviyenin üstünde ve kırmızı-maviden daha yoğunsa: Yeşil
  {
  Serial.print("Renk = Yeşil   ");
  lcd.print("Yesil");
  }
  else if(M<100 && M<Y && M<K)
  //Mavi yoğunluğu belli bir seviyenin üstünde ve yeşil-kırmızıdan daha yoğunsa: Mavi
  {
  Serial.print("Renk = Mavi   ");
  lcd.print("Mavi");
  }
  else if(K<100 && K<Y && K<M)
  //Kırmızı yoğunluğu belli bir seviyenin üstünde ve yeşil-maviden daha yoğunsa: Kırmızı
  {
  Serial.print("Renk = Kırmızı   ");
  lcd.print("Kirmizi");
  }
  else
  {
  Serial.print("Renk algılanamadı   ");//Belirlediğimiz kıstaslara uymayan diğer renkler
  lcd.print("---");
  }
  
  Serial.println(); //Serial monitörde bir satır aşağı geç
  delay(1000);//1000 milisaniye bekle
  lcd.clear();//LCD ekranı temizle
  delay(150);
  
}

Hadi deneyelim!

Kod aşamasıyla beraber projemizi bitirmiş olduk. Başka projelerde buluşmak dileğiyle, hoşça kalın!

68 Yorumlar

    • Merhaba, bağlantıları doğru şekilde yaptıktan ve sensörün verdiği değerleri test ettikten sonra herhangi bir sorun olacağını sanmıyorum. Bir problemle karşılaşırsanız buraya yazabilirsiniz, yardımcı olmaya çalışırım her zaman. 🙂

    • Hayır, yazıdaki kısımları adım adım gerçekleştirdikten sonra sıkıntı çıkmayacaktır. Yine de bir problem yaşarsanız yazabilirsiniz.

    • Kalibrasyon bölümünde bahsedildiği gibi kendi sensör değerlerinize göre koddaki değerlerde oynama yaparsanız sorun çözülecektir.

  1. Merhaba aldığım değerler çok düzensiz beyaz kağıtta bir okuttuğumda 10000 10000 10000 değerlerini aldığımda diğer okuttuğumda 8000 lerde sonrakinde 15000 lerde geziyor. bu dalgalanmayı nasıl azaltabilirim.

    • Merhaba, projeyi yaparken aynı renkteki farklı ortamlarda okuma sırasında bu dalgalanmalarla ben de karşılaştım. Kullandığımız sensör en ufak değişimden bile etkilenebiliyor, bu da aynı renkte görünen cisimlerden farklı değerler okumamıza sebep oluyor. Bu yüzden tüm testleri aynı ortamda, özdeş kağıtlar üzerinde yaptım. Okuma sırasında sensörü tuttuğunuz mesafeyi de sabit tutmaya çalışın.
      Ayrıca sensör değerleriniz yüksek çıktığı için kodda bu değerleri 100’e bölerek çalışırsanız işinizi kolaylaştıracaktır.

      • 100 e bölsem bile veriler çok dengesizdi. çok büyük dalgalanmalar vardı. sensör üzerindeki GND bağlantısını kestiğimde tüm veriler daha stabil bir hale geldi. Nedenini bilmiyorum ama şu an sorunsuz 😀 yardım için teşekkürler

  2. selamun aleyküm. Bu kalibrasyon bölümünde ki kodu atmasak da direkt proje kodunu üzerinden işlem yapsak, herhangi bir sorun ile karşılaşır mıyız.

    • Proje kodu üzerinden de sensör üzerinden aldığınız değerleri görebilirsiniz. Kalibrasyon bölümündeki kod yalnızca sensör değerlerini test etmeye yarayan bir kod, aynı testi proje kodu üzerinden de yapabilirsiniz, problem olmaz.

  3. Peki hocam. Kod da ki şu bölümün anlamı nedir… else if(K<100 && Y<M && abs(K-Y)<20) bazı renkleri gösteriyo örneğin magenta,t uruncu gibi renkleri algılıyor ama yeşil, mavi gibi renkleri algılamıyor. Acaba bu bölümde değişiklik mi yapmak gerekir..

    • Kodun algoritması renkleri özelden genele test edecek şekilde gidiyor. Yani öncelikli olarak rengin beyaz olup olmamasına degilse ara renklere sonrasında ana renklere bakıyor. Okuttuğunuz nesneden magenta için belirlediğimiz koşullarda değerler aldığınız için magenta olarak gösteriyor. Bu koşulları değiştirerek çözüme ulaşabilirsiniz, çünkü yazıda da belirttiğim gibi her sensör aynı sonuçları vermiyor maalesef. Kalibrasyon kısmındaki test aşamalarını da bu yüzden yaptık, farklı renkler üzerinden hangi değerleri aldığınıza bakarak bu koşullarda değişiklik yapmalısınız. Biraz deneme-yanılma gibi de düşünülebilir.

  4. İyi günler ben bi proje yapıyorum ve renk sensorunden 3 tane kullanmam gerekli tek arduinoda 3 tane sensorun bilgisini okuyup lcd ekrana yazdirabilirmiyim

    • Merhaba, 3 adet renk sensörü kullanacağınız bir projede Arduino Uno üzerindeki pin sayısı yetersiz gelecektir. Bu yüzden Arduino Mega gibi bir model kullanmanız gerekiyor. Onun dışında tek sensör için yaptığımız işlemleri diğer sensörlere de uygulayarak tüm sensör değerlerini tek Arduino üzerinden alabilirsiniz.

  5. Merhaba Alperen bey,
    Bu projenizi çok beğendim, renklerle ilgili çalışıyorum zaman içinde yaptığım renk çalışmalarından oluşan fiziksel renk arşivim var ve yeni bir renk çalışması olduğunda bu arşive bakıp aynı renk veya yakını bir renk varmı diye arşivi tarayıp çalışmayı öyle yapıyorum . Arşivden daha önce çalışılmış olan bir rengi bulmak bazen çok zaman alıyor. Bu devre ile yüzlerce farklı rengi okutarak bilgisayarda bir renk arşivi oluşturup sensöre okutulan herhangi bir nesnenin renginin veya ona yakın olan renklerin eğer oluşturduğumuz arşivde varsa bulunmasına yönelik bir geliştirme yapılabilir mi ?

    • Merhaba 🙂 Geri dönüşünüz için teşekkür ederim. Bu çalışmadaki sensör hobi projelerinde ve belli başlı renkleri ayırt etmede başarılı olsa da çok hassas ölçümlerde istediğimiz sonucu vermeyecektir. Renk arşivi gibi detaylı bir çalışmada her renkten farklı tonların olduğunu da düşünürsek hata payı oldukça yüksek olacaktır.

  6. proje kodunu yazınca karta yuklenırken sorun olustu yazıyo ve kodu yukleyince lcd ekranın ve renk sensorunun ısıgı yanıyo sadece renk sensorune tuttugumda hiçbisey olmuyo ve lcd ekranda birsey yazmiyo neden ?

  7. Proje kodunu yazınca karta yüklenirken sorun oluştu yaziyo ve kodu yükleyince lcd ekran ve renk sensörünün ışığı yazmıyo sadece renk sensorune tuttuğunda ise lcd ekranda hiçbişey yazmıyo kod mu bozuk yoksa sensor mu sebebi nedir başka bişey mi yapmam gerekli eksik bişey mi var

  8. Proje kodunu yazinca karta yuklenirken sorun olustu yaziyo ama arduinoyoyu bilgisayara baglayinca sadece lcd ekran ve renk sensorunun isigi yaniyo renk sensoru rengi algilayip ekrana yazmiyo kod mu bozuk yoksa renk sensorumu bunun haricinde renk sensorunun okuyup ekrana yazmasi icin yapmamiz gereken baska bisey mi var

    • Güç verdiğinizde lcd arka ışığı ve sensörün ledleri doğrudan yanar, bir şey okuyamama sebebiniz Arduino’ya kod yüklenememesi. Bunun birkaç sebebi olabilir, maker.robotistan.com/arduino-hata/ şu yazı problemi çözebilir. “Arduino Karta Yüklenirken Sorun Oluştu” başlığındaki durumları kontrol edin.

  9. Renk sensorunun algılayıp lcd ye yazdirmasinin haricinde bide bu projede led ve buzzer eklemem gerekiyo bunu nasıl yapabilirim yani demek istediğim şey renk sensoru algılayıp lcd ye yazdırdığı anda buzzer ses çıkaracak ve ledde algılanan renge gore renk yanacak bunun proje kodu ve bağlantısını nasıl yapabilirim?

    • Buzzerı basitçe kodun lcdye yazdırma kısmında aktif hale getirebilirsiniz. Buzzer kullanımı ve kodlarıyla ilgili şu yazı yardımcı olabilir: maker.robotistan.com/arduino-dersleri-9-buzzer-ile-ses-cikisi-alma-2/
      Led için de RGB bir ledden mi bahsediyorsunuz? Eğer öyleyse renkler için sensörden aldığımız değerleri RGB değerlere çevirmeniz gerekecektir. Fakat sensör çok stabil değerler vermeyebiliyor o yüzden doğrudan map fonksiyonu ile çevirmek doğru sonuçları vermeyebilir. Onun yerine belli başlı renkleri yansıtabilirsiniz, örneğin kırmızıyı algıladığımız kısımda ledinize (255,0,0) RGB değerlerini gönderirseniz led kırmızıya döner gibi. RGB led kullanımı ile ilgili de şu yazı yardımcı olacaktır: maker.robotistan.com/rgb-led-nedir-arduino-kontrolu/
      Ana renkler olan kırmızı, mavi, yeşil gibi renkler için ayrı ayrı ledler ekleyecekseniz tek yapmanız gereken kodda lcd ekrana yazdırdığımız renge göre bu ledleri aktif hale getirmek.

  10. Bi de tcs3200 ün sensor yuvasız olanını kullanıyorum renkleri algılamıştı lcd ekranda algılanan renk beyaz yazıp duruyor kodu kontrol ediyorum doğru ama yinede düzelmedi renk sensoru algılasa bile çok nadir algiliyo neden aceba sensor yuvasız olduğu için mi

    • Değerlerde değişiklik yapmanız gerekiyor. Kalibrasyon bölümünü tekrar okursanız faydalı olacaktır.

    • Sizin kullandığınız sensörün verdiği değerlerle benim kullanmış olduğum değerler örtüşmediğinden kodunuzu düzenlemeniz gerekiyor, bu kısım bunun için. Yazıda da belirttiğim gibi proje kodunu doğrudan attığınızda sonuç beklediğiniz gibi çıkmayacaktır. Burada yapmanız gereken sensörünüzün verdiği değerlere göre koddaki ifli kısımların içindeki değerlerde değişiklikler yapmak. Sizin sensörünüz genel olarak düşük değerler verdiği için algılanan rengi sürekli olarak “beyaz” görüyorsunuz. Sensörü beyaza tuttuğunuzda aldığınız değerlere bakın, örneğin 20-30 civarı değerler alıyorsanız if(K<70 && M<70 && Y<70) değil de if(K<40 && M<40 && Y<40) şeklinde bir düzenleme yapabilirsiniz. Aynı şekilde diğer renklerde de testler yaparak diğer renklerin koşullarında da değişiklik yapın. Kodun bu kısmında iş size düşüyor, değerlerde oynamalar yaparak en doğru sonuca ulaşmaya çalışmalısınız.

  11. Lütfen kalibrasyonla ilgili soruma cevap verebilirmisiniz rica etsem kalibrasyon kısmını anlamadim ve sorunu cozemedim çok onemli

    • Aynı olsa da fark edebiliyor, yazıda bahsettim. Yuvalı-yuvasız durumu da değer değişikliğine sebep olabiliyor.

  12. Kalibrasyonla ifli değerlerde değişiklik yaptım kırmızı mavi yeşil ve beyazı algıladı ama sarı ve magentayi alglamiyo sarı rengi tutunca mesela algılanan renk kırmızı diyor düzeltemedim değerleri değiştirmeye çalıştım yine olmadi cozemedim

  13. Tcs3200 renk sensoru ile tüm renkleri algılayabilirmişiz genelde kırmızı yeşil ve maviyi algılıyor bunun haricinde pempe kahverengi turuncu gibi diğer renkleri algilarmi koda mesela bu renkleride eklesek algılar mi yoksa sadece projede belirtilen renk kesişim kümesindeki renkleri mi algiilar

  14. Sarı rengi algılamadı kırmızı olarak algılıyor bunu haricinde diğer tüm renkleri algılar mi sorunlarım tam olarak çözülmedi

  15. Proje kodunda kırmızı sarı yeşil mavi beyaz ve magenta renkleri tanımlanmış tcs3200 renk algilama projesinde bunun haricinde diğer renkleri algılayabilir mi siyah turuncu mor kahverengi gibi renkleri algılayabilir mi

  16. Bide bu renk algilama uygulamasına led ekleyip algılanan rengin yanmasını istiyorum nasıl yapabilirim rgb ledi eklemek istiyorum buzzer ekledim sadece onun tek yaptığı şey ses cikarmak

    • Merhaba 🙂
      Eğer Arduino Uno ile yapacaksanız 2. sensör için pin sayısı yetersiz gelecektir ancak lcd ekranı I2C dönüştürücü yardımı ile kullanırsanız 2 sensörü tek Arduino Uno üzerinde kullanabilirsiniz. Kod kısmında da ilk sensör için yaptığımız işlemleri 2. sensör için de uygulayarak sensörünüzü kullanabilirsiniz.

  17. Bu projede servo motor kullanarak motorun ucuna çubuk takip sensörün algıladığı renkte dönmesini istiyorum nasıl yapabilirim örnek kod gönderme imkanımız var mi

  18. Renk sensorunun yanıp sönme nedenleri nedir benzer basja bi proje yapıyorum servo motor ve ledler de var ama renk Son soru yanıp siniyi sebebi nedir

    • Mor ve turuncu için aldığınız referans değerleri kullanarak koda eklemelisiniz. Benim size göndereceğim kod bir şey ifade etmeyecektir maalesef, çünkü aynı değerler olmayacaktır.

    • Merhaba, devrenin bağlantı şeması ve şemanın altında bağlantıların yazdığı bir tablo yazıda mevcut. Bunları takip ederek devrenizi kurabilirsiniz.

  19. bu dewreyi yaptim okulda olan sergide sunucam 2 sorum var
    1)gunluk hayatta ne ise yariyor bu dewrenin amaci ne
    2)bu dewreye mikrofon takip ekrandaki rengi soyletebilirmiyim

    Tesekkirler

    • Merhaba, bizim kurduğumuz devre sensörün mantığının anlaşılması ve kullanılması ile ilgili bir örnekti. Günlük hayatta bazı nesneleri renklerine göre ayıracak sistemlerde bu sensör tercih edilebilir. Devreye hoparlör ve sd kart modülü ekleyerek sensörün okuduğu rengi hoparlör üzerinden aktarabilirsiniz. Sd kart modülüne renklerin olduğu ses dosyalarını atarak yapılabilir.

  20. Merhabalar,
    Sizin verdiğiniz kodu mblock programına uyarladım ve birkaç tane ara renk ekledim. Toplamda 10 renk için değer okudum. Bazı renklerin değerleri birbirine çok yakın olduğu için aralık belirledim. Örneğin; pembe için “69<K<77 ve 201<Y<212 ve 106<M<115 "gibi. Ama renkleri ne yazık ki algılamıyor sadece bekliyor bir hata da vermiyor. Ana renklerle sizin verdiğiniz şekilde ilk uyarladığımda çalışıyordu. Birkaç renk ekleyerek devam ettiğimde ilk rengi doğru okuyup sırasıyla diğer renklere geçiyor. Çözüm yolu olarak aralık değeri verdiğimde hiç okumamaya başladı. Sizce nerede hata yapıyor olabilirim? Bana yardımcı olursanız çok sevinirim. Teşekkürler.

CEVAP VER

Please enter your comment!
Please enter your name here