Sirkuit Detektor Kecepatan Kendaraan untuk Polisi Lalu Lintas

Coba Instrumen Kami Untuk Menghilangkan Masalah





Dalam posting ini kita akan membangun sirkuit yang dapat mengukur kecepatan kendaraan apapun di jalan raya dan jalan raya. Sirkuit yang diusulkan tetap diam di tempat di mana kendaraan dicurigai melaju terlalu cepat. Jika ada kendaraan yang melewati batas kecepatan, sirkuit segera memberi peringatan. Kita akan melihat kode, diagram sirkuit dan logika bagaimana kecepatan kendaraan diukur.

Objektif

Melaju kencang menyebabkan 75% kecelakaan di jalan raya menurut laporan kematian karena kecelakaan 2015 di India, itu angka yang sangat besar. Sebagian besar polisi lalu lintas mencoba menahan pengendara yang mengendarai kendaraannya dengan berbahaya di luar batas kecepatan kota.



Tidak setiap kali polisi lalu lintas dapat menghentikan kendaraan yang melaju kencang dan menuntut mereka. Sehingga dipasang sebuah alat bernama speed camera yang diduga pengendara motor over speed seperti daerah rawan kecelakaan yang sering terjadi, persimpangan dll.

Kami akan membuat sesuatu yang mirip dengan kamera kecepatan, tetapi dengan cara yang lebih sederhana, yang dapat dipasang di dalam kampus seperti sekolah, kampus atau taman IT atau hanya sebagai proyek yang menyenangkan.



Proyek yang diusulkan terdiri dari layar LCD 16 x 2 untuk menampilkan kecepatan setiap kendaraan yang melewati dua sinar laser yang ditempatkan terpisah tepat 10 meter untuk mengukur kecepatan kendaraan saat menghentikan sinar laser tersebut.

Bel akan berbunyi bip saat kendaraan melintas yang menandakan kendaraan terdeteksi dan kecepatan setiap kendaraan akan ditampilkan di layar LCD. Saat kendaraan melampaui batas kecepatan, bel akan berbunyi terus menerus dan kecepatan kendaraan akan ditampilkan di layar.

CATATAN: Kecepatan kendaraan akan ditampilkan pada LCD terlepas dari apakah kendaraan tersebut melaju dengan kecepatan lebih atau kurang.

Sekarang mari kita lihat logika di balik rangkaian untuk mengukur kecepatan.

Kita semua tahu rumus sederhana yang disebut rumus kecepatan - jarak - waktu.
Kecepatan = Jarak / Waktu.

• Kecepatan dalam meter per detik,
• Jarak dalam meter,
• Waktu dalam hitungan detik.

Untuk mengetahui kecepatannya, kita harus mengetahui jarak katakan “x” yang ditempuh dengan kendaraan dan waktu yang ditempuh untuk menempuh jarak tersebut “x”.

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

mengukur kecepatan kendaraan lalu lintas

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

Waktu akan dihitung oleh Arduino, saat kendaraan menghentikan 'laser start', pengatur waktu dimulai dan saat kendaraan menghentikan 'laser akhir', pengatur waktu berhenti dan menerapkan nilai ke persamaan Arduino akan menemukan kecepatan kendaraan.

Harap dicatat bahwa kecepatan kendaraan hanya akan terdeteksi dalam satu arah, yaitu mulai laser untuk menghentikan laser, untuk mendeteksi kendaraan di arah lain, pengaturan lain yang sama harus ditempatkan pada arah yang berlawanan. Jadi, ini ideal untuk tempat-tempat seperti sekolah, kolase, dll. Yang memiliki gerbang masuk dan keluar.

Sekarang mari kita lihat diagram skematiknya:

Koneksi antara Arduino dan tampilan:

Tampilan kecepatan kendaraan LCD

Sirkuit di atas sudah cukup jelas dan cukup hubungkan kabel sesuai sirkuit. Sesuaikan potensiometer 10K untuk menyesuaikan kontras tampilan.

Detail Kabel Tambahan:

Pengaturan kabel pengukur jarak kendaraan kecepatan

Rangkaian diatas terdiri dari Arduino, 4 push button, 2 resistor pull down 10K (tidak merubah nilai resistor), 2 LDR dan 1 buzzer. Fungsi dari 4 tombol tekan akan dijelaskan secara singkat. Sekarang mari kita lihat cara memasang LDR dengan benar.

LDR mouting untuk deteksi kecepatan kendaraan

LDR harus saya tutupi dari sinar matahari dengan baik, hanya sinar laser yang harus mengenai LDR. Pastikan modul laser Anda cukup kuat untuk bekerja di bawah sinar matahari yang cerah.
Anda dapat menggunakan pipa PVC untuk tujuan di atas dan mengecatnya dengan warna hitam di dalam tabung jangan lupa untuk menutupi bagian depan, gunakan kreativitas Anda untuk melakukannya.

Kode 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 mengoperasikan sirkuit ini:

• Lengkapi sirkuit Anda dan unggah kodenya.
• Jarak antara dua laser / LDR harus tepat 10 meter, tidak kurang atau tidak lebih, Jika tidak, kecepatan akan salah perhitungan (ditunjukkan pada diagram pertama).
• Jarak antara laser dan LDR bisa sesuai pilihan dan keadaan Anda.
• Sirkuit akan memeriksa ketidaksejajaran laser dengan LDR, jika ada, perbaiki sesuai informasi yang ditampilkan pada LCD.
• Awalnya sirkuit akan meminta Anda untuk memasukkan nilai batas kecepatan dalam km / jam di luar itu sirkuit peringatan, dengan menekan atas (S1) dan bawah (S2) Anda dapat mengubah nomor pada tampilan dan tekan set (S3), ini nilai akan disimpan.
• Untuk mengubah batas kecepatan ini, tekan tombol S4 dan Anda dapat menyetel batas kecepatan baru.
• Sekarang kendarai sepeda motor dengan kecepatan 30 km / jam dan hentikan sinar laser, sirkuit akan menunjukkan angka yang mendekati 30 km / jam.
• Anda sudah selesai dan sirkuit Anda siap untuk melayani keamanan kampus Anda.

Prototipe penulis:

prototipe deteksi kecepatan kendaraan

Jika ada pertanyaan tentang rangkaian detektor kecepatan kendaraan polisi lalu lintas ini, jangan ragu untuk bertanya di bagian komentar, Anda mungkin mendapatkan balasan cepat.




Sepasang: Lembar Data Sensor PIR, Spesifikasi Pinout, Bekerja Berikutnya: Sirkuit Penguji Remote Control