欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

【Arduino】168種傳感器模塊系列實驗(148)---E18-D80避障傳感器

查看數: 5770 | 評論數: 25 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-2-26 16:13

正文摘要:

37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里準備 ...

回復

ID:513258 發表于 2020-2-26 20:05
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料 +代碼 +圖形 +仿真)
  3.   實驗一百四十八:E18-D80NK 漫反射式紅外光電開關避障傳感器模塊
  4.   程序之三:串口輸出檢測情況,同步控制LED
  5.   實驗接線
  6.   VCC      +5V
  7.   GND      GND
  8.   OUT       2
  9.   LED      13
  10. */

  11. const int InfraredSensorPin = 2;
  12. //將信號引腳連接到數字引腳2
  13. const int LedDisp = 13;
  14. //將控制LED連接到數字引腳13

  15. void setup()
  16. {
  17.   Serial.begin(57600);
  18.   Serial.println("Start!");
  19.   pinMode(InfraredSensorPin, INPUT);
  20.   pinMode(LedDisp, OUTPUT);
  21.   digitalWrite(LedDisp, LOW);
  22. }

  23. void loop()
  24. {
  25.   if (digitalRead(InfraredSensorPin) == LOW)  digitalWrite(LedDisp, HIGH);
  26.   else  digitalWrite(LedDisp, LOW);
  27.   Serial.print("Infrared Switch Status:");
  28.   Serial.println(digitalRead(InfraredSensorPin), BIN);
  29.   delay(1000);
  30. }
復制代碼


ID:513258 發表于 2020-2-26 19:48
本帖最后由 eagler8 于 2020-2-26 19:50 編輯

紅外避障使用很簡單,就是OUT口檢測到有效距離內有障礙物時,給OUT發送高電平(或低電平)。可以利用這一特性,進行計數。

需要注意的是,根據障礙物在識別范圍內所停留的時間不同,模塊可能會在障礙物停留的這一段時間頻繁的發送高電平(或低電平),所以,要判斷兩個標志,一個是障礙物進入,一個是障礙物移出,保證在進入后只記錄一次數據即可。

代碼如下:
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料 +代碼 +圖形 +仿真)
  3.   實驗一百四十八:E18-D80NK 漫反射式紅外光電開關避障傳感器模塊
  4.   程序之二:利用紅外避障(障礙檢測)進行計數
  5.   實驗接線
  6.   VCC      +5V
  7.   GND      GND
  8.   OUT       2
  9. */

  10. int i=0; //計數
  11. bool b=false; //障礙物是否進入
  12. void setup() {
  13. Serial.begin(9600);
  14. pinMode(2,INPUT);
  15. }
  16. void loop() {
  17. if (digitalRead(2)==LOW) //如果發送低電平,識別到障礙物進入
  18. {
  19.   if (b==false) { //如果上一次檢測時,障礙物沒有進入,則視為第一次進入。
  20.     b=true;  //先將標志記錄為障礙物已進入。
  21.     i+=1;  //計數+1
  22.     Serial.print("OK:");
  23.     Serial.println(i);
  24.    }
  25. }
  26. else {  //如果檢測到障礙物移出
  27. b=false;  //將標志記錄為障礙物已移出。
  28. }
  29.   delay(1);
  30. }
復制代碼



ID:513258 發表于 2020-2-26 19:34
本帖最后由 eagler8 于 2020-2-26 19:52 編輯

實驗開源代碼
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料 +代碼 +圖形 +仿真)
  3.   實驗一百四十八:E18-D80NK 漫反射式紅外光電開關避障傳感器模塊
  4.   程序之一:串口輸出檢測情況
  5.   實驗接線
  6.   VCC      +5V
  7.   GND      GND
  8.   OUT       2
  9. */

  10. void setup()
  11. {
  12.   Serial.begin(9600); //以9600的速率啟動串行通信
  13.   pinMode(2, INPUT); //插腳2作為信號輸入
  14. }

  15. void loop()
  16. {
  17.   while (1) {
  18.     delay(1000);
  19.     if (digitalRead(2) == LOW) {
  20.       //如果未檢測到信號打印沖突
  21.       Serial.println("Collision Detected.");
  22.     }
  23.     else {
  24.       // 如果檢測到信號打印沖突
  25.       Serial.println("No Collision Detected.");
  26.     }
  27.   }
  28. }
復制代碼



小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表