Projenin Amacı:
- HC-SR04 mesafe sensörü ile araca yakınlık ölçülür.
- Ölçüm sonucu LCD ekranda gösterilir.
- Mesafe azaldıkça:
- LED’ler sırayla yanar (yeşil → sarı → kırmızı),
- Çok yaklaşılırsa buzzer öter.
Gerekli Malzemeler:
| Malzeme | Adet |
|---|---|
| Arduino UNO | 1 |
| HC-SR04 Ultrasonik Sensör | 1 |
| LCD Ekran (I2C’li) | 1 |
| 10k Potansiyometre | 1 |
| Buzzer | 1 |
| LED (Yeşil, Sarı, Kırmızı) | 3 |
| 220 ohm direnç | 3 |
| Jumper kablo | — |
| Breadboard | 1 |
Bağlantılar:

LCD (I2C)
| LCD Pini | Arduino Pini |
|---|---|
| GND | GND |
| VCC | 5V |
| SDA | A4 |
| SCL | A5 |
HC-SR04 Ultrasonik Sensör
| HC-SR04 Pini | Arduino Pini |
|---|---|
| VCC | 5V |
| GND | GND |
| Trig | D7 |
| Echo | D6 |
LED’ler ve Buzzer
| Parça | Arduino Pini |
|---|---|
| Yeşil LED | D5 |
| Sarı LED | D4 |
| Kırmızı LED | D3 |
| Buzzer | D2 |
Arduino Kodu:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigPin = 7;
const int echoPin = 6;
const int greenLED = 5;
const int yellowLED = 4;
const int redLED = 3;
const int buzzer = 2;
long sure;
int mesafe;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(buzzer, OUTPUT);
lcd.begin();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Park Sensoru");
delay(1000);
}
void loop() {
// Ultrasonik ölçüm
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
sure = pulseIn(echoPin, HIGH);
mesafe = sure * 0.034 / 2;
// LCD gösterim
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Mesafe: ");
lcd.print(mesafe);
lcd.print(" cm");
// LED ve buzzer kontrol
if (mesafe > 30) {
digitalWrite(greenLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(redLED, LOW);
digitalWrite(buzzer, LOW);
}
else if (mesafe > 15 && mesafe <= 30) {
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(redLED, LOW);
digitalWrite(buzzer, LOW);
}
else {
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(redLED, HIGH);
digitalWrite(buzzer, HIGH); // Çok yakınsa uyar
}
delay(300);
}
Nasıl Çalışır?
- 60 cm üstü: Hiçbir LED yanmaz (güvende).
- 40–60cm: Yeşil LED yanar.
- 20–40cm: Sarı LED yanar.
- 0–20cm: Kırmızı LED + Buzzer (tehlikeli yakınlık!).
MBlock Kodu


Tinkercad Kodu

// C++ code
//
include <LiquidCrystal_I2C.h>
int distanceThreshold = 0;
int distanceThreshold = 0;
int cm = 0;
int inches = 0;
int mesafe = 0;
LiquidCrystal_I2C lcd_1(32, 16, 2);
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}
void setup()
{
lcd_1.init();
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(2, OUTPUT);
}
void loop()
{
mesafe = 0.01723 * readUltrasonicDistance(6, 7);
if (mesafe < 20) { digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, LOW); tone(2, 523, 300); // play tone 60 (C5 = 523 Hz) lcd_1.print(mesafe); } if (mesafe >= 20 && mesafe <= 40) { digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW); } if (mesafe >= 40 && mesafe <= 60) { digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, HIGH); } if (mesafe > 60) {
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
delay(10); // Delay a little bit to improve simulation performance
}