TCRT5000 3'lü çizgi sensörü yardım

Kodla Büyü

sonzeybek

Seçkin Üye
Seçkin Üye
Mesajlar
308
Arkadaşlar Meb robot yarışması için 3'lü çizgi sensörü kullanacağız. Ancak sensör dijital gibi değerler üretiyor ya 34 civarı yada 800 civarı analog değerler üretiyor. siyah ve beyaz farketmeksizin zemine indiği an değer 30'a düşüyor analog pinlere bağlamamıza rağmen. aradaki değerler hiç yok. Sensörün çalışmasıyla ilgili atladığım birşey mi var bilemedim.
 
✅ Olası Nedenler ve Çözümler
1. Sensör Tipi: Gerçekten Analog mu, Dijital mi?
Bazı "3'lü çizgi sensörü" modülleri aslında dijital çıkışlıdır, sadece sensör kartında analogdan dijitale çevirme yapılıp dışarıya 0 ya da 1023 gibi uç değerler gönderirler.

Eğer üzerinde LM393 gibi bir karşılaştırıcı varsa, bu sensör dijital çıkışlıdır ve analog pin'e bağlasanız bile analog aralık vermez.

✅ Çözüm: Sensör kartınızın üzerindeki entegreyi kontrol edin. LM393 varsa, bu dijital çıkışlıdır ve analog pin bağlasanız bile arada değer vermez.

2. Sensörün Gerçekten Analog Çıkışı Varsa
Çoğu IR çizgi sensörü, reflektans yani yansıyan ışığa göre 0–1023 arasında değer üretir.

Ancak sensör kartındaki potansiyometre ayarı, çıkışın sadece belli bir eşiğe göre keskin değişmesine sebep olabilir.

✅ Çözüm: Sensör üzerinde küçük bir ayarlanabilir pot (trimpot) varsa, bunu yavaşça çevirerek yansıyan ışıkla aradaki geçiş değerlerini yakalamaya çalışın.

3. Yanlış Pin Kullanımı veya Kütüphane
Kodda
Kod:
analogRead()
yerine
Kod:
digitalRead()
kullanmak veya tam tersi, çıkış tipine göre hatalı sonuçlara neden olur.

Ayrıca bazı sensörler için özel kütüphaneler gerekiyorsa bu atlanmış olabilir.

✅ Çözüm:
Kod:
int deger = analogRead(A0);
Serial.println(deger);

şeklinde temel bir test yapın. Eğer hâlâ sadece 30–800 gibi uç değerler varsa, sensör zaten dijital çıkışlı olabilir.

4. Aydınlatma veya Zemin Sorunu
Ortam ışığı çok fazlaysa veya yüzey parlaksa, sensör reflektans ölçemeyip düşük değer döndürebilir.

Zemin çok koyu ya da çok açık renkteyse sensörün algılama eşiğinin dışında kalabilir.

✅ Çözüm: Sensörü farklı yüzeylerde (beyaz kağıt, siyah elektrik bandı) test ederek verdiği değerleri karşılaştırın.

🧪 Hızlı Test
Tüm sensörleri sırayla elinizle karartın ve ışık altında açık bırakın, analogRead() ile değerleri okuyun.

Eğer sadece iki değer geliyorsa (örneğin 30 veya 800 gibi), o zaman bu sensör dijital olarak davranıyor demektir.

🛠️ Alternatif Çözüm
Eğer elinizde bu tip sensör varsa ve analog kontrol istiyorsanız, TCRT5000 gibi saf analog sensörlü bir modül kullanmanız gerekebilir.

Ayrıca, mevcut sensörü digitalRead() ile kullanıp sadece siyah-beyaz ayrımı yaparak da çizgi takibi yapılabilir.
 
1746862739816.webp

İşinizi Görecektir.
 
BBNET
Geri
Üst