Vehicle Speed ​​Detector Circuit for Traffic Police

Prøv Instrumentet Vårt For Å Eliminere Problemer





I dette innlegget skal vi konstruere en krets som kan måle hastigheten til ethvert kjøretøy på veier og motorveier. Den foreslåtte kretsen holdes stille på et sted der kjøretøyene mistenkes for høye hastigheter. Hvis et kjøretøy overskrider fartsgrensen, varsler kretsen umiddelbart. Vi vil se på koden, kretsskjemaet og logikken hvordan kjøretøyets hastighet måles.

Objektiv

Overkjøring forårsaker 75% trafikkulykker i henhold til utilsiktet dødsrapport 2015 i India, det er et stort antall. De fleste trafikkpolitier prøver å fange bilistene som farlig kjører bilen sin utenfor byens fartsgrense.



Ikke hver gang et trafikkpoliti kan stoppe et overkjørende kjøretøy og lade dem. Så det er installert en enhet kalt hastighetskamera der bilistene mistenkes å ha for høy hastighet, som hyppige ulykkesutsatte områder, kryss osv.

Vi skal bygge noe som ligner på fotoboks, men på en mye forenklet måte, som kan installeres inne på en campus som skole, høyskole eller IT-parker eller bare som et morsomt prosjekt.



Det foreslåtte prosjektet består av 16 x 2 LCD-skjerm for å vise hastigheten til hvert kjøretøy som går gjennom to laserstråler som er plassert fra hverandre nøyaktig 10 meter for å måle hastigheten på kjøretøyet mens de avbryter laserstrålene.

En summer piper når et kjøretøy passerer, noe som indikerer at et kjøretøy blir oppdaget og hastigheten til hvert kjøretøy vil vises på LCD-skjermen. Når et kjøretøy går utover fartsgrensen, vil lydsignalet pippe kontinuerlig, og kjøretøyets hastighet vises på skjermen.

MERKNAD: Hastigheten på kjøretøyet vises på LCD, uavhengig av om kjøretøyet går over hastighet eller under hastighet.

La oss nå se logikken bak kretsen for måling av hastighet.

Vi kjenner alle en enkel formel som kalles hastighet - avstand - tidsformel.
Hastighet = Avstand / Tid.

• Hastighet i meter per sekund,
• Avstand i meter,
• Tid i sekunder.

For å kjenne hastigheten, må vi kjenne avstanden si 'x' reist av et kjøretøy og det tar tid å dekke den avstanden 'x'.

For å gjøre dette setter vi opp to laserstråler og to LDRer på 10 meters avstand på følgende måte:

trafikk kjøretøy hastighetsmåling

Vi vet at avstanden er 10 meter som er fast, nå må vi vite tiden i ligningen.

Tiden vil bli beregnet av Arduino, når kjøretøyet avbryter 'startlaseren', begynner timeren og når kjøretøyet avbryter 'endelaseren' stopper timeren og bruker verdiene til ligningen Arduino vil finne kjøretøyets hastighet.

Vær oppmerksom på at kjøretøyets hastighet bare vil bli oppdaget i en retning, dvs. start laser for å stoppe laser, for å oppdage kjøretøyet i en annen retning, må et annet samme oppsett plasseres i motsatt retning. Så dette er ideelt for steder som skole, collage osv. Der de har IN og UT porter.

La oss nå se skjematisk diagram:

Forbindelse mellom Arduino og skjerm:

LCD-hastighetsvisning

Der over kretsen er selvforklarende, og bare koble ledningene i henhold til kretsen. Juster 10K potensiometeret for å justere skjermkontrasten.

Ytterligere ledningsdetaljer:

Hastighet kjøretøy avstand måling ledninger satt opp

Ovennevnte krets består av Arduino, 4 trykknapper, to 10K nedtrekkende motstander (ikke endre verdien på motstandene), to LDR og en summer. Funksjonen til 4 trykknapper vil snart bli forklart. La oss nå se hvordan du monterer LDR riktig.

LDR mouting for kjøretøyregistrering

LDR må være dekket av sollyset ordentlig, bare laserstrålen skal treffe LDR. Forsikre deg om at lasermodulen din er kraftig nok til å fungere i en solskinn.
Du kan bruke et PVC-rør til ovennevnte formål og male det svart inne i røret. Ikke glem å dekke til den fremre delen, bruk kreativiteten din for å oppnå dette.

Programkode:

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

La oss nå se hvordan du bruker denne kretsen:

• Fullfør kretsløpet og last opp koden.
• Avstanden mellom to lasere / LDR-er bør være nøyaktig 10 meter, ikke mindre eller ikke mer, ellers blir hastigheten feilberegnet (vist i det første diagrammet).
• Avstanden mellom laseren og LDR kan du velge og omstendighetene.
• Kretsen vil sjekke for laserjustering med LDR, hvis noen, vennligst korriger den i henhold til informasjonen som vises på LCD-skjermen.
• Opprinnelig vil kretsen be deg om å legge inn en fartsgrenseverdi i km / t utover som kretsen varsler, ved å trykke opp (S1) og ned (S2) kan du endre nummeret på displayet og trykke på sett (S3) verdien lagres.
• For å endre denne fartsgrensen, trykk på knapp S4 og du kan angi en ny fartsgrense.
• Ta nå en motorsykkelkjøring i 30 km / t og avbryt laserstrålene. Kretsen skal vise deg et tall som er veldig nær 30 km / t.
• Du er ferdig og kretsen din er klar til å ivareta sikkerheten på campus.

Forfatterens prototype:

prototyp for kjøretøyhastighetsdeteksjon

Hvis du har spørsmål angående denne trafikkpolitiets hastighetsdetektorkrets, er du velkommen til å spørre i kommentarseksjonen, du kan få et raskt svar.




Forrige: PIR-sensordataark, Pinout-spesifikasjoner, arbeid Neste: Fjernkontrolltesterkrets