電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>接近傳感器開源分享

接近傳感器開源分享

2023-02-03 | zip | 0.02 MB | 次下載 | 2積分

資料介紹

描述

你好世界!

我只是一個 19 歲的小伙子,對電子產(chǎn)品和類似的東西充滿熱情,幾天前,我父親為他的汽車買了一個真正的接近傳感器,然后,我嘗試復(fù)制它,但采用 DIY 方法呵呵。

這個東西,可以檢測距離,并且用 LED 顯示物體是近還是遠(yuǎn)。

如果距離足夠近,警報器(蜂鳴器)就會開始發(fā)出聲音。

顯然,這并未針對真車進(jìn)行優(yōu)化,僅供娛樂之用。

這是我制作的第一個項目,除了我的 Arduino 指南,我的項目沒有任何其他基礎(chǔ)。

現(xiàn)在,讓我們解釋一下我所做的事情。

int TRIG = 5;
int ECO = 6;
int LED = 3;
int DURATION;
int DISTANCE;
int LED2 = 2; 
int LED3 = 4;
int ALERT = 7;
void setup() {
 // put your setup code here, to run once:
pinMode(TRIG, OUTPUT);
pinMode(ECO, INPUT);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(ALERT, OUTPUT);
Serial.begin(9600);
}

?

首先,我聲明了所有項目的初始值,如 LED 和引腳。后來,在 void 設(shè)置之前,我放置了 pinModes 以及它是否處于輸入或輸出狀態(tài)。并且,與串口通信。我使用串口,??因為我想檢查傳感器是否正常工作。這不是必需的,但我這樣做了。

void loop() {
 // put your main code here, to run repeatedly:
digitalWrite(TRIG, HIGH);
delay(1);
digitalWrite(TRIG, LOW);
DURATION = pulseIn(ECO, HIGH);
DISTANCE = DURATION / 58.2;
Serial.println(DISTANCE);
delay(200);

在那之后,在 Void Loop 中,我把所有的數(shù)學(xué)運(yùn)算都做了。

在這里,有一件重要的事情。

在我的手冊中,58.2 表示這是傳感器制造商提供的常數(shù)。我的手冊沒有說任何其他內(nèi)容,所以...我沒有其他任何內(nèi)容可以解釋 xd。我用的傳感器,是經(jīng)典的傳感器,HC-SR04。

然后,我將代碼上傳到 Arduino 的內(nèi)存中,我得到了這樣的東西:

?

?
arduinoxd_9pIYZJicvk.png?auto=compress%2Cformat&w=740&h=555&fit=max
我的代碼的結(jié)果...
?

PC 上打印的數(shù)字是傳感器讀取的距離。沒有其他的。

然后,真正艱苦的工作(對我來說……),已經(jīng)開始了……

?

if (DISTANCE <= 15 && DISTANCE >= 8 ) {
 digitalWrite(LED, HIGH); // Yellow led Middle Risk
}
else {
 digitalWrite(LED, LOW);

 if (DISTANCE <= 20 && DISTANCE > 15) { 
   digitalWrite(LED2, HIGH); // Green led Low Risk
 }
 else {
   digitalWrite (LED2, LOW);

   if (DISTANCE > 20) {
     digitalWrite(LED3, HIGH);  //Blue led Out Of Risk 
   }
   else {
     digitalWrite (LED3, LOW);

if (DISTANCE < 7 && DISTANCE >= 0) {
 digitalWrite (ALERT, HIGH); //Red led HIGH RISK
 delay(150);
 digitalWrite (ALERT, LOW);
 delay(150);
}
else {
 digitalWrite (ALERT, LOW);
}
   }
 }
}
}

在這段代碼上,我真的花了太長時間來開發(fā)它。

它不按順序,因為我瘋狂地添加了 LED,而且......關(guān)鍵是它有效......我保證在下一個“教程”中,我會按順序工作......

然而...

LED 數(shù)字 3(藍(lán)色)表示您沒有危險,因為距離超過 20 厘米。

LED 2(綠色)表示您處于低風(fēng)險狀態(tài)。這種低風(fēng)險介于 20 和 15 之間。

LED 零(或僅稱為 LED(黃色))表示您處于中等風(fēng)險。這個中間風(fēng)險在 15 和 8 之間。

LED 警報(紅色)表示您離物體太近,不到 7 厘米。

我嘗試分開添加一個蜂鳴器,但是,它不起作用……所以,我將它添加到 LED ALERT 上。您將在原型板圖像中看到它...

最后一個 LED,在蜂鳴器發(fā)出聲音的同時閃爍。

畢竟,我編譯它(糾正成千上萬的恐怖(像經(jīng)典的“;錯誤”))

然后,它起作用了,就像我預(yù)期的那樣。

?

?
arduino2xdd_8j79RfwsVw.png?auto=compress%2Cformat&w=740&h=555&fit=max
原型板...
?

我認(rèn)為這對我第一次嘗試 Arduino 很有幫助。

?

這是整個代碼...

int TRIG = 5;
int ECO = 6;
int LED = 3;
int DURATION;
int DISTANCE;
int LED2 = 2; 
int LED3 = 4;
int ALERT = 7;
void setup() {
 // put your setup code here, to run once:
pinMode(TRIG, OUTPUT);
pinMode(ECO, INPUT);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(ALERT, OUTPUT);
Serial.begin(9600);
}

void loop() {
 // put your main code here, to run repeatedly:

digitalWrite(TRIG, HIGH);
delay(1);
digitalWrite(TRIG, LOW);

DURATION = pulseIn(ECO, HIGH);

DISTANCE = DURATION / 58.2;

Serial.println(DISTANCE);
delay(200);

if (DISTANCE <= 15 && DISTANCE >= 8 ) {
 digitalWrite(LED, HIGH); // Yellow led Middle Risk
}
else {
 digitalWrite(LED, LOW);

 if (DISTANCE <= 20 && DISTANCE > 15) { 
   digitalWrite(LED2, HIGH); // Green led Low Risk
 }
 else {
   digitalWrite (LED2, LOW);

   if (DISTANCE > 20) {
     digitalWrite(LED3, HIGH);  //Blue led Out Of Risk 
   }
   else {
     digitalWrite (LED3, LOW);

if (DISTANCE < 7 && DISTANCE >= 0) {
 digitalWrite (ALERT, HIGH); //Red led HIGH RISK
 delay(150);
 digitalWrite (ALERT, LOW);
 delay(150);
}
else {
 digitalWrite (ALERT, LOW);
}
   }
 }
}
}

.:MRX:.


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)