Merhaba genç mucitler! Arabaların geri park ederken biplemesi veya arkalarındaki mesafeyi ölçmesi nasıl çalışır hiç düşündünüz mü? Bugün laboratuvarımızda HC-SR04 ultrasonik mesafe sensörünü kullanacağız. Bu sensör tıpkı yarasalar gibi ses dalgaları göndererek cisimlerin uzaklığını ölçüyor. Cisme yaklaştıkça sırayla yanan 3 adet LED ile harika bir "Mesafe Gösterge Paneli" veya "Park Sensörü" yapacağız. Hazırsanız ses dalgalarını yollamaya başlayalım!
Gerekli malzemeler
- 1 adet Arduino Uno
- 1 adet Breadboard (Devre tahtası)
- 1 adet HC-SR04 Ultrasonik Mesafe Sensörü
- 3 adet LED (Farklı renklerde olabilir)
- 3 adet 220 veya 330 Ohm Direnç (LED'ler için)
- Yeteri kadar Jumper Kablo
Adım adım yapım
1. 1. Bölüm
İlk olarak projemizin gözü olan HC-SR04 sensörünü breadboard üzerine yerleştirelim. Sensörün VCC pinini Arduino'nun 5V pinine, GND pinini ise Arduino'nun GND pinine bağlayalım.
2. 2. Bölüm
Sensörün sinyal bacaklarından Trig pinini Arduino'nun 12 numaralı pinine, Echo pinini ise 11 numaralı pinine bağlıyoruz. (Kodumuzdaki pin tanımlamalarıyla birebir aynı!)
3. 3. Bölüm
Şimdi sırada uyarı LED'lerimiz var. 3 adet LED'imizi breadboard'a yerleştirelim. Her LED'in artı bacağına bir direnç bağlayarak sırasıyla:
4. 4. Bölüm
LED'i Arduino'nun 7 numaralı pinine (En uzak mesafe uyarısı),
5. 5. Bölüm
LED'i Arduino'nun 6 numaralı pinine (Orta mesafe uyarısı),
6. 6. Bölüm
LED'i Arduino'nun 5 numaralı pinine (En yakın mesafe uyarısı) bağlıyoruz.
7. 7. Bölüm
LED'lerin eksi bacaklarını ise ortak olarak GND hattına bağlıyoruz.
8. 8. Bölüm
Bağlantılarımız tamam! Aşağıdaki kodu kopyalayıp Arduino programınıza yapıştırın ve kartınıza yükleyin. Elinizi sensöre yaklaştırdığınızda mesafeye göre LED'lerin sırayla yandığını göreceksiniz!
Proje kodu
Kodu Arduino IDE'ye aktarın. Pin numaralarını kendi devrenize göre kontrol ettikten sonra karta yükleyin.
// HC-SR04 Pin Tanımlamaları
const int trigPin = 12;
const int echoPin = 11;
// LED Pin Tanımlamaları
const int led1 = 7; // İlk yanan (en uzak mesafe)
const int led2 = 6; // İkinci yanan (orta mesafe)
const int led3 = 5; // Üçüncü yanan (en yakın mesafe)
long sure;
int mesafe;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Trig tetiklemesi (temiz sinyal için önce LOW, sonra HIGH pulse)
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Echo pini üzerinden ses dalgasının dönüş süresini mikro saniye cinsinden al
sure = pulseIn(echoPin, HIGH);
// Ses hızı ~340 m/s -> (sure / 2) / 29.1
mesafe = sure * 0.034 / 2;
// Seri monitörden mesafeyi takip etmek için
Serial.print("Mesafe: ");
Serial.print(mesafe);
Serial.println(" cm");
// Yaklaştıkça yanan LED sayısını artıran koşullar:
if (mesafe > 0 && mesafe <= 10) {
// Çok yakın: 3 LED birden yanar
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
}
else if (mesafe > 10 && mesafe <= 20) {
// Orta mesafe: 2 LED yanar
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
}
else if (mesafe > 20 && mesafe <= 30) {
// Uzak mesafe: 1 LED yanar
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
else {
// 30 cm'den uzak veya ölçüm dışı: Hiçbiri yanmaz
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
delay(60); // HC-SR04 yankı çakışmalarını önlemek için ideal döngü beklemesi
}

Yorumlar
İlk yorumu siz yazın.