精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

構建一個交警用車速檢測電路

科技觀察員 ? 來源:homemade-circuits ? 作者:homemade-circuits ? 2023-07-25 14:28 ? 次閱讀

在這篇文章中,我們將構建一個電路,可以測量道路和高速公路上任何車輛的速度。擬議的電路在懷疑車輛超速的地方保持靜止。如果任何車輛超過限速,電路會立即發(fā)出警報。我們將查看如何測量車輛速度的代碼、電路圖和邏輯。

根據 75 年印度意外死亡報告,超速導致 2015% 的道路交通事故,這是一個巨大的數字。大多數交警試圖拘留危險駕駛車輛超過城市限速的駕駛者。

并非每次交警都可以阻止超速車輛并向他們收費。因此,在懷疑駕駛者超速的地方安裝了一種稱為測速攝像頭的設備,例如頻繁發(fā)生事故的區(qū)域、十字路口等。

我們將構建類似于測速攝像頭的東西,但要簡化得多,它可以安裝在校園內,例如學校,學院或IT園區(qū),或者只是一個有趣的項目。

擬議的項目包括 16 x 2 LCD 顯示屏,以展示每輛車通過的速度;兩束激光束相距10米,以測量車輛的速度,同時中斷這些激光束。

車輛通過時蜂鳴器會發(fā)出嗶嗶聲;表示檢測到車輛,每輛車的速度將顯示在LCD顯示屏上。當車輛超過速度限制時,蜂鳴器將連續(xù)發(fā)出嗶嗶聲,車輛速度將顯示在顯示屏上。

注意:無論車輛超速還是欠速,車輛的速度都將顯示在LCD上。

現(xiàn)在讓我們看看測量速度的電路背后的邏輯。

我們都知道一個簡單的公式,叫做速度-距離-時間公式。

速度=距離/時間。

? 速度以米每秒為單位,? 距離以米為單位,

? 時間以秒為單位。

要知道速度,我們必須知道車輛行駛的距離(例如“x”)以及覆蓋該距離“x”所需的時間。

為此,我們按以下方式設置兩個激光束和兩個距離為 10 米的 LDR:

交通車輛速度測量

我們知道距離是固定的 10 米,現(xiàn)在我們必須知道等式中的時間。

時間將由Arduino計算,當車輛中斷“啟動激光”時,計時器開始,當車輛中斷“結束激光”時,計時器停止并將值應用于方程Arduino將找到車輛的速度。

請注意,車輛的速度只會在一個方向上檢測,即啟動激光以停止激光,要在另一個方向檢測車輛,必須在相反的方向上放置另一個相同的設置。因此,這是學校,拼貼畫等場所的理想選擇。他們有進出門的地方。

現(xiàn)在讓我們看一下示意圖:

Arduino和顯示器之間的連接:

液晶車速顯示

上面的電路是不言自明的,只需按照電路連接接線即可。調整 10K 電位計以調整顯示對比度。

其他接線細節(jié):

速度車輛測距接線設置

上述電路由Arduino,4個按鈕,兩個10K下拉電阻(不要改變電阻的值),兩個LDR和一個蜂鳴器組成。4個按鈕的功能將很快解釋。現(xiàn)在讓我們看看如何正確安裝
LDR。

用于車速檢測的LDR銑削

LDR必須正確遮擋陽光,只有激光束才能擊中LDR。確保您的激光模塊足夠強大,可以在明亮的陽光下工作。

您可以將PVC管用于上述目的,并在管內將其涂成黑色;不要忘記覆蓋前部,利用您的創(chuàng)造力來完成這項工作。

程序代碼

// ----------- Developed by R.GIRISH ---------//

#include 《LiquidCrystal.h》

#include《EEPROM.h》

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 《 EEPROM.read(speed_address))

{

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

現(xiàn)在讓我們看看如何操作這個電路:

?完成您的電路并上傳代碼。

? 兩個激光器/LDR 之間的距離應正好為 10 米,不少于或不超過,否則速度將計算錯誤(如第一張圖所示)。

?激光和LDR之間的距離可以由您選擇的和情況決定。

? 電路將檢查激光與LDR的未對準,如果有,請根據LCD上顯示的信息進行更正。

?最初,賽道會要求您輸入以公里/小時為單位的速度限制值,超過該值賽道會發(fā)出警報,通過按向上(S1)和向下(S2),您可以更改顯示屏上的數字并按設置(S3),該值將被保存。

?要更改此速度限制,請按S4按鈕,您可以設置新的速度限制。

?現(xiàn)在以30公里/小時的速度駕駛摩托車并中斷激光束,電路應該向您顯示一個非常接近30 km / h的數字。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 檢測電路
    +關注

    關注

    13

    文章

    305

    瀏覽量

    58129
  • DIY
    DIY
    +關注

    關注

    176

    文章

    886

    瀏覽量

    348279
收藏 人收藏

    評論

    相關推薦

    如何構建簡單的對講電路

    在這個電路中,我們將構建非常簡單的對講電路,您可以使用該電路在房屋或學校內以兩種方式進行本地
    的頭像 發(fā)表于 11-21 17:26 ?1573次閱讀
    如何<b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的對講<b class='flag-5'>電路</b>

    構建基于晶體管的簡單土壤濕度檢測電路

    在這個項目中,我們將構建基于晶體管的簡單土壤濕度檢測電路。在本電路中,我們使用NPN晶體管
    的頭像 發(fā)表于 11-22 17:22 ?3615次閱讀
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>基于晶體管的簡單土壤濕度<b class='flag-5'>檢測</b>器<b class='flag-5'>電路</b>

    構建簡單的空氣流量檢測電路

    氣流檢測在許多項目和應用中都很有用。在這里,我們正在構建非常簡單的電路檢測氣流的存在。該
    的頭像 發(fā)表于 12-29 11:19 ?2484次閱讀
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的空氣流量<b class='flag-5'>檢測</b>器<b class='flag-5'>電路</b>

    招聘警用設備銷售

    警用設備銷售(實習)工作地:上海閔行區(qū)職位描述:1、負責警用設備(酒精檢測儀、測速儀等相關交警警用裝備)的銷售;2、分銷商和直接客戶的維護和
    發(fā)表于 09-25 10:28

    可變磁阻式車速傳感器的識別與檢測

    極交替排列,隨著磁環(huán)的回轉使其磁力線方向不斷 地變化,伴隨每回轉,在內置磁阻元件(MRE)的集成電路(IC)中發(fā)出⒛脈沖信號,該信號即車速信 號,送人速度表。磁通量的變化與磁環(huán)轉速
    發(fā)表于 10-29 15:10

    光電式車速傳感器的識別與檢測

    圈,傳感器有20脈沖輸出。  圖3為光電式車速傳感器在數字式車速報警系統(tǒng)中的應用,數字式車速報警系統(tǒng)由熒光屏、微電腦、集成電路等構成,根據
    發(fā)表于 11-16 16:10

    警用電擊器充電電路

    警用電擊器充電電路
    發(fā)表于 07-30 21:46 ?9252次閱讀
    <b class='flag-5'>警用</b>電擊器充電<b class='flag-5'>電路</b>

    車速控制裝置電路

    車速控制裝置電路
    發(fā)表于 02-14 11:21 ?708次閱讀
    <b class='flag-5'>車速</b>控制裝置<b class='flag-5'>電路</b>

    電動車速電路

    電動車速電路
    發(fā)表于 02-14 11:25 ?3869次閱讀
    電動<b class='flag-5'>車速</b>表<b class='flag-5'>電路</b>

    檢測車速的汽車路碼表電路

    檢測車速的汽車路碼表電路
    發(fā)表于 05-26 14:54 ?5650次閱讀
    <b class='flag-5'>檢測</b><b class='flag-5'>車速</b>的汽車路碼表<b class='flag-5'>電路</b>圖

    車速信號調理電路

    車速信號調理電路圖   車速信號是很通用的信號,儀表盤和車身模塊,甚至其他的模塊都需要它作為
    發(fā)表于 11-21 13:42 ?3881次閱讀

    構建焦耳竊賊電路

    電子發(fā)燒友網站提供《構建焦耳竊賊電路.zip》資料免費下載
    發(fā)表于 07-04 11:05 ?0次下載
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>焦耳竊賊<b class='flag-5'>電路</b>

    構建簡單的速度報警電路

    在高速行駛時,目視檢查車速表以保持在最大速度以下可能會很危險。如果我們放置音頻警報系統(tǒng),以便在速度達到某個閾值時發(fā)出警告,那會安全得多。為了構建速度報警
    的頭像 發(fā)表于 07-15 17:08 ?605次閱讀
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的速度報警<b class='flag-5'>電路</b>

    構建帶Arduino代碼的顏色檢測電路

    在這篇文章中,我們將構建可以檢測顏色并觸發(fā)相應分配繼電器的電路。該項目是使用 TCS3200 顏色傳感器和 Arduino 板完成的。
    的頭像 發(fā)表于 07-27 11:23 ?951次閱讀
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>帶Arduino代碼的顏色<b class='flag-5'>檢測</b>器<b class='flag-5'>電路</b>

    基于脈沖整形的車速信號檢測的硬件設計

    電子發(fā)燒友網站提供《基于脈沖整形的車速信號檢測的硬件設計.pdf》資料免費下載
    發(fā)表于 10-23 11:29 ?1次下載
    基于脈沖整形的<b class='flag-5'>車速</b>信號<b class='flag-5'>檢測</b>的硬件設計