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;
}