Fahrzeuggeschwindigkeitsdetektorschaltung für die Verkehrspolizei

Fahrzeuggeschwindigkeitsdetektorschaltung für die Verkehrspolizei

In diesem Beitrag werden wir eine Schaltung bauen, die die Geschwindigkeit jedes Fahrzeugs auf Straßen und Autobahnen messen kann. Die vorgeschlagene Schaltung wird an einem Ort stationär gehalten, an dem der Verdacht besteht, dass die Fahrzeuge zu schnell fahren. Wenn ein Fahrzeug das Tempolimit überschreitet, benachrichtigt der Stromkreis sofort. Wir werden den Code, den Schaltplan und die Logik untersuchen, wie die Geschwindigkeit des Fahrzeugs gemessen wird.

Zielsetzung

Übergeschwindigkeit verursacht laut Unfallbericht 2015 in Indien 75% Verkehrsunfälle, das ist eine riesige Zahl. Die meisten Verkehrspolizisten versuchen, die Autofahrer festzuhalten, die ihr Fahrzeug gefährlich über das Tempolimit der Stadt hinaus fahren.



Nicht jedes Mal kann eine Verkehrspolizei ein zu schnell fahrendes Fahrzeug anhalten und aufladen. Daher wird ein Gerät namens Radarkamera installiert, bei dem der Verdacht besteht, dass die Autofahrer zu schnell fahren, z. B. häufig unfallgefährdete Bereiche, Kreuzungen usw.



Wir werden etwas Ähnliches wie eine Radarkamera bauen, aber auf eine sehr vereinfachte Art und Weise, die auf einem Campus wie einer Schule, einem College oder einem IT-Park oder einfach nur als lustiges Projekt installiert werden kann.

Das vorgeschlagene Projekt besteht aus einem 16 x 2 LCD-Display, auf dem die Geschwindigkeit jedes Fahrzeugs angezeigt wird, das zwei Laserstrahlen durchläuft, die genau 10 Meter voneinander entfernt sind, um die Geschwindigkeit des Fahrzeugs zu messen, während diese Laserstrahlen unterbrochen werden.



Ein Summer ertönt, wenn ein Fahrzeug passiert wird, um anzuzeigen, dass ein Fahrzeug erkannt wurde, und die Geschwindigkeit jedes Fahrzeugs wird auf dem LCD-Display angezeigt. Wenn ein Fahrzeug die Geschwindigkeitsbegrenzung überschreitet, piept der Summer kontinuierlich und die Fahrzeuggeschwindigkeit wird auf dem Display angezeigt.

HINWEIS: Die Geschwindigkeit des Fahrzeugs wird auf dem LCD angezeigt, unabhängig davon, ob das Fahrzeug über oder unter der Geschwindigkeit fährt.

Lassen Sie uns nun die Logik hinter der Schaltung zum Messen der Geschwindigkeit sehen.



Wir alle kennen eine einfache Formel namens Geschwindigkeit - Entfernung - Zeitformel.
Geschwindigkeit = Entfernung / Zeit.

• Geschwindigkeit in Metern pro Sekunde,
• Entfernung in Meter,
• Zeit in Sekunden.

Um die Geschwindigkeit zu kennen, müssen wir die von einem Fahrzeug zurückgelegte Strecke „x“ und die Zeit kennen, die benötigt wird, um diese Strecke „x“ zurückzulegen.

Zu diesem Zweck richten wir zwei Laserstrahlen und zwei LDRs mit einem Abstand von 10 Metern auf folgende Weise ein:

Verkehrsfahrzeuggeschwindigkeitsmessung

Wir wissen, dass die Entfernung 10 Meter beträgt, was fest ist. Jetzt müssen wir die Zeit in der Gleichung kennen.

Die Zeit wird von Arduino berechnet, wenn das Fahrzeug den „Startlaser“ unterbricht, der Timer beginnt und wenn das Fahrzeug den „Endlaser“ unterbricht, stoppt der Timer und die Anwendung der Werte auf die Gleichung Arduino ermittelt die Geschwindigkeit des Fahrzeugs.

Bitte beachten Sie, dass die Geschwindigkeit des Fahrzeugs nur in einer Richtung erfasst wird, d. H. Der Laser wird gestartet, um den Laser zu stoppen. Um das Fahrzeug in einer anderen Richtung zu erfassen, muss ein anderes Setup in die entgegengesetzte Richtung gebracht werden. Dies ist also ideal für Orte wie Schule, Collage usw., an denen IN- und OUT-Tore vorhanden sind.

Nun sehen wir uns das schematische Diagramm an:

Verbindung zwischen Arduino und Display:

LCD-Fahrzeuggeschwindigkeitsanzeige

Dort oben ist die Schaltung selbsterklärend und schließen Sie einfach die Verkabelung gemäß der Schaltung an. Stellen Sie das 10K-Potentiometer ein, um den Anzeigekontrast einzustellen.

Zusätzliche Verdrahtungsdetails:

Verkabelung für Geschwindigkeitsentfernungsmessung eingerichtet

Die obige Schaltung besteht aus Arduino, 4 Drucktasten, zwei 10K-Pulldown-Widerständen (ändern Sie den Wert der Widerstände nicht), zwei LDRs und einem Summer. Die Funktion von 4 Drucktasten wird kurz erläutert. Nun wollen wir sehen, wie der LDR richtig gemountet wird.

LDR-Mouting zur Erkennung der Fahrzeuggeschwindigkeit

Der LDR muss mich richtig vor Sonnenlicht schützen, nur der Laserstrahl sollte auf den LDR treffen. Stellen Sie sicher, dass Ihr Lasermodul leistungsstark genug ist, um bei strahlendem Sonnenschein zu arbeiten.
Sie können ein PVC-Rohr für den oben genannten Zweck verwenden und es schwarz in das Rohr streichen. Vergessen Sie nicht, den vorderen Teil abzudecken. Verwenden Sie Ihre Kreativität, um dies zu erreichen.

Programmcode:

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

Nun wollen wir sehen, wie diese Schaltung betrieben wird:

• Vervollständigen Sie Ihre Schaltung und laden Sie den Code hoch.
• Der Abstand zwischen zwei Lasern / LDRs sollte genau 10 Meter betragen, nicht weniger oder nicht mehr. Andernfalls wird die Geschwindigkeit falsch berechnet (siehe erstes Diagramm).
• Der Abstand zwischen Laser und LDR kann Ihrer Wahl und den Umständen entsprechen.
• Die Schaltung prüft, ob der Laser mit dem LDR falsch ausgerichtet ist. Korrigieren Sie ihn gegebenenfalls gemäß den auf dem LCD angezeigten Informationen.
• Zunächst werden Sie von der Schaltung aufgefordert, einen Geschwindigkeitsbegrenzungswert in km / h einzugeben, ab dem die Schaltung benachrichtigt. Durch Drücken von Aufwärts (S1) und Abwärts (S2) können Sie die Nummer auf dem Display ändern und Set (S3) drücken Wert wird gespeichert.
• Um diese Geschwindigkeitsbegrenzung zu ändern, drücken Sie die Taste S4 und Sie können eine neue Geschwindigkeitsbegrenzung einstellen.
• Nehmen Sie jetzt eine Motorradfahrt mit 30 km / h und unterbrechen Sie die Laserstrahlen. Die Schaltung sollte Ihnen eine Zahl nahe 30 km / h anzeigen.
• Sie sind fertig und Ihre Schaltung ist bereit, Ihre Campus-Sicherheit zu gewährleisten.

Prototyp des Autors:

Prototyp der Fahrzeuggeschwindigkeitserkennung

Wenn Sie Fragen zu dieser Geschwindigkeitsmessschaltung für Verkehrspolizei-Fahrzeuge haben, wenden Sie sich bitte an den Kommentarbereich. Möglicherweise erhalten Sie eine schnelle Antwort.




Zurück: PIR-Sensor-Datenblatt, Pinbelegungsspezifikationen, Arbeiten Weiter: Fernbedienungsprüfkreis