Ultrasonik mesafe sensörü ile mesafeye göre Led Yakımı

Daha önceki yazımızda Ultrasonik sensörünü temel kullanımını görmüştük, aşağıdaki linkten ulaşabilirsiniz. Burada sensör bağlantılarının nasıl yapıldığına yine  aşağıdaki bağlantıdan ulaşabilirsiniz. Bu bağlantıyı TinkerCad üzerinde yaparken üç bacaklı ve 4 bacaklı versiyonu göreceksiniz. Biz dört bacaklı versiyon olan HC-SR04 versiyonunu kullanıyoruz. Sensörü satıcıdan temin ederken de mutlaka üzerinde HC-SR04 yazan mesafe sensörünü alınız. 

Ultrasonik Sensör ile Mesafe Ölçümü


Bu çalışmamızda mesafeye göre ledleri yakacağız.

Eğer mesafe 0 ile 50 cm arasında ise MAVİ led yansın.
Eğer mesafe 0 ile 30 cm arasında ise mavi ledin yanında YEŞİL led yansın.
Eğer mesafe 0 ile 10 cm arasında ise mavi kırmızı ledin yanında KIRMIZI led yansın.

Nesneyi Uzaklaştırdığımızda;

Mesafe 10'dan büyükse KIRMIZI led artık yanmasın, sönsün.
Mesafe 30'dan büyükse YEŞİL led artık yanmasın, sönsün. 
Mesafe 50'den büyükse MEVİ led artık yanmasın, sönsün.


Ledleri aşağıdaki gibi  Arduino'nun 10,11 ve 12 numaralı portlarına bağlıyoruz. Kırmızı Led'i 10 numaralı porta, yeşil ledi 11 numaralı porta, mavi ledi de 12 numaralı porta bağladık. 



Kodların tamamı aşağıda verilmiştir. Bu kodları gerek TinkerCad üzerinde gerekse Arduino IDE editörüne yapıştırabilirsiniz.

 
int led1=10; //kirmizi led 10
int led2=11; //yesil 11
int led3=12; //mavi 12
 
void setup() {
 
   Serial.begin(9600);
   pinMode(5,OUTPUT);//Trig Çıkışı
   pinMode(6,INPUT); //Echo Girişi
  
   pinMode(led1, OUTPUT); //led1 çıkış
   pinMode(led2, OUTPUT); //led2 çıkış
   pinMode(led3,OUTPUT); //led3 çıkış
}
 
 
void loop() {
 
   digitalWrite(5,1); 
   delay(500);
   digitalWrite(5,0);
 
    int zaman=pulseIn(6,1);
    int mesafe=(zaman/2)/28.97;
 
   Serial.print("Algilanan Mesafe=");
   Serial.println(mesafe);

//Eğer mesafe 0'dan büyük ve 50'den küçük ise MAVI ledi yakıyoruz
  if (mesafe>0 && mesafe<=50){
         Serial.println("mesafe 50 altina indi, MAVI yansin");
        digitalWrite(led3,HIGH);
        
  }

//Eğer mesafe 0'dan büyük ve 30'den küçük ise YESIL ledi yakıyoruz
  if(mesafe>0 && mesafe<=30){
            Serial.println("mesafe 30 altina indi, YESIL yansin");
            digitalWrite(led2,HIGH);
 
           
  }

//Eğer mesafe 0'dan büyük ve 20'den küçük ise KIRMIZI ledi yakıyoruz
  if(mesafe>0 && mesafe<=20){
                Serial.println("mesafe 20 altina indi, KIRMIZI yansin");
                digitalWrite(led1,HIGH);
           
  }

// Nesneyi sensörden uzaklaştırınca Ledleri yine mesafeye göre söndürüyoruz.
// mesafe 20'den küçük ise KIRMIZI ledi söndürüyoruz.

 
  if(mesafe>20){
                 Serial.println("mesafe 20 den buyuk, KIRMIZI sonsun");
                digitalWrite(led1,LOW);
 
  }
// mesafe 30'dan küçük ise YESIL ledi söndürüyoruz.
   if(mesafe>30){
                 Serial.println("mesafe 30 den buyuk, YESIL sonsun");
                digitalWrite(led2,LOW);
 
  }
// mesafe 50'den küçük ise MAVİ ledi söndürüyoruz.
  if(mesafe>50){
              Serial.println("mesafe 50 den buyuk, MAVI sonsun");
              digitalWrite(led3,LOW);
 
  }
   
}


Mutlu kodlamalar,
Oğuzhan TAŞ
Mayıs 2023
 

Bookmark and Share