HC-SR04 - Ultrasonik Sensör Kullanılarak Mesafe Ölçümü

HC-SR04 - Ultrasonik Sensör Kullanılarak Mesafe Ölçümü

HC-SR04 - Ultrasonik Sensör Kullanılarak Mesafe Ölçümü

Devrede 6 adet led vardır. Aşağıdaki kodlara göre her 5 cm'de bir led yanar.

  • Uzaklık 0 ile 5 cm arası ise bütün ledler sönüktür.
  • Uzaklık 5 ile 10 cm arası ise 1. led yanar.
  • Uzaklık 10 ile 15 cm arası ise 1. ve 2. led yanar.
  • Uzaklık 15 ile 20 cm arası ise 1., 2. ve 3. led yanar.
  • Uzaklık 20 ile 25 cm arası ise 1., 2., 3. ve 4. led yanar.
  • Uzaklık 25 ile 30 cm arası ise 1., 2., 3., 4. ve 5. led yanar.
  • Uzaklık 30 cm'den büyükse bütün ledler yanar.

#define echoPin 8
#define trigPin 9
void setup()
{
   pinMode (trigPin, OUTPUT);
   pinMode (echoPin, INPUT);
   for (int i=2; i<7; i++)
      pinMode(i,OUTPUT);
   Serial.begin(9600);
}
void loop()
{
   int mesafe = olcum();
   Serial.println(mesafe);                         
   if(mesafe>=0 && mesafe<5)
   {
      digitalWrite(2,LOW);
      digitalWrite(3,LOW);
      digitalWrite(4,LOW);
      digitalWrite(5,LOW);
      digitalWrite(6,LOW);
      digitalWrite(7,LOW);
   }
   else if(mesafe>=5 && mesafe<10)
   {
      digitalWrite(2,HIGH);
      digitalWrite(3,LOW);
      digitalWrite(4,LOW);
      digitalWrite(5,LOW);
      digitalWrite(6,LOW);
      digitalWrite(7,LOW);
   }
   else if(mesafe>=10 && mesafe<15)
   {
      digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,LOW);
      digitalWrite(5,LOW);
      digitalWrite(6,LOW);
      digitalWrite(7,LOW);
   }
   else if (mesafe>=15 && mesafe<20)
   {
      digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,HIGH);
      digitalWrite(5,LOW);
      digitalWrite(6,LOW);
      digitalWrite(7,LOW);
   }
   else if(mesafe>=20 && mesafe<25)
   {
      digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,HIGH);
      digitalWrite(5,HIGH);
      digitalWrite(6,LOW);
      digitalWrite(7,LOW);
   }
   else if(mesafe>=25 && mesafe<30)
   {
      digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,HIGH);
      digitalWrite(5,HIGH);
      digitalWrite(6,HIGH);
      digitalWrite(7,LOW);
   }
   else if(mesafe>=30) 
   {
      digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,HIGH);
      digitalWrite(5,HIGH);
      digitalWrite(6,HIGH);
      digitalWrite(7,HIGH);
   }
}
int olcum ()
{
   long sure, uzaklik;
   digitalWrite(trigPin, LOW);
   delayMicroseconds (2);
   digitalWrite (trigPin, HIGH);
   delayMicroseconds (10);
   digitalWrite(trigPin, LOW);
   sure = pulseIn (echoPin, HIGH);
   uzaklik = sure / 58.2;
   delay (50);
   return uzaklik;
}