Круг детектора брзине возила за саобраћајну полицију

Испробајте Наш Инструмент За Елиминисање Проблема





У овом посту ћемо конструисати коло које може да мери брзину било ког возила на путевима и аутопутевима. Предложени круг не мирује на месту за које се сумња да пребрзо прелазе. Ако неко возило пређе ограничење брзине, круг одмах упозорава. Тражићемо код, шему кола и логику како се мери брзина возила.

објективан

Премашивање брзине изазива 75% саобраћајних незгода, према извештају о несрећним смртним случајевима у Индији из 2015. године, то је огроман број. Већина саобраћајне полиције покушава да задржи возаче који опасно возе своје возило преко градске брзине.



Не може сваки пут саобраћајна полиција зауставити пребрзо возило и напунити их. Дакле, инсталиран је уређај који се назива камера за контролу брзине, где се сумња да возачи пребрзи, као што су честа подручја склона несрећама, раскрснице итд.

Изградићемо нешто слично брзинској камери, али на много поједностављени начин, која се може инсталирати у кампусу попут школе, факултета или ИТ паркова или само као забаван пројекат.



Предложени пројекат састоји се од 16 к 2 ЛЦД екрана за приказ брзине сваког возила које пролази кроз две ласерске зраке које су одвојене тачно 10 метара за мерење брзине возила док прекидају те ласерске зраке.

Звучни сигнал ће се огласити када се возило прође, показујући да је возило откривено и да ће брзина сваког возила бити приказана на ЛЦД дисплеју. Када возило пређе ограничење брзине, зујало ће непрекидно оглашавати и брзина возила ће бити приказана на дисплеју.

НАПОМЕНА: Брзина возила биће приказана на ЛЦД-у, без обзира на то што возило прелази или премало.

Сада да видимо логику иза кола за мерење брзине.

Сви знамо једноставну формулу која се назива формула брзина - удаљеност - време.
Брзина = Удаљеност / време.

• Брзина у метру у секунди,
• Удаљеност у метру,
• Време у секундама.

Да бисмо знали брзину, морамо знати удаљеност рецимо „к“ пређену возилом и време потребно да се пређе та удаљеност „к“.

Да бисмо то урадили постављамо два ласерска зрака и два ЛДР-а са удаљеностом од 10 метара на следећи начин:

мера брзине саобраћајног возила

Знамо да је удаљеност 10 метара која је фиксна, сада морамо знати време у једначини.

Ардуино ће израчунати време, када возило прекида „стартни ласер“, тајмер почиње, а када возило прекида „крајњи ласер“, тајмер се зауставља и применом вредности на једначину Ардуино проналази брзину возила.

Имајте на уму да ће се брзина возила детектовати само у једном смеру, тј. Покренути ласер да заустави ласер, да би се возило детектовало у другом смеру, друга иста поставка мора бити постављена у супротном смеру. Дакле, ово је идеално за места попут школе, колажа итд. Где имају улазне и излазне капије.

Сада да видимо шематски дијаграм:

Веза између Ардуина и екрана:

ЛЦД приказ брзине возила

Горе наведени круг је саморазумљив и само повежите ожичење према кругу. Подесите 10К потенциометар за подешавање контраста екрана.

Додатни детаљи ожичења:

Постављено ожичење за мерење брзине возила

Горњи круг се састоји од Ардуина, 4 дугмета, два 10К отпорна отпора (не мењају вредност отпорника), два ЛДР-а и један зујалица. Укратко ће бити објашњена функција 4 тастера. Сада да видимо како правилно монтирати ЛДР.

ЛДР моут за откривање брзине возила

ЛДР ме мора правилно заштитити од сунчеве светлости, само ласерски зрак треба да удари у ЛДР. Уверите се да је ваш ласерски модул довољно моћан да ради под јарким сјајем сунца.
У горе наведене сврхе можете користити ПВЦ цев и обојати је у црно у цеви, не заборавите да покријете предњи део, искористите своју креативност да то постигнете.

Програмски код:

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

Сада да видимо како се управља овим кругом:

• Завршите коло и отпремите код.
• Удаљеност између два ласера ​​/ ЛДР-а треба да буде тачно 10 метара, ни мање ни више, у супротном, брзина ће бити погрешно израчуната (приказано на првом дијаграму).
• Удаљеност између ласера ​​и ЛДР може бити по вашем избору и околностима.
• Струјни круг ће проверити да ли ласерски несклад са ЛДР-ом постоји, ако постоји, исправите га према информацијама приказаним на ЛЦД-у.
• У почетку ће круг тражити да унесете вредност ограничења брзине у км / х преко које круг упозорава, притиском на горе (С1) и доле (С2) можете променити број на екрану и притиснути сет (С3), ово вредност ће бити сачувана.
• Да бисте променили ово ограничење брзине, притисните тастер С4 и можете поставити ново ограничење брзине.
• Сада возите мотоцикл брзином од 30 км / х и прекидајте ласерске зраке, круг би требало да вам покаже број врло близу 30 км / х.
• Готови сте и круг је спреман да служи вашој сигурности у кампусу.

Ауторски прототип:

прототип за откривање брзине возила

Ако имате било каквих питања у вези са овим кругом детектора брзине возила саобраћајне полиције, слободно питајте у одељку за коментаре, можда ћете добити брзи одговор.




Претходно: Листе података ПИР сензора, Спецификације пиноута, Радно Следеће: Круг тестера даљинског управљача