Circuit de détecteur de vitesse de véhicule pour la police de la circulation

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons construire un circuit qui peut mesurer la vitesse de n'importe quel véhicule sur les routes et autoroutes. Le circuit proposé est maintenu à l'arrêt à un endroit où les véhicules sont soupçonnés de survitesse. Si un véhicule dépasse la limite de vitesse, le circuit alerte immédiatement. Nous examinerons le code, le schéma de circuit et la logique de mesure de la vitesse du véhicule.

Objectif

Les excès de vitesse causent 75% d'accidents de la route selon le rapport sur les décès accidentels de 2015 en Inde, c'est un nombre énorme. La plupart des policiers de la circulation essaient d'arrêter les automobilistes qui conduisent dangereusement leur véhicule au-delà de la limite de vitesse de la ville.



La police de la circulation ne peut pas à chaque fois arrêter un véhicule en excès de vitesse et le charger. Ainsi, un appareil appelé radar est installé là où les automobilistes sont soupçonnés de trop vite, tels que des zones à risque d'accidents fréquentes, des intersections, etc.

Nous allons construire quelque chose de similaire au radar, mais de manière très simplifiée, qui peut être installé à l'intérieur d'un campus tel qu'une école, un collège ou des parcs informatiques ou tout simplement comme un projet amusant.



Le projet proposé consiste en un écran LCD 16 x 2 pour montrer la vitesse de chaque véhicule passant à travers deux faisceaux laser qui sont espacés exactement de 10 mètres pour mesurer la vitesse du véhicule tout en interrompant ces faisceaux laser.

Un buzzer émettra un bip lorsqu'un véhicule est dépassé, indiquant qu'un véhicule est détecté et la vitesse de chaque véhicule sera affichée sur l'écran LCD. Lorsqu'un véhicule dépasse la limite de vitesse, le buzzer émet un bip continu et la vitesse du véhicule s'affiche à l'écran.

REMARQUE: La vitesse du véhicule sera affichée sur l'écran LCD indépendamment du fait que le véhicule passe en vitesse excessive ou en sous-vitesse.

Voyons maintenant la logique derrière le circuit de mesure de la vitesse.

Nous connaissons tous une formule simple appelée formule vitesse - distance - temps.
Vitesse = Distance / Temps.

• Vitesse en mètre par seconde,
• Distance en mètre,
• Temps en secondes.

Pour connaître la vitesse, nous devons connaître la distance disons «x» parcourue par un véhicule et le temps nécessaire pour parcourir cette distance «x».

Pour ce faire, nous mettons en place deux faisceaux laser et deux LDR à 10 mètres de distance de la manière suivante:

mesure de la vitesse du véhicule routier

Nous savons que la distance est de 10 mètres, ce qui est fixe, nous devons maintenant connaître l'heure dans l'équation.

Le temps sera calculé par Arduino, lorsque le véhicule interrompt le «laser de démarrage», la minuterie commence et lorsque le véhicule interrompt le «laser de fin», la minuterie s'arrête et en appliquant les valeurs à l'équation Arduino trouvera la vitesse du véhicule.

Veuillez noter que la vitesse du véhicule ne sera détectée que dans une direction, c'est-à-dire démarrer le laser pour arrêter le laser, pour détecter le véhicule dans une autre direction, une autre même configuration doit être placée dans la direction opposée. Donc, c'est idéal pour les endroits comme l'école, le collage, etc. où ils ont des portes d'entrée et de sortie.

Voyons maintenant le diagramme schématique:

Connexion entre Arduino et écran:

Affichage LCD de la vitesse du véhicule

Le circuit ci-dessus est explicite et il suffit de connecter le câblage selon le circuit. Ajustez le potentiomètre 10K pour régler le contraste de l'écran.

Détails de câblage supplémentaires:

Configuration du câblage de mesure de distance du véhicule de vitesse

Le circuit ci-dessus se compose d'Arduino, de 4 boutons poussoirs, de deux résistances de rappel 10K (ne modifiez pas la valeur des résistances), de deux LDR et d'un buzzer. La fonction des 4 boutons poussoirs sera expliquée brièvement. Voyons maintenant comment monter correctement le LDR.

Montage LDR pour la détection de la vitesse du véhicule

Le LDR doit me couvrir correctement de la lumière du soleil, seul le faisceau laser doit frapper le LDR. Assurez-vous que votre module laser est suffisamment puissant pour fonctionner sous un soleil radieux.
Vous pouvez utiliser un tuyau en PVC dans le but ci-dessus et le peindre en noir à l'intérieur du tube, n'oubliez pas de couvrir la partie avant, utilisez votre créativité pour y parvenir.

Code de programme:

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

Voyons maintenant comment faire fonctionner ce circuit:

• Terminez votre circuit et téléchargez le code.
• La distance entre deux lasers / LDR doit être exactement de 10 mètres, ni moins ni plus, sinon la vitesse sera mal calculée (indiquée dans le premier diagramme).
• La distance entre le laser et le LDR peut de votre choix et des circonstances.
• Le circuit vérifiera le désalignement du laser avec le LDR, le cas échéant, veuillez le corriger selon les informations affichées sur l'écran LCD.
• Au départ, le circuit vous demandera de saisir une valeur de limite de vitesse en km / h au-delà de laquelle le circuit alerte, en appuyant vers le haut (S1) et vers le bas (S2) vous pouvez changer le nombre sur l'écran et appuyer sur set (S3), ce la valeur sera enregistrée.
• Pour modifier cette limite de vitesse, appuyez sur le bouton S4 et vous pouvez définir une nouvelle limite de vitesse.
• Maintenant, prenez une moto à 30 km / h et interrompez les faisceaux laser, le circuit devrait vous montrer un nombre très proche de 30 km / h.
• Vous avez terminé et votre circuit est prêt à servir la sécurité de votre campus.

Prototype de l'auteur:

prototype de détection de vitesse de véhicule

Si vous avez des questions concernant ce circuit de détecteur de vitesse de véhicule de la police de la circulation, n'hésitez pas à demander dans la section des commentaires, vous pouvez obtenir une réponse rapide.




Précédent: Fiche technique du capteur PIR, spécifications de brochage, fonctionnement Un article: Circuit de testeur de télécommande