ARDUINO İLE PARK SENSÖRÜ YAPIMI (HC-SR04)

ARDUINO İLE PARK SENSÖRÜ YAPIMI (HC-SR04)

HC-SR04 ultrasonik mesafe sensörü kullanarak park sensörü yapıyoruz.

Gerekli malzemeler:

  • Arduino UNO
  • Breadboard
  • 1 adet Buzzer
  • 1 adet 330Ω direnç
  • 1 adet HC-SR04 ultrasonik mesafe sensörü
  • İki ucu erkek jumper kablo

HC-SR04, robotik projelerde Arduino ile kullanılan en popüler sensörlerden birisidir. Kullanımı oldukça kolaydır ve program kısmı düzgün olduğu sürece 2cm – 400cm arası uzaklıkları düzgün bir şekilde ölçebilmektedir.

Çalışma prensibi ise şu şekildedir: Sensörün Trig pininden uygulanan sinyal 40 kHz frekansında ultrasonik bir ses yayılmasını sağlar. Bu ses dalgası herhangi bir cisme çarpıp sensöre geri döndüğünde, Echo pini aktif hale gelir. Biz ise bu iki sinyal arasındaki süreyi ölçerek -yani sesin yankısını algılayarak- cismin sensörden uzaklığını tespit edebiliriz.

Devre Bağlantısı

Arduino Kodu

// PARK SENSÖRÜ

const int trigger_pin = 12; // Sensörün trig pinini arduinonun 12 nolu pinine bağlıyoruz
const int echo_pin = 13; // Sensörün echo pinini arduinonun 13 nolu pinine bağlıyoruz
const int buzzer = 2; // Buzzerin Arduino nun 2 nolu pinine bağlı olduğunu belirtiyoruz.
const int led_1 = 3; // 1 ledin bağlı olduğu pin
const int led_2 = 4; // 2. ledin bağlı olduğu pin
const int led_3 = 5; // 3. pinin bağlı olduğu pin
const int led_4 = 6; // 4. pinin bağlı olduğu pin

int sure; // süre ve mesafe adında ifadeler tanımladık
int mesafe;

// Tek seferlik kullandığımız elemanlarımızı Arduinoya tanımlıyoruz
void setup() {
pinMode(led_1, OUTPUT); // ledleri ve buzzerı bağladığımız pinleri çıkış olarak tanımladık
pinMode(led_2, OUTPUT);
pinMode(led_3, OUTPUT);
pinMode(led_4, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(trigger_pin, OUTPUT); // Trigger pininin çıkış pini olduğunu
pinMode(echo_pin, INPUT); // seho pininin giriş pini olduğunu tanımladık
Serial.begin(9600); // Seri haberleşmeyi 9600 Baudrate tanımladık.
}

void loop() { // artık programımız bu kısımda çalışmaya başlıyor
digitalWrite(trigger_pin, HIGH); // trigger pinimizi enerjilendiriyoruz
delayMicroseconds(1000); // 1000 microsaniye süresince high sonra LOW yapıyoruz
digitalWrite(trigger_pin, LOW);
sure = pulseIn(echo_pin, HIGH); // Pulsin komutu ile echo pinimize sinyalin ne kadar zamanda geri geldiğini ölçüyoruz.
mesafe = (sure / 2) / 28.5;

if (mesafe <= 10) // eğer 10 cm ye eşit veya düşükse
{
digitalWrite(led_4, HIGH); // led-4 enerjilen
digitalWrite(buzzer, HIGH); // buzzer enerjilen
delay(50); // 50 milisaniye bekle
digitalWrite(led_4, LOW); // enerjisini kes
digitalWrite(buzzer, LOW); // buzzer enerjisini kes
delay(250);
}

else if (mesafe <= 25) // mesafe 25 cm den küçük veya eşitse
{
digitalWrite(led_3, HIGH);
digitalWrite(buzzer, HIGH);
delay(50);
digitalWrite(led_3, LOW);
digitalWrite(buzzer, LOW);
delay(500);
}

else if (mesafe <= 50)
{
digitalWrite(led_2, HIGH);
digitalWrite(buzzer, HIGH);
delay(50);
digitalWrite(led_2, LOW);
digitalWrite(buzzer, LOW);
delay(750);
}

else
{
digitalWrite(led_1, HIGH);
delay(1000);
digitalWrite(led_1, LOW);
delay(1000);
}
}

Yazar Hakkında

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir