LCD ile Park Sensörü Yapımı

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:

MalzemeAdet
Arduino UNO1
HC-SR04 Ultrasonik Sensör1
LCD Ekran (I2C’li)1
10k Potansiyometre1
Buzzer1
LED (Yeşil, Sarı, Kırmızı)3
220 ohm direnç3
Jumper kablo
Breadboard1

Bağlantılar:

LCD (I2C)

LCD PiniArduino Pini
GNDGND
VCC5V
SDAA4
SCLA5

HC-SR04 Ultrasonik Sensör

HC-SR04 PiniArduino Pini
VCC5V
GNDGND
TrigD7
EchoD6

LED’ler ve Buzzer

ParçaArduino Pini
Yeşil LEDD5
Sarı LEDD4
Kırmızı LEDD3
BuzzerD2

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
}

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir