Litar Pengesan Kelajuan Kenderaan untuk Polis Trafik

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dalam catatan ini kita akan membina litar yang dapat mengukur kelajuan mana-mana kenderaan di jalan raya dan lebuh raya. Litar yang dicadangkan disimpan tidak bergerak di tempat di mana kenderaan disyaki terlalu laju. Sekiranya ada kenderaan melampaui had laju, litar akan segera dimaklumkan. Kami akan melihat kod, gambarajah litar dan logik bagaimana kelajuan kenderaan diukur.

Objektif

Kelajuan yang terlalu tinggi menyebabkan 75% kemalangan jalan raya menurut laporan kematian tidak sengaja 2015 di India, itu adalah jumlah yang besar. Sebilangan besar polis trafik cuba menahan pemandu yang memandu kenderaan mereka secara berbahaya melebihi had laju bandar.



Tidak setiap kali polis trafik dapat menghentikan kenderaan yang terlalu laju dan menagih mereka. Oleh itu, peranti yang dinamakan kamera laju dipasang di mana pengguna kenderaan disyaki terlalu laju seperti kawasan yang sering mengalami kemalangan, persimpangan dll.

Kami akan membina sesuatu yang serupa dengan kamera laju, tetapi dengan cara yang lebih mudah, yang boleh dipasang di dalam kampus seperti sekolah, kolej atau taman IT atau hanya sebagai projek yang menyeronokkan.



Projek yang dicadangkan terdiri daripada paparan LCD 16 x 2 untuk memperlihatkan kelajuan setiap kenderaan yang melewati dua sinar laser yang terletak tepat 10 meter untuk mengukur kelajuan kenderaan sambil mengganggu pancaran laser tersebut.

Bel akan berbunyi apabila kenderaan dilewati menunjukkan bahawa kenderaan dikesan dan kelajuan setiap kenderaan akan ditunjukkan pada paparan LCD. Apabila kenderaan melampaui had laju, bel akan berbunyi terus dan kelajuan kenderaan akan ditunjukkan pada paparan.

CATATAN: Kelajuan kenderaan akan dipaparkan di LCD tanpa mengira kenderaan melaju dengan kelajuan atau di bawah kelajuan.

Sekarang mari kita lihat logik di belakang litar untuk mengukur kelajuan.

Kita semua tahu formula mudah yang disebut formula jarak - jarak - masa.
Kelajuan = Jarak / Masa.

• Kelajuan dalam meter sesaat,
• Jarak dalam meter,
• Masa dalam beberapa saat.

Untuk mengetahui kelajuannya, kita harus mengetahui jarak mengatakan 'x' yang dilalui kenderaan dan masa yang diperlukan untuk menempuh jarak 'x' itu.

Untuk melakukan ini, kami memasang dua sinar laser dan dua LDR dengan jarak 10 meter dengan cara berikut:

ukuran kelajuan kenderaan lalu lintas

Kita tahu jaraknya adalah 10 meter yang tetap, sekarang kita harus mengetahui masa dalam persamaan.

Waktu akan dihitung oleh Arduino, ketika kenderaan mengganggu 'laser permulaan', pemasa akan bermula dan ketika kenderaan mengganggu 'laser akhir' pemasa berhenti dan menerapkan nilai pada persamaan Arduino akan mencari kelajuan kenderaan.

Harap diperhatikan bahawa kelajuan kenderaan hanya dapat dikesan dalam satu arah iaitu memulakan laser untuk menghentikan laser, untuk mengesan kenderaan ke arah lain, persediaan yang sama harus dilakukan pada arah yang berlawanan. Jadi, ini sangat sesuai untuk tempat-tempat seperti sekolah, kolaj dll di mana mereka mempunyai pintu masuk dan keluar.

Sekarang mari kita lihat rajah skematik:

Sambungan antara Arduino dan paparan:

Paparan kelajuan kenderaan LCD

Terdapat litar di atas yang cukup jelas dan sambungkan pendawaian mengikut litar. Laraskan potensiometer 10K untuk menyesuaikan kontras paparan.

Butiran Pendawaian Tambahan:

Pengaturan pendawaian mengukur jarak kenderaan laju

Litar di atas terdiri daripada Arduino, 4 butang tekan, dua perintang tarik 10K (jangan ubah nilai perintang), dua LDR dan satu buzzer. Fungsi 4 butang tekan akan dijelaskan sebentar lagi. Sekarang mari kita lihat cara memasang LDR dengan betul.

LDR bersuara untuk mengesan kelajuan kenderaan

LDR mesti saya tutupi cahaya matahari dengan betul, hanya sinar laser yang boleh menyerang LDR. Pastikan modul laser anda cukup kuat untuk berfungsi dalam cahaya matahari yang cerah.
Anda boleh menggunakan paip PVC untuk tujuan di atas dan catnya hitam di dalam tiub jangan lupa menutup bahagian depan, gunakan kreativiti anda untuk mencapainya.

Kod Program:

// ----------- 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 ---------//

Sekarang mari kita lihat cara mengendalikan litar ini:

• Lengkapkan litar anda dan muat naik kodnya.
• Jarak antara dua laser / LDR mestilah tepat 10 meter, tidak kurang atau tidak lebih, Jika tidak, kelajuan akan salah perhitungan (ditunjukkan dalam rajah pertama).
• Jarak antara laser dan LDR boleh menjadi pilihan dan keadaan anda.
• Litar akan memeriksa ketidaksejajaran laser dengan LDR, jika ada sila perbetulkannya mengikut maklumat yang dipaparkan pada LCD.
• Pada mulanya litar akan meminta anda memasukkan nilai had laju dalam km / jam melebihi litar yang memberi amaran, dengan menekan ke atas (S1) dan ke bawah (S2) anda dapat mengubah nombor pada paparan dan tekan set (S3), ini nilai akan disimpan.
• Untuk mengubah had laju ini, tekan butang S4 dan anda dapat menetapkan had laju baru.
• Sekarang jalankan pemanduan basikal motor dengan jarak 30 km / jam dan mengganggu pancaran laser, litar harus menunjukkan angka yang hampir dengan 30 km / jam.
• Anda sudah selesai dan litar anda siap melayani keselamatan kampus anda.

Prototaip pengarang:

prototaip pengesanan kelajuan kenderaan

Sekiranya ada pertanyaan mengenai litar pengesan kelajuan kenderaan polis trafik ini, jangan ragu untuk bertanya di bahagian komen, anda mungkin mendapat balasan cepat.




Sebelumnya: Lembar Data Sensor PIR, Spesifikasi Pinout, Berfungsi Seterusnya: Litar Penguji Kawalan Jauh