Trafik Polisi için Araç Hız Dedektör Devresi

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazıda yollarda ve otoyollarda herhangi bir aracın hızını ölçebilen bir pist inşa edeceğiz. Önerilen devre, araçların aşırı hız yaptığından şüphelenilen bir yerde sabit tutulur. Herhangi bir araç hız sınırını aşarsa, devre derhal uyarır. Aracın hızının nasıl ölçüldüğünün koduna, devre şemasına ve mantığına bakacağız.

Amaç

Hindistan'da 2015 kaza sonucu ölüm raporuna göre aşırı hız,% 75 yol kazasına neden oluyor, bu çok büyük bir rakam. Çoğu trafik polisi, tehlikeli bir şekilde araçlarını şehir hız sınırının ötesinde kullanan sürücüleri gözaltına almaya çalışıyor.



Ne zaman bir trafik polisi aşırı hız yapan bir aracı durdurup suçlayamaz. Bu nedenle, sık kaza eğilimli alanlar, kavşaklar vb. Gibi sürücülerin aşırı hız yaptığından şüphelenilen yerlerde hız kamerası adı verilen bir cihaz kurulur

Hız kamerasına benzer bir şey inşa edeceğiz, ancak çok daha basit bir şekilde, okul, kolej veya BT parkları gibi bir kampüse veya sadece eğlenceli bir proje olarak kurulabilir.



Önerilen proje, lazer ışınlarını keserken aracın hızını ölçmek için tam olarak 10 metre aralıklı yerleştirilmiş iki lazer ışınından geçen her aracın hızını gösteren 16 x 2 LCD ekrandan oluşmaktadır.

Bir araç geçildiğinde, bir aracın tespit edildiğini ve her aracın hızının LCD ekranda görüntüleneceğini belirten bir sesli uyarı duyulacaktır. Bir araç hız sınırını aştığında sesli uyarı sürekli olarak çalar ve aracın hızı ekranda gösterilir.

NOT: Aracın hızına bakılmaksızın aracın hızı LCD'de görüntülenecektir.

Şimdi hızı ölçmek için devrenin arkasındaki mantığı görelim.

Hepimiz hız - mesafe - zaman formülü denen basit bir formül biliyoruz.
Hız = Mesafe / Zaman.

• Saniyede metre cinsinden hız,
• Metre cinsinden mesafe,
• Saniye cinsinden süre.

Hızı bilmek için, bir aracın kat ettiği 'x' mesafesini ve bu 'x' mesafesini kat etmek için geçen süreyi bilmemiz gerekir.

Bunu yapmak için, aşağıdaki şekilde iki lazer ışını ve 10 metre mesafeli iki LDR kuruyoruz:

trafik aracı hız ölçüsü

Mesafenin sabit olan 10 metre olduğunu biliyoruz, şimdi denklemdeki zamanı bilmemiz gerekiyor.

Zaman Arduino tarafından hesaplanacak, araç 'start lazeri' ni kestiğinde, zamanlayıcı başlar ve araç 'son lazeri' kestiğinde zamanlayıcı durur ve değerleri denklemde uygular Arduino aracın hızını bulacaktır.

Lütfen aracın hızının yalnızca bir yönde tespit edileceğini unutmayın, yani lazeri durdurmak için lazeri başlatın, aracı başka bir yönde tespit etmek için aynı kurulumun ters yönde yapılması gerekir. Bu nedenle, giriş ve çıkış kapılarının olduğu okul, kolaj vb. Yerler için idealdir.

Şimdi şematik diyagrama bakalım:

Arduino ve ekran arasındaki bağlantı:

LCD araç hız göstergesi

Yukarıdaki devre kendi kendini açıklayıcıdır ve sadece kabloları devreye göre bağlayın. Ekran kontrastını ayarlamak için 10K potansiyometreyi ayarlayın.

Ek Kablolama Detayları:

Hız aracı mesafe ölçüsü kablolama kurulumu

Yukarıdaki devre Arduino, 4 buton, iki 10K aşağı çekme direnci (dirençlerin değerini değiştirmeyin), iki LDR ve bir zilden oluşur. 4 butonun işlevi kısaca açıklanacaktır. Şimdi LDR'nin nasıl düzgün şekilde monte edileceğini görelim.

Araç hızı tespiti için LDR yönlendirme

LDR, güneş ışığından düzgün bir şekilde korunmalı, sadece lazer ışını LDR'ye çarpmalıdır. Lazer modülünüzün parlak bir güneş ışığında çalışacak kadar güçlü olduğundan emin olun.
Yukarıdaki amaç için bir PVC boru kullanabilir ve borunun içini siyaha boyayabilirsiniz, ön kısmını kapatmayı unutmayın, bunu başarmak için yaratıcılığınızı kullanın.

Program kodu:

// ----------- Developed by R.GIRISH ---------//
#include
#include
const int rs = 7
const int en = 6
const int d4 = 5
const int d5 = 4
const int d6 = 3
const int d7 = 2
LiquidCrystal lcd(rs, en, d4, d5, d6, d7)
const int up = A0
const int down = A1
const int Set = A2
const int change = A3
const int start = 8
const int End = 9
const int buzzer = 10
const float km_h = 3.6
int distance = 10 // In meters.
int variable = 0
int count = 0
int address = 0
int value = 100
int speed_address = 1
int speed_value = 0
int i = 0
float ms = 0
float Seconds = 0
float Speed = 0
boolean buzz = false
boolean laser = false
boolean x = false
boolean y = false
void setup()
{
pinMode(start, INPUT)
pinMode(End, INPUT)
pinMode(up, INPUT)
pinMode(down, INPUT)
pinMode(Set, INPUT)
pinMode(change, INPUT)
pinMode(buzzer, OUTPUT)
digitalWrite(change, HIGH)
digitalWrite(up, HIGH)
digitalWrite(down, HIGH)
digitalWrite(Set, HIGH)
digitalWrite(buzzer, LOW)
lcd.begin(16, 2)
lcd.clear()
lcd.setCursor(0, 0)
lcd.print(F(' Vehicle Speed'))
lcd.setCursor(0, 1)
lcd.print(F(' detector'))
delay(1500)
if (EEPROM.read(address) != value)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Speed Limit')
lcd.setCursor(0, 1)
lcd.print('km/h:')
lcd.setCursor(6, 1)
lcd.print(count)
while (x == false)
{
if (digitalRead(up) == LOW)
{
lcd.setCursor(6, 1)
count = count + 1
lcd.print(count)
delay(200)
}
if (digitalRead(down) == LOW)
{
lcd.setCursor(6, 1)
count = count - 1
lcd.print(count)
delay(200)
}
if (digitalRead(Set) == LOW)
{
speed_value = count
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Speed Limit is')
lcd.setCursor(0, 1)
lcd.print('set to ')
lcd.print(speed_value)
lcd.print(' km/h')
EEPROM.write(speed_address, speed_value)
delay(2000)
x = true
}
}
EEPROM.write(address, value)
}
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Testing Laser')
lcd.setCursor(0, 1)
lcd.print('Alignment....')
delay(1500)
while (laser == false)
{
if (digitalRead(start) == HIGH && digitalRead(End) == HIGH)
{
laser = true
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Laser Alignment')
lcd.setCursor(0, 1)
lcd.print('Status: OK')
delay(1500)
}
while (digitalRead(start) == LOW && digitalRead(End) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Both Lasers are')
lcd.setCursor(0, 1)
lcd.print('not Aligned')
delay(1000)
}
while (digitalRead(start) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Start Laser not')
lcd.setCursor(0, 1)
lcd.print('Aligned')
delay(1000)
}
while (digitalRead(End) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('End Laser not')
lcd.setCursor(0, 1)
lcd.print('Aligned')
delay(1000)
}
}
lcd.clear()
}
void loop()
{
if (digitalRead(change) == LOW)
{
change_limit()
}
if (digitalRead(start) == LOW)
{
variable = 1
buzz = true
while (variable == 1)
{
ms = ms + 1
delay(1)
if (digitalRead(End) == LOW)
{
variable = 0
}
}
Seconds = ms / 1000
ms = 0
}
if (Speed {
y = true
}
Speed = distance / Seconds
Speed = Speed * km_h
if (isinf(Speed))
{
lcd.setCursor(0, 0)
lcd.print('Speed:0.00')
lcd.print(' km/h ')
}
else
{
lcd.setCursor(0, 0)
lcd.print('Speed:')
lcd.print(Speed)
lcd.print('km/h ')
lcd.setCursor(0, 1)
lcd.print(' ')
if (buzz == true)
{
buzz = false
digitalWrite(buzzer, HIGH)
delay(100)
digitalWrite(buzzer, LOW)
}
if (Speed > EEPROM.read(speed_address))
{
lcd.setCursor(0, 0)
lcd.print('Speed:')
lcd.print(Speed)
lcd.print('km/h ')
lcd.setCursor(0, 1)
lcd.print('Overspeed Alert!')
if (y == true)
{
y = false
for (i = 0 i <45 i++)
{
digitalWrite(buzzer, HIGH)
delay(50)
digitalWrite(buzzer, LOW)
delay(50)
}
}
}
}
}
void change_limit()
{
x = false
count = EEPROM.read(speed_address)
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Speed Limit')
lcd.setCursor(0, 1)
lcd.print('km/h:')
lcd.setCursor(6, 1)
lcd.print(count)
while (x == false)
{
if (digitalRead(up) == LOW)
{
lcd.setCursor(6, 1)
count = count + 1
lcd.print(count)
delay(200)
}
if (digitalRead(down) == LOW)
{
lcd.setCursor(6, 1)
count = count - 1
lcd.print(count)
delay(200)
}
if (digitalRead(Set) == LOW)
{
speed_value = count
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Speed Limit is')
lcd.setCursor(0, 1)
lcd.print('set to ')
lcd.print(speed_value)
lcd.print(' km/h')
EEPROM.write(speed_address, speed_value)
delay(2000)
x = true
lcd.clear()
}
}
}
// ----------- Developed by R.GIRISH ---------//

Şimdi bu devrenin nasıl çalıştırılacağını görelim:

• Devrenizi tamamlayın ve kodu yükleyin.
• İki lazer / LDR arasındaki mesafe tam olarak 10 metre olmalıdır, daha az veya daha fazla olmamalıdır, Aksi takdirde hız yanlış hesaplanacaktır (ilk diyagramda gösterilmiştir).
• Seçtiğiniz lazer ve LDR kutusu arasındaki mesafe ve koşullar.
• Devre, LDR ile lazer yanlış hizalamasını kontrol edecektir, eğer varsa lütfen LCD'de görüntülenen bilgilere göre düzeltiniz.
• Başlangıçta devre sizden devrenin uyaracağı km / s cinsinden bir hız sınırı değeri girmenizi isteyecektir, yukarı (S1) ve aşağı (S2) tuşlarına basarak ekrandaki sayıyı değiştirebilir ve set (S3) tuşuna basabilirsiniz, bu değer kaydedilecektir.
• Bu hız sınırını değiştirmek için S4 düğmesine basın ve yeni bir hız sınırı ayarlayabilirsiniz.
• Şimdi 30 km / sa hızla bir motorlu bisiklet sürün ve lazer ışınlarını kesin, devre size 30 km / saate çok yakın bir sayı göstermelidir.
• Bitirdiniz ve devreniz kampüs güvenliğinize hizmet etmeye hazır.

Yazarın prototipi:

araç hızı algılama prototipi

Bu trafik polisi araç hız dedektörü devresiyle ilgili herhangi bir sorunuz varsa, lütfen yorum bölümünde sormaktan çekinmeyin, hızlı bir yanıt alabilirsiniz.




Önceki: PIR Sensör Veri Sayfası, Pinout Özellikleri, Çalışma Sonraki: Uzaktan Kumanda Test Devresi