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.
//75.101.132.229 #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.
//75.101.132.229 #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!
merhaba, bu projeyi yaparken herhangi bir sorunla karşılaşır mıyız veya size her zaman ulaşa bilir miyiz.
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. 🙂
Bende yeşil ve mavi 0 veriyor seri ekranda , hiç bir şekilde algılamıyor neden kaynaklı olabilir sizce
Teşekkür ederim, Peki kollarda bi sıkıntı çıkar mı acaba.
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.
Peki teşekkür ederim. 🙂
sadece algılanan renk beyaz diyor ?
Kalibrasyon bölümünde bahsedildiği gibi kendi sensör değerlerinize göre koddaki değerlerde oynama yaparsanız sorun çözülecektir.
merhabalar bulduğumuz değerleri 2.ci kod kısmında nereye yazıyoruz acaba?
Merhaba, proje kodunun sonunda ifli kısımdaki değerlerde değişiklik yapmalısınız.
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
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.
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.
İ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.
Nasıl kutuphane olusturcam
Bu projenin topluma yararı ne olabilir?
siyah renk algılyabiliyor mu?
projem için acil bilgi gerekli lütfen yazın
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.
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 ?
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
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.
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.
Soruma acil cevap verirseniz ya da benzer kod goderirseniz cok iyi olur çok onemli
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.
Kalibrasyon kısmının nasıl yapilacagini anlamadim
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.
Kalibrasyon kısmında nasıl yapıldığını ve nerden yapıldığını tam anlamadim
Lütfen cevap verebilirmisiniz onemli
Lütfen kalibrasyonla ilgili soruma cevap verebilirmisiniz rica etsem kalibrasyon kısmını anlamadim ve sorunu cozemedim çok onemli
Tcs3200 renk sensörünü kullanıyorum
Projede yazan tcs3200 renk sensörünü kullanıyorum aynı degil mi
Aynı olsa da fark edebiliyor, yazıda bahsettim. Yuvalı-yuvasız durumu da değer değişikliğine sebep olabiliyor.
Merhaba bu projeyi ardunio r3 klon ile yapabilir miyiz
Elbette 🙂
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
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
Tcs34725 renk sensoru tsc3200 den daha gelişmiş bir renk sensörünü tüm renkleri algılayabilir mi tcs3200 den daha mi iyi
Bu proje kullanılan tcs3200 sensoru tc34725 den daha mi iyi
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
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
Servo motor ekleyebilirmiyim renk algilama projesine mesela
Elimde sensor yuvasız renk sensoru var dışardan gün ışığı vurunca algılamıştı tekrar almaya gerek var mi
Hayır yeni sensör almanıza gerek yok iki sensör de aynı zaten, tek fark birinin yuvasının olması.
Acill cevap verebilirmisiniz onemli
Mavi renk yerine sarı rengi nasıl okutabilirim
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
Merhabalar. Bir projede 2 adet renk sensörü kullanabilir miyiz? Aynı arduino üzerinde.
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.
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
Bu projeyi nasıl geliştirebiliriz önemli lütfen
Bu projeyi nasıl geliştirebiliriz
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
Sensoe yanıp dönüyor bu sorunu nasip halledebilirim
Bu projeye turuncu ve mor rengi eklemek istiyorum nasıl yapabilirim gonderebilirmisin yapamadim
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.
rek sensörü nasıl bağlanır resimli
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.
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.
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.
Arduino: 1.8.10 (Windows 10), Kart: “Arduino / Genuino Uno”
renk: 74: 4: hata: ‘diğer’ ifadesinden önce nitelenmemiş kimliği bekleniyor
renk: 79: 3: hata: ‘else’ öncesi kifayetsiz kimliği bekleniyor
renk: 84: 3: hata: beklenen ‘nitelikten önce kimliği belirsiz kimliği’
renk: 89: 4: hata: ‘diğer’ ifadesinden önce nitelenmemiş kimliği bekleniyor
renk: 94: 5: hata: beklenen ‘kibar’ öncesi kimliği belirsiz kimlik
renk: 100: 3: hata: ‘{‘ belirtecinden önce nitelenmemiş kimliği bekleniyor
renk: 105: 4: hata: ‘Seri’ bir tür adı vermiyor
renk: 106: 10: error: beklenen yapıcı, yıkıcı veya ‘(‘ belirtecinden önceki dönüşüm türü)
renk: 107: 5: hata: ‘lcd’ bir tür isimlendirmiyor
renk: 108: 11: error: beklenen yapıcı, yıkıcı veya ‘(‘ belirtecinden önce dönüşüm türü)
renk: 109: 3: hata: ‘}’ belirtecinden önce beklenen bildirim
“LiquidCrystal.h” için birden fazla kütüphane bulundu
Kullanılıyor: C: \ Kullanıcılar \ sansür \ Masaüstü \ arduino-1.8.10 \ kütüphaneler \ LiquidCrystal
Çıkış durumu 1
‘diğerinden önce beklenen niteliksiz kimlik
Bu raporda daha fazla bilgi olacak
“Derleme sırasında ayrıntılı çıktı göster”
seçeneği Dosya -> Tercihler’de etkin.
böle bir sorun hatası alıyorum boş bıratığınız else de duraksıyor program tam olarak bu şekilde
}
else
{
Merhaba,
““LiquidCrystal.h” için birden fazla kütüphane bulundu” şu satırdaki problemi çözmek için kütüphanelerin bulunduğu kısımda aynı kütüphaneden birden fazla olup olmadığını kontrol eder misiniz?
Merhabalar her iki kodu da alıp arduino ma atıyorum ama her seferinde hata veriyor ne yapmam gerek yada sadece vermiş olduğunuz 2. Kodumu kopyalayıp atmam gerek .
Lütfen en kısa sürede cevap verirseniz sevinirim .şimdiden teşekkür ederim.
Merhaba, ilk kod yalnızca sensör değerlerini izlemek için, değerlere bağlı olarak ikinci kodda değişiklik yapabilirsiniz. Projeniz için yalnızca ikinci kodu atmanız gerekecek. İyi çalışmalar
Merhaba öncelikle maker projeler için çok teşekkür ederim. Benim size sormak istediğim lcd ekranında yazan renkleri aynı zamanda sese çevirip hoparlörden dinleyebilir miyiz? Ayrıca sormak istediğim renkleri en uzak hangi mesafeden okuyabilir? Renk ile sensör arasındaki mesafe ne kadar olmalı? Yardımci olursanız çok sevinirim. iyi çalışmalar dilerim.
Merhaba, projeyi dediğiniz şekle çevirmek için hoparlör, sd kart ve sd kart modülü kullanabilirsiniz, bu sayede sd kart içine yüklediğiniz ses dosyalarını okutabilirsiniz. İnternet üzerinde birçok örneğini bulabilirsiniz. Kütüphane sayesinde oldukça kolay bir kullanımı vardır.
Mesafe ile ilgili soru için verebileceğim net bir ölçü yok, fakat sonuçların tutarlı olması bakımından sensörü her nesne için aynı mesafede tutmaya dikkat etmelisiniz. Birkaç cm’lik bir mesafe, ayırt edici bir okuma için yeterli olacaktır, deneyerek ve sonuçları karşılaştırarak ideal bir mesafe bulabilirsiniz. İyi çalışmalar dilerim 🙂
Bu sensör ile turuncu rengi algılayamazmıyız
Merhabalar bu sensörü çizgi izleyen robot mantığı gibi buton vasıtasıyla seçtiğim rengi takip eden robot şeklinde nasıl geliştirebilirim kodlama ve donanım kısminda yardımcı olabilirmisiniz?
iyi günler dilerim . internette gördüm araştırdım ama bir şey bulamadım. bilgisayar ekranındaki renkleri odaya yansıtıyordu. odanın rengi ormanda yeşil renk oluyor gökyüzünde mavi vs bunun için yardımınız olur mu ?
merhaba tcs34725 ve stm32f103c8 ile bu projeyi yapabilir miyiz led ekranı olmadan programlayıcı ve aurt modüle ile birlikte
Yapabilirsiniz fakat kodlama kısmında kaynak bulmanız oldukça zor. Sensörün nasıl çalıştığını anladıktan sonra başarıyla yapabilirsiniz.