Arduino ile Optik Işık Kesici Sensör Modülü (KY-010 Photo Interrupter) Kullanımı
Bu rehberde, Arduino Uno kontrol kartı ve KY-010 Optik Işık Kesici Sensör Modülü (Photo Interrupter) kullanarak sensörün U şeklindeki kanalı arasındaki ışık hüzmesinin kesilmesini ve fiziksel engelleri algılama uygulamasını inceleyeceğiz.
Gerekli Malzemeler:
1 x Arduino Uno R3
1 x KY-010 Photo Interrupter Sensör Modülü
1 x Breadboard (Devre Tahtası)
Yeterli miktarda Jumper Kablo
Devre Bağlantı Detayları
Görseldeki devre şemasına göre bağlantılar şu şekilde yapılmaktadır:
Sensör S (Sinyal): Arduino Digital 3 Pini (Mavi Kablo)
Sensör - (GND): Breadboard üzerinden Arduino GND Pini (Siyah Kablo)
Çalışma Prensibi
KY-010 modülü, U şeklinde bir plastik gövdenin bir tarafında infrared (kızılötesi) LED verici, karşı tarafında ise bir fototransistör alıcı barındırır. Çalışma mantığı şu şekildedir:
1. Kesintisiz Işık Hattı (Normal Durum): Kanalın arası boşken, kızılötesi LED'den çıkan ışık doğrudan karşıdaki fototransistöre ulaşır. Bu durumda alıcı iletime geçer ve S sinyal çıkışı lojik LOW (0V) seviyesindedir.
2. Engellenmiş Işık Hattı (Kesilme Anı): U kanalının arasına opak/geçirgen olmayan bir nesne (karton, plastik veya encoder diski) girdiğinde ışık iletimi kesilir. Fototransistör yalıtıma geçer ve kart üzerindeki pull-up direnci vasıtasıyla S pini lojik HIGH (5V) seviyesine yükselir.
3. Yüksek Hızlı Tepki: Optik esasa dayandığı için mekanik butonlar gibi aşınma yapmaz ve mikrosaniyeler mertebesindeki hızlı nesne geçişlerini bile kaçırmadan algılayabilir.
Örnek Arduino Kodu
const int optikPin = 3; // KY-010 Sinyal Pini
const int ledPin = 13; // Dahili Arduino LED'i
int engelDurumu = 0;
void setup() {
Serial.begin(9600);
pinMode(optikPin, INPUT); // Sensör pini giriş yapıldı
pinMode(ledPin, OUTPUT); // LED pini çıkış yapıldı
}
void loop() {
// Sensörden dijital okuma yap
engelDurumu = digitalRead(optikPin);
// Işık hüzmesi kesildiğinde sinyal HIGH olur
if (engelDurumu == HIGH) {
digitalWrite(ledPin, HIGH); // Işık kesildi: Dahili LED'i yak
Serial.println("Işık Kesildi / Engel Algılandı!");
} else {
digitalWrite(ledPin, LOW); // Yol açık: Dahili LED'i söndür
}
delay(50); // Okumayı takip edebilmek için kısa bekleme
}
Geliştirme Önerileri ve İpuçları
KY-010 optik kesici sensörünü projelerinizde efektif şekilde kullanmak için değerlendirebileceğiniz fikirler:
Optik Encoder ve RPM (Devir) Sayımı: Delikli bir encoder çarkını motor miline bağlayıp U kanalından geçirerek motorun dönme hızını (RPM) veya tekerleğin aldığı mesafeyi yüksek hassasiyetle ölçebilirsiniz.
Limit Switch (Eksen Sonu Anahtarı): 3D yazıcılarda ve CNC tezgahlarında hareketli eksenlerin başlangıç veya bitiş noktalarına ulaştığını bildiren temassız limit switch olarak güvenle kullanılabilir.
Hızlı Sayım ve Kesme (Interrupt) Kullanımı: Hızlı dönen disklerde veya üretim bandından geçen ürünleri sayarken döngü gecikmelerinden etkilenmemek için kodu Arduino'nun 3. pinindeki donanımsal kesme (attachInterrupt(digitalPinToInterrupt(3), sayiciFonksiyon, RISING)) yapısıyla kullanmak en kararlı sonucu verir.