วงจรตรวจจับความเร็วรถสำหรับตำรวจจราจร

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในโพสต์นี้เราจะสร้างวงจรที่สามารถวัดความเร็วของยานพาหนะใด ๆ บนถนนและทางหลวง วงจรที่นำเสนอจะถูกจัดให้อยู่กับที่ในสถานที่ที่สงสัยว่ายานพาหนะใช้ความเร็วเกินกำหนด หากรถคันใดใช้ความเร็วเกินกำหนดวงจรจะแจ้งเตือนทันที เราจะดูรหัสแผนภาพวงจรและตรรกะวิธีวัดความเร็วของยานพาหนะ

วัตถุประสงค์

การเร่งความเร็วมากเกินไปทำให้เกิดอุบัติเหตุบนท้องถนน 75% ตามรายงานการเสียชีวิตจากอุบัติเหตุปี 2015 ในอินเดียซึ่งเป็นจำนวนมาก ตำรวจจราจรส่วนใหญ่พยายามกักขังผู้ขับขี่รถยนต์ที่ขับรถเกินความเร็วในเมืองอย่างเป็นอันตราย



ไม่ใช่ทุกครั้งที่ตำรวจจราจรสามารถหยุดรถที่เร่งความเร็วและเรียกเก็บเงินได้ ดังนั้นจึงมีการติดตั้งอุปกรณ์ที่เรียกว่ากล้องจับความเร็วในจุดที่สงสัยว่าผู้ขับขี่ใช้ความเร็วเช่นบริเวณที่เกิดอุบัติเหตุบ่อยทางแยกเป็นต้น

เรากำลังจะสร้างสิ่งที่คล้ายกับกล้องจับความเร็ว แต่ด้วยวิธีที่ง่ายกว่ามากซึ่งสามารถติดตั้งภายในวิทยาเขตเช่นโรงเรียนวิทยาลัยหรือสวนสาธารณะไอทีหรือเป็นโครงการสนุก ๆ



โครงการที่นำเสนอประกอบด้วยจอ LCD 16 x 2 เพื่อแสดงความเร็วของรถแต่ละคันที่ผ่านลำแสงเลเซอร์สองอันซึ่งวางห่างกัน 10 เมตรเพื่อวัดความเร็วของยานพาหนะในขณะที่ขัดจังหวะลำแสงเลเซอร์เหล่านั้น

เสียงกริ่งจะส่งเสียงบี๊บเมื่อรถผ่านเพื่อแสดงว่าตรวจพบรถและความเร็วของรถแต่ละคันจะแสดงบนจอ LCD เมื่อยานพาหนะใช้ความเร็วเกินขีด จำกัด เสียงกริ่งจะส่งเสียงบี๊บอย่างต่อเนื่องและความเร็วของรถจะแสดงบนหน้าจอ

หมายเหตุ: ความเร็วของรถจะแสดงบนจอ LCD ไม่ว่ารถจะขับด้วยความเร็วหรือความเร็วต่ำ

ตอนนี้เรามาดูตรรกะที่อยู่เบื้องหลังวงจรสำหรับการวัดความเร็ว

เราทุกคนรู้จักสูตรง่ายๆที่เรียกว่าสูตรความเร็ว - ระยะทาง - เวลา
ความเร็ว = ระยะทาง / เวลา

•ความเร็วเป็นเมตรต่อวินาที
•ระยะทางเป็นเมตร
•เวลาเป็นวินาที

หากต้องการทราบความเร็วเราต้องทราบระยะทางว่า“ x” เดินทางโดยยานพาหนะและเวลาที่ใช้เพื่อให้ครอบคลุมระยะทางนั้น“ x”

ในการทำเช่นนี้เรากำลังตั้งค่าลำแสงเลเซอร์สองตัวและ LDR สองตัวที่มีระยะทาง 10 เมตรตามแบบต่อไปนี้:

วัดความเร็วรถจราจร

เรารู้ว่าระยะทางคือ 10 เมตรซึ่งคงที่แล้วตอนนี้เราต้องรู้เวลาในสมการ

Arduino จะคำนวณเวลาเมื่อรถขัดจังหวะ“ เลเซอร์สตาร์ท” ตัวจับเวลาจะเริ่มขึ้นและเมื่อรถขัดจังหวะ“ เลเซอร์สิ้นสุด” ตัวจับเวลาจะหยุดและใช้ค่ากับสมการ Arduino จะพบความเร็วของยานพาหนะ

โปรดทราบว่าความเร็วของรถจะถูกตรวจจับในทิศทางเดียวเท่านั้นเช่นเริ่มเลเซอร์เพื่อหยุดเลเซอร์เพื่อตรวจจับรถในทิศทางอื่นจะต้องมีการตั้งค่าเดียวกันในทิศทางตรงกันข้าม ดังนั้นจึงเหมาะสำหรับสถานที่เช่นโรงเรียนภาพตัดปะ ฯลฯ ที่มีประตูเข้าและออก

ตอนนี้เรามาดูแผนภาพ:

การเชื่อมต่อระหว่าง Arduino และจอแสดงผล:

จอแสดงความเร็วรถ LCD

มีวงจรด้านบนอธิบายตัวเองได้และเพียงแค่ต่อสายไฟตามวงจร ปรับโพเทนชิออมิเตอร์ 10K เพื่อปรับความคมชัดของการแสดงผล

รายละเอียดการเดินสายเพิ่มเติม:

ติดตั้งสายไฟวัดระยะทางของรถด้วยความเร็ว

วงจรข้างต้นประกอบด้วย Arduino, ปุ่มกด 4 ปุ่ม, ตัวต้านทานแบบดึงลง 10K สองตัว (อย่าเปลี่ยนค่าของตัวต้านทาน), LDR สองตัวและหนึ่งเสียงกริ่ง ฟังก์ชั่นของปุ่มกด 4 ปุ่มจะอธิบายในไม่ช้า ตอนนี้เรามาดูวิธีการติดตั้ง LDR อย่างถูกต้อง

LDR mouting สำหรับการตรวจจับความเร็วของรถ

LDR ต้องให้ฉันถูกปกคลุมจากแสงแดดอย่างเหมาะสมเฉพาะลำแสงเลเซอร์เท่านั้นที่จะกระทบ LDR ตรวจสอบให้แน่ใจว่าโมดูลเลเซอร์ของคุณมีพลังเพียงพอที่จะทำงานท่ามกลางแสงแดดจ้า
คุณสามารถใช้ท่อพีวีซีเพื่อจุดประสงค์ข้างต้นและทาสีดำภายในท่ออย่าลืมปิดส่วนหน้าใช้ความคิดสร้างสรรค์ของคุณเพื่อทำสิ่งนี้ให้สำเร็จ

รหัสโปรแกรม:

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

ตอนนี้เรามาดูวิธีการใช้งานวงจรนี้:

•กรอกวงจรและอัปโหลดรหัส
•ระยะห่างระหว่างเลเซอร์ / LDR สองตัวควรอยู่ที่ 10 เมตรไม่น้อยกว่าหรือไม่เกินมิฉะนั้นจะคำนวณความเร็วผิดพลาด (แสดงในแผนภาพแรก)
•ระยะห่างระหว่างเลเซอร์และ LDR สามารถเลือกและสถานการณ์ของคุณ
•วงจรจะตรวจสอบการจัดแนวเลเซอร์ด้วย LDR หากมีโปรดแก้ไขตามข้อมูลที่แสดงบนจอ LCD
•ในขั้นต้นวงจรจะขอให้คุณป้อนค่า จำกัด ความเร็วเป็นกม. / ชม. เกินกว่าที่วงจรจะแจ้งเตือนโดยการกดขึ้น (S1) และลง (S2) คุณสามารถเปลี่ยนตัวเลขบนจอแสดงผลและกด set (S3) ได้ ค่าจะถูกบันทึก
•ในการเปลี่ยนขีด จำกัด ความเร็วนี้ให้กดปุ่ม S4 และคุณสามารถกำหนดขีด จำกัด ความเร็วใหม่ได้
•ตอนนี้ขับรถมอเตอร์ไซด์ที่ 30 กม. / ชม. แล้วขัดจังหวะลำแสงเลเซอร์วงจรควรแสดงตัวเลขใกล้เคียงกับ 30 กม. / ชม.
•คุณทำเสร็จแล้วและวงจรของคุณพร้อมที่จะให้บริการความปลอดภัยในมหาวิทยาลัยของคุณ

ต้นแบบของผู้แต่ง:

ต้นแบบตรวจจับความเร็วรถ

หากมีคำถามใด ๆ เกี่ยวกับวงจรตรวจจับความเร็วรถตำรวจจราจรโปรดอย่าลังเลที่จะถามในส่วนความคิดเห็นคุณอาจได้รับคำตอบอย่างรวดเร็ว




คู่ของ: แผ่นข้อมูลเซ็นเซอร์ PIR, ข้อมูลจำเพาะ Pinout, การทำงาน ถัดไป: วงจรทดสอบการควบคุมระยะไกล