دائرة كشف سرعة السيارة لشرطة المرور

جرب أداة القضاء على المشاكل





في هذا المنشور ، سننشئ دائرة يمكنها قياس سرعة أي مركبة على الطرق والطرق السريعة. يتم الاحتفاظ بالدائرة المقترحة ثابتة في مكان يشتبه في أن المركبات قد تجاوزت فيه السرعة. إذا تجاوزت أي مركبة الحد الأقصى للسرعة ، تنبه الدائرة على الفور. سنبحث في الكود ومخطط الدائرة والمنطق في كيفية قياس سرعة السيارة.

هدف

تؤدي السرعة الزائدة إلى 75٪ من حوادث الطرق وفقًا لتقرير الوفيات العرضية لعام 2015 في الهند ، وهذا رقم ضخم. تحاول معظم شرطة المرور اعتقال سائقي السيارات الذين يقودون سيارتهم بشكل خطير إلى ما بعد حدود سرعة المدينة.



ليس في كل مرة يمكن لشرطة المرور إيقاف مركبة مفرطة السرعة وشحنها. لذلك يتم تثبيت جهاز يسمى كاميرا السرعة حيث يُشتبه في أن السائقين تجاوزوا السرعة مثل المناطق المعرضة للحوادث المتكررة والتقاطعات وما إلى ذلك.

سنقوم ببناء شيء مشابه لكاميرا السرعة ، ولكن بطريقة مبسطة للغاية ، والتي يمكن تثبيتها داخل حرم جامعي مثل المدرسة أو الكلية أو حدائق تكنولوجيا المعلومات أو كمشروع ممتع.



يتكون المشروع المقترح من شاشة عرض LCD مقاس 16 × 2 لعرض سرعة كل مركبة تمر من خلال شعاعي ليزر يتم وضعهما على مسافة 10 أمتار بالضبط لقياس سرعة السيارة أثناء مقاطعة أشعة الليزر هذه.

سيصدر صوت صفير عند تجاوز السيارة للإشارة إلى اكتشاف مركبة وسيتم عرض سرعة كل مركبة على شاشة LCD. عندما تتجاوز السيارة الحد الأقصى للسرعة ، سيصدر الجرس صفيرًا باستمرار وسيتم عرض سرعة السيارة على الشاشة.

ملاحظة: سيتم عرض سرعة السيارة على شاشة LCD بغض النظر عن تجاوز السيارة للسرعة أو انخفاضها.

الآن دعونا نرى المنطق وراء الدائرة لقياس السرعة.

نعلم جميعًا صيغة بسيطة تسمى معادلة السرعة - المسافة - الوقت.
السرعة = المسافة / الوقت.

• السرعة بالمتر في الثانية ،
• المسافة بالمتر ،
• الوقت بالثواني.

لمعرفة السرعة ، علينا أن نعرف المسافة نقول 'x' التي قطعتها السيارة والوقت المستغرق لقطع تلك المسافة 'x'.

للقيام بذلك ، نقوم بإعداد شعاعي ليزر واثنين من LDRs بمسافة 10 أمتار على النحو التالي:

قياس سرعة مركبة المرور

نعلم أن المسافة ثابتة 10 أمتار ، والآن علينا معرفة الوقت في المعادلة.

سيتم احتساب الوقت بواسطة Arduino ، عندما تقاطع السيارة 'بدء الليزر' ، يبدأ المؤقت وعندما تقاطع السيارة 'الليزر النهائي' ، يتوقف المؤقت ويطبق القيم على المعادلة سيجد Arduino سرعة السيارة.

يرجى ملاحظة أنه سيتم الكشف عن سرعة السيارة في اتجاه واحد فقط ، أي بدء الليزر لإيقاف الليزر ، لاكتشاف السيارة في اتجاه آخر ، يجب وضع نفس الإعداد في الاتجاه المعاكس. لذلك ، يعد هذا مثاليًا لأماكن مثل المدرسة ، والكليات ، وما إلى ذلك ، حيث يوجد بها بوابات داخلية وخارجية.

الآن دعونا نرى الرسم التخطيطي:

الاتصال بين Arduino والعرض:

عرض سرعة السيارة LCD

هناك دارة أعلاه تشرح نفسها بنفسها وتوصيل الأسلاك حسب الدائرة. اضبط مقياس الجهد 10K لضبط تباين الشاشة.

تفاصيل الأسلاك الإضافية:

سرعة السيارة مسافة قياس إعداد الأسلاك

تتكون الدائرة المذكورة أعلاه من Arduino ، و 4 أزرار ضغط ، ومقاومين سحب لأسفل بقوة 10 كيلو بايت (لا تغير قيمة المقاومات) ، واثنين من LDRs وجرس واحد. سيتم شرح وظيفة الأزرار الانضغاطية الأربعة قريبًا. الآن دعونا نرى كيفية تركيب LDR بشكل صحيح.

LDR mouting لاكتشاف سرعة السيارة

يجب أن أغطي LDR ضوء الشمس بشكل صحيح ، يجب أن يضرب شعاع الليزر فقط LDR. تأكد من أن وحدة الليزر الخاصة بك قوية بما يكفي للعمل في ضوء الشمس الساطع.
يمكنك استخدام أنبوب PVC للأغراض المذكورة أعلاه ودهانه باللون الأسود داخل الأنبوب ولا تنس تغطية الجزء الأمامي ، واستخدم إبداعك لتحقيق ذلك.

كود البرنامج:

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

الآن دعونا نرى كيفية تشغيل هذه الدائرة:

• أكمل دائرتك وقم بتحميل الكود.
• يجب أن تكون المسافة بين جهازي ليزر / LDRs بالضبط 10 أمتار ، لا تقل أو لا تزيد ، وإلا فسيتم حساب السرعة بشكل خاطئ (كما هو موضح في الرسم التخطيطي الأول).
• المسافة بين الليزر وعلبة LDR من اختيارك وظروفك.
• ستتحقق الدائرة من عدم محاذاة الليزر مع LDR ، إن وجدت ، يرجى تصحيحها وفقًا للمعلومات المعروضة على شاشة LCD.
• في البداية ستطلب منك الدائرة إدخال قيمة حد السرعة بالكيلومتر / الساعة والتي بعدها تنبه الدائرة ، بالضغط لأعلى (S1) ولأسفل (S2) يمكنك تغيير الرقم على الشاشة والضغط على ضبط (S3) ، هذا سيتم حفظ القيمة.
• لتغيير حد السرعة هذا ، اضغط على الزر S4 ويمكنك تعيين حد جديد للسرعة.
• الآن قم بقيادة دراجة نارية بسرعة 30 كم / ساعة وقم بمقاطعة أشعة الليزر ، يجب أن تظهر لك الدائرة رقمًا قريبًا جدًا من 30 كم / ساعة.
• لقد انتهيت ودائرتك جاهزة لخدمة سلامة الحرم الجامعي.

النموذج الأولي للمؤلف:

نموذج الكشف عن سرعة السيارة

إذا كانت لديك أي أسئلة بخصوص دائرة كاشف سرعة المركبات التابعة لشرطة المرور ، فلا تتردد في طرحها في قسم التعليقات ، فقد تحصل على رد سريع.




السابق: ورقة بيانات مستشعر PIR ، مواصفات Pinout ، العمل التالي: دائرة اختبار التحكم عن بعد