Projenin amacı, HC-SR04 ultrasonik mesafe sensörü kullanarak bir engel algılama cihazı oluşturmaktır. Sensörden gelen veriler, bir 16×2 LCD ekran üzerinde gösterilecektir. Ayrıca, mesafe aralıklarına göre farklı renklerde LED’lerin yanıp söneceği bir sistem de tasarlanacaktır.
İlk olarak, 16×2 LCD ekran bağlantısı yapılmıştır. Daha sonra HC-SR04 sensörleri analog pinlere bağlanmış ve Arduino kodu ile sensörden gelen mesafe verisi LCD ekran üzerinde gösterilmiştir. Son olarak, mesafe aralıklarına göre LED’lerin yanıp söneceği sistem kodlanmış ve uygulanmıştır.

HC-SR04 sensörü kullanılarak bir engel algılama cihazı oluşturulmuştur. Sensörden gelen mesafe verisi 16×2 LCD ekran üzerinde kullanıcıya gösterilmekte ve mesafe aralıklarına göre LED’ler farklı renklerde yanıp sönmektedir. Bu proje, robotik, otomasyon ve IoT gibi alanlarda kullanılabilir ve bu alanlarda kullanılabilecek birçok farklı projenin temelini oluşturabilir.
//www.bozukdevre.net
#include <LiquidCrystal.h>
// LCD Pin Tanımları
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Ultrasonic Sensor Pin Tanımları
const int trigPin = 9, echoPin = 10;
// LED Pin Tanımları
const int greenLed = 6, yellowLed = 7, redLed = 8;
// Buzzer Pin Tanımı
const int buzzer = 13;
// Mesafe Değişkenleri
long duration, distance;
void setup() {
// LCD Setup
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("MESAFE:");
// Ultrasonic Sensor Setup
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// LED Setup
pinMode(greenLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(redLed, OUTPUT);
// Buzzer Setup
pinMode(buzzer, OUTPUT);
}
void loop() {
// Ultrasonic Sensor Mesafe Ölçümleri
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
// LCD Mesafe Yazma
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.print(" cm ");
// LED and Buzzer Yanıp Sönmesi
if (distance > 50) {
digitalWrite(greenLed, HIGH);
digitalWrite(yellowLed, LOW);
digitalWrite(redLed, LOW);
noTone(buzzer);
delay(100);
digitalWrite(greenLed, LOW);
delay(50);
} else if (distance > 25) {
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, HIGH);
digitalWrite(redLed, LOW);
tone(buzzer, 1000);
delay(50);
noTone(buzzer);
delay(50);
digitalWrite(yellowLed, LOW);
} else if (distance > 10) {
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(redLed, HIGH);
tone(buzzer, 1000);
delay(10);
noTone(buzzer);
delay(10);
} else {
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(redLed, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(greenLed, HIGH);
digitalWrite(yellowLed, HIGH);
delay(50);
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, LOW);
delay(50);
digitalWrite(buzzer, LOW);
}
}
Arduino ve HC-SR04 sensörleri arasındaki bağlantıları gösteren bir tablo yer almaktadır:

HC-SR04 Pin | Arduino Bağlanacağı pin |
---|---|
VCC | 5V |
Trig (Tetik) | 9 |
Echo (Yankı) | 10 |
GND | GND |
LED’lerin bağlantıları da aşağıdaki gibidir:
LED Renk | Arduinoda bağlanacağı pin |
---|---|
Yeşil LED | 6 |
Sarı LED | 7 |
Kırmızı LED | 8 |
Buzzer ise D11 pinine bağlanmıştır. LED’ler için kullanılan direnç değerleri ise 220 ohm olarak kullanılmıştır.
Çalışma mantığı şu şekildedir;
HC-SR04 sensörü ile mesafe ölçülecek ve ekranın üst satırında “MESAFE” alt satırında ölçülen mesafe cm cinsinden verilerek (“x cm”) ortalı şekilde gözükecektir. Mesafe değiştikçe kendisini sürekli güncelleyecektir.
• 1m ile 50 cm arasında ise BUZZER ve yeşil LED 50 ms aktif 100 ms pasif çalışacaktır
• 50 cm -25 cm arasında ise BUZZER ve sarı LED 50 ms aktif 50 ms pasif çalışacaktır.
• 25 cm- 10 cm arasında ise BUZZER ve kırmızı LED 10 ms aktif 10 ms pasif çalışacaktır.
• 10 cm altında ise BUZZER ve kırmızı LED sabit sarı ve yeşil ledler 50 ms aktif 50 ms pasif çalışacaktır.
Bir yanıt yazın