www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 基礎入門 >> Arduino開發(fā)學習 >> 正文

Arduino項目式編程教學第四章——超聲波測距_arduino超聲波測距,HCSR04超聲波傳感器

作者:佚名    文章來源:網(wǎng)絡整理    點擊數(shù):    更新時間:2024/11/2

硬件清單
一、超聲波測距原理
二、HCSR04超聲波傳感器的使用
三、LCD1602液晶顯示屏的使用
1.Arduino上的I2C通信協(xié)議
2.使用LCD1602液晶顯示屏顯示“Hello World!”字符
四、完成超聲波測距
五、總結(jié)

硬件清單

 

一、超聲波測距原理

超聲波測距原理詳解 
我們所使用的超聲波傳感器型號為HCSR04,可觀察到他有兩個“眼睛”狀的部件,兩個部件的作用一樣,均可發(fā)射接收超聲波,并且按照上述原理圖進行工作。
首先傳感器發(fā)射超聲波,并計時,當超聲波接觸到障礙物會被反射,當傳感器接收到反射波,計時結(jié)束,然后利用距離、速度、時間公示進行計算,得到傳感器到障礙物間的距離。
其具體工作原理簡單了解即可,并不影響后述對超聲波傳感器的使用。
HCSR04超聲波傳感器 
因此HCSR04超聲波傳感器的四個引腳的作用就比較明顯了,除了VCC接正極、GND接負極外,還有兩個引腳“Trig”及“Echo”,其中“Trig”用于控制發(fā)射超聲波,“Echo”用于接收反射波,所以“Trig”所接引腳應為輸出,“Echo”所接引腳應為輸入,因此在后續(xù)接線時可以把兩個引腳分別接到兩個數(shù)字端口,在端口初始化時分別設置輸入和輸出即可。

二、HCSR04超聲波傳感器的使用

接下來將HCSR04超聲波傳感器與Arduino進行連接,除了VCC及GND分別接正負極外,這里“Trig”與數(shù)字端口D5連接,“Echo”與數(shù)字端口D4連接,如下圖所示:
HCSR04超聲波傳感器與Arduino進行連接 

并且確定安裝的庫文件是否一致,不同的開發(fā)者貢獻的庫文件不同,調(diào)用方法的名稱也就不同,因此如果與本文按裝的庫文件不同的話,大概率會報錯,建議安裝與下圖一致的庫文件。
 

將超聲波傳感器與Arduino板連接之后,繼續(xù)完成以下程序:

//此程序功能為將SR04超聲波傳感器測的的距離數(shù)值,通過串口進行輸出
#include<HCSR04.h>  //導入超聲波SR04庫
HCSR04 ultrasonic(5,4);  //聲明一個對象,其名為ultrasonic(自定義的名稱)
                      //4號為“Echo”,5號為“Trig”
void setup()
{
 pinMode(4, INPUT);  //設置“Echo”接入的引腳為輸入
 pinMode(5, OUTPUT);  //設置“Trig”接入的引腳為輸出
 Serial.begin(9600);  //串口監(jiān)視器初始化
}
int distance;  //定義一個名為“distance”的變量,用于存放檢測的距離數(shù)值
void loop()
{
 distance = ultrasonic.dist();  //調(diào)用了超聲波庫里的“dist()”方法,獲得檢測距離數(shù)值
 Serial.print(distance);  //輸出distance數(shù)值,且不換行
 Serial.println(" cm");  //緊接著輸出單位,且換行
}

將程序上傳之前先對以上程序的部分代碼塊進行解釋:
1.“HCSR04 ultrasonic(4, 5)”我們稱之為對象的實例化,即HCSR04為超聲波庫的名稱,在其后自定義一個名稱“ultrasonic”(即超聲波的英文,可自定義任意名稱),并且不同的實例化過程有不同的參數(shù)要輸入,比如HCSR04后需要加入“Trig”和“Echo”所接引腳的端口號,從而在后述程序中,如果要調(diào)用HCSR04庫內(nèi)的方法的話,僅需使用“ultrasonic.方法名()”,即可。
2.“distance = ultrasonic.dist()”這一代碼塊是調(diào)用了超聲波傳感器中獲取距離的方法“dist()”,與前面int定義的distance截然不同,int定義的變量可取任意名稱,僅為變量名,但“Distance()”為超聲波傳感器固定的方法。
接下來將上述程序上傳至Arduino板,并且打開串口監(jiān)視器,觀測所測的數(shù)值是否準確。
 

另外HCSR04型號的超聲波傳感器的測量范圍官方聲稱為2cm ~ 450cm,因此超出這個范圍的數(shù)值會不準確。

三、LCD1602液晶顯示屏的使用

LCD1602液晶顯示屏 
LCD1602液晶顯示屏 
首先觀察LCD1602顯示屏的正反面(其中反面為實物圖),當前LCD顯示屏的驅(qū)動板(即黑色的電路板)上共6個引腳,左側(cè)兩個相鄰的引腳直接連接即可,連接后便打開了背光;右側(cè)的引腳“GND接負極”“VCC接正極”已經(jīng)比較熟悉了,對于“SDA”及“SCL”引腳,我們先對此進行詳細介紹。

1.Arduino上的I2C通信協(xié)議

 
I2C總線是由Philips公司開發(fā)的一種簡單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。
每種不同的硬件都有不同的I2C地址,因此對于I2C通信的工作原理我們可以理解為:SCL(時鐘線)用于規(guī)定當前時刻是否要傳輸數(shù)據(jù),就如同紅綠信號燈的作用,防止數(shù)據(jù)傳輸混亂;SDA(數(shù)據(jù)線)用于在給定時間內(nèi)給不同地址的硬件傳輸數(shù)據(jù),并且雙向傳輸。當前我們僅需了解不同硬件的I2C地址即可輕松使用I2C通信。

2.使用LCD1602液晶顯示屏顯示“Hello World!”字符

 
在Arduino拓展板的復位鍵旁邊設有專門的I2C引腳,可直接對應連接,當然也可以“SDA - A4”“SCL - A5”的線序連接。
連接好之后觀察屏幕,在未寫入程序之前,LCD顯示屏的第一行應該是可以顯示16個小方塊的,如果未顯示,則使用十字螺絲刀來擰動顯示屏背板藍色的旋鈕,直到小方塊清晰可見。這也就是為什么LCD1602顯示屏標有“1602”——此顯示屏可顯示16列2行字符(英文)。
本章使用的LCD顯示屏為I2C通信,因此使用的庫文件也需要對應,可看下圖使用的庫文件:
 

接下來完成下列程序:

//此程序功能為使用LCD1602輸出“Hello World!”字符
#include <Wire.h>  //導入I2C通信庫
#include <LiquidCrystal_I2C.h>  //導入LCD顯示屏庫
LiquidCrystal_I2C lcd(0x27,16,2);  //實例化一個名為“l(fā)cd”的對象,并且內(nèi)部有三個參數(shù)
                                   //分別為(I2C通信地址,顯示列數(shù),顯示行數(shù))
void setup()
{
  lcd.init();  //顯示屏初始化
  lcd.backlight();  //開啟顯示屏背光
  lcd.setCursor(0,0);  //設置顯示光標位置(列,行)
  lcd.print("Hello, world!");  //顯示字符
  lcd.setCursor(0,1);  //在第一列,第二行開始顯示
  lcd.print("Successful!");  //顯示字符
}
void loop()
{
}

將以上程序上傳,并觀察是否顯示了兩行字符,分別是“Hello, world!”及“Successful!”;接下來對部分代碼塊進行解釋:
1.“#include <Wire.h>”為導入I2C通信庫。
2.“#include <LiquidCrystal_I2C.h>”為導入本程序使用的基于I2C通信協(xié)議的LCD顯示屏庫。
3.“LiquidCrystal_I2C lcd(0x27,16,2)”為實例化了一個名為“l(fā)cd”的對象,并規(guī)定了LCD的I2C地址“0x27”,以及顯示屏顯示的列行數(shù)。
其他的代碼作用均已在程序中進行了注釋解釋,則不再贅述。

四、完成超聲波測距

超聲波測距_arduino超聲波測距 
按照上圖將“SR04超聲波傳感器”及“LCD1602顯示屏”與Arduino板進行連接;“Trig”與數(shù)字端口D5連接,“Echo”與數(shù)字端口D4連接,LCD顯示屏的引腳連接到IIC區(qū)域;然后完成以下程序:

//此程序功能為將超聲波傳感器測得的數(shù)值使用LCD進行顯示
//并且在2cm-450cm內(nèi)正常顯示,超出范圍則輸出錯誤提示
#include<HCSR04.h>  //導入超聲波SR04庫
#include<Wire.h>  //導入I2C通信庫
#include<LiquidCrystal_I2C.h>  //導入LCD顯示屏庫
LiquidCrystal_I2C  lcd(0x27,16,2);  //聲明使用LCD庫的對象
HCSR04 ultrasonic(5,4);  //聲明一個對象,其名為ultrasonic(自定義的名稱)
                      //4號為“Echo”,5號為“Trig”
void setup()      
{
  lcd.init();  //顯示屏初始化
  lcd.backlight();  //開啟LCD顯示屏背光
  pinMode(4,INPUT); //Echo引腳
  pinMode(5,OUTPUT); //Trig引腳
}
int distance;  //定義一個變量用于存儲超聲波測量的數(shù)值
void loop()
{
  distance = ultrasonic.dist();  //將超聲波測得的數(shù)值賦值給變量
  if(distance >= 2 && distance <= 450)  //判斷測得數(shù)值是否在測量范圍內(nèi)
  {
    lcd.setCursor(0,0);  //設置LCD顯示光標位置
    lcd.print(distance);  //使用LCD顯示屏顯示distance的數(shù)值
    lcd.print(" cm");  //顯示單位“cm”
    delay(200);  //延時200毫秒
    lcd.clear();  //LCD顯示屏清屏,用于顯示下一個數(shù)值
  }
  else  //如果超出范圍
  {
    lcd.print("Wrong!");  //輸出“Wrong!”
    delay(200);
    lcd.clear();
  }
}

上述程序是對超聲波傳感器及LCD顯示屏的綜合應用,并且使用了“if判斷”,其代碼塊的作用均已標柱到代碼區(qū)域,不再詳細解釋。
將上述代碼進行上傳,并測試是否可實現(xiàn)超聲波測距功能。

五、總結(jié)

本章使用SR04超聲波傳感器結(jié)合LCD液晶顯示屏來實現(xiàn)了超聲波測距的功能;并且對于超聲波傳感器及顯示屏都需要調(diào)用相應的庫文件進行控制,這里需要注意的是一定要使用正確的庫文件,因為各類硬件的庫文件均來自于不同的開發(fā)者,不同的開發(fā)者貢獻的庫會存在庫文件名稱及方法名不同的情況,當然理論上不同的庫文件都能實現(xiàn)對硬件的控制,所以最好使用與本文相同的庫文件。完成本章的超聲波測距功能之后,不妨聯(lián)想汽車的倒車雷達原理,其功能也是可以通過Arduino平臺來實現(xiàn)的,后續(xù)還會帶來更多硬件的使用方法及組合成完整功能的教學。

Tags:arduino,超聲波測距,超聲波  
責任編輯:admin
  • 上一個文章:
  • 下一個文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網(wǎng)友評論
    關于我們 - 聯(lián)系我們 - 廣告服務 - 友情鏈接 - 網(wǎng)站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢
    www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久
    蜜乳av一区二区| 免费成人av在线| 成人av影视在线观看| 久久这里只有精品首页| 免费成人性网站| 欧美精品少妇一区二区三区| 亚洲综合在线电影| 91丨九色丨国产丨porny| 欧美手机在线视频| 亚洲一区二区精品视频| 91啪九色porn原创视频在线观看| 91精品国产免费| 亚洲国产精品视频| 欧美视频日韩视频在线观看| 亚洲综合图片区| 欧美色综合网站| 夜夜精品视频一区二区| 91美女精品福利| 中文字幕一区二区三区av| 成人av网站免费观看| 中文字幕精品一区二区三区精品| 奇米色一区二区三区四区| 欧美一区二区三区成人| 亚洲精品国产精品乱码不99| 国产东北露脸精品视频| 欧美韩国日本不卡| 成人天堂资源www在线| 亚洲国产成人在线| 99国产精品久| 一区二区三区在线免费观看 | 午夜精品福利视频网站| 欧美精品久久一区| 奇米色777欧美一区二区| 欧美午夜影院一区| 日韩av不卡在线观看| 精品久久久网站| 成人午夜在线视频| 亚洲免费av高清| 不卡免费追剧大全电视剧网站| 日韩亚洲欧美成人一区| 久久99精品一区二区三区三区| 777亚洲妇女| 精品一区二区三区在线观看国产| 91精品国产欧美一区二区18| 亚洲第一搞黄网站| 日韩精品一区二区三区四区视频 | 久久久午夜电影| av欧美精品.com| 一区二区三区日韩精品视频| 欧美日本在线视频| 久久99精品国产| 国产精品视频第一区| 色婷婷av久久久久久久| 全国精品久久少妇| 国产丝袜美腿一区二区三区| 国产精品一二三| 亚洲色图色小说| 91精品国产91综合久久蜜臀| 国产精品一色哟哟哟| 久久久国产午夜精品| 色哟哟国产精品| 免费人成在线不卡| 中文字幕成人在线观看| 欧美三级欧美一级| 国产一区二区视频在线播放| 亚洲欧美日韩电影| 欧美一级生活片| 成人的网站免费观看| 亚洲一级二级三级在线免费观看| 91福利在线免费观看| 美女mm1313爽爽久久久蜜臀| 中文字幕欧美激情| 欧美久久一区二区| 成人h版在线观看| 亚洲成人一区二区在线观看| 欧美精品一区二区三区高清aⅴ | 国产自产v一区二区三区c| 亚洲视频在线观看一区| 欧美一区二区私人影院日本| 成人黄色a**站在线观看| 亚洲电影一级黄| 中文字幕高清不卡| 欧美一区二区视频在线观看2020 | 国产九色精品成人porny| 一区二区日韩av| 精品福利一区二区三区免费视频| 国产一区二区三区观看| 亚洲国产高清不卡| 色琪琪一区二区三区亚洲区| 久久99国产精品久久99| 亚洲综合精品自拍| 日韩一级免费一区| 日本韩国精品在线| 日韩av在线发布| 亚洲精品国产成人久久av盗摄| 欧美日高清视频| av激情成人网| 国产一区二区电影| 日本不卡一区二区三区| 亚洲欧美日本韩国| 国产欧美一区二区三区网站 | 9色porny自拍视频一区二区| 亚洲一区二区高清| 亚洲欧洲国产日韩| 久久综合国产精品| 91麻豆国产自产在线观看| 国产一区不卡精品| 奇米一区二区三区av| 国产欧美视频一区二区| 91福利在线播放| av午夜一区麻豆| 日本不卡的三区四区五区| 国产日产欧产精品推荐色| 日韩一区二区精品在线观看| 欧美无砖专区一中文字| 国产一区二区伦理片| 日本欧美一区二区在线观看| 亚洲一区二区三区四区不卡| 中文字幕中文乱码欧美一区二区| 欧美日韩你懂得| 色噜噜狠狠色综合中国| 激情av综合网| 久久精品99国产精品日本| 香蕉成人啪国产精品视频综合网| 国产日韩欧美精品一区| 欧美日韩国产一级二级| 欧美亚一区二区| 91成人看片片| 色噜噜狠狠成人网p站| 97精品视频在线观看自产线路二| 麻豆国产精品官网| 亚洲免费色视频| 成人免费在线视频观看| 日韩一区二区三区免费看| 欧美年轻男男videosbes| 欧美性xxxxx极品少妇| 欧美午夜宅男影院| 欧美撒尿777hd撒尿| 欧美伊人精品成人久久综合97| 福利电影一区二区三区| 成人夜色视频网站在线观看| 日韩不卡一区二区| 亚洲免费在线视频一区 二区| 久久久久99精品一区| 欧美精品一区二区三区一线天视频 | 成人av电影免费观看| 国产成人av网站| 成人久久久精品乱码一区二区三区 | 性做久久久久久| 丝袜亚洲另类欧美| 日韩一区欧美二区| 免费观看日韩电影| 美日韩一级片在线观看| 久久激五月天综合精品| 国产一区在线不卡| 国产成a人无v码亚洲福利| 成人一区在线观看| 99综合影院在线| 91黄色免费版| 欧美日本一区二区在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 国产自产v一区二区三区c| 日日夜夜精品视频天天综合网| 亚洲精品国产无套在线观| 亚洲影视资源网| 日韩高清不卡一区二区三区| 美女网站一区二区| 国产精品996| 91亚洲大成网污www| 欧美中文字幕一区二区三区亚洲| 91影视在线播放| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 粉嫩aⅴ一区二区三区四区 | eeuss鲁片一区二区三区在线观看| 国产一区二区三区日韩| 成人免费毛片aaaaa**| 一本大道av一区二区在线播放| 成人深夜福利app| 色婷婷亚洲综合| 91网站在线观看视频| 欧美精品在线观看一区二区| 欧美性猛片xxxx免费看久爱| 在线精品视频小说1| 欧美一区二区三区的| 欧美一卡在线观看| 欧美激情综合网| 国产精品高潮呻吟| 亚洲bdsm女犯bdsm网站| 国产综合色精品一区二区三区| 久久电影网电视剧免费观看| 蜜桃av一区二区| 免费不卡在线视频| 成人动漫一区二区| 在线不卡中文字幕| 中文字幕精品一区二区三区精品| 国产精品美女一区二区| 午夜精品久久久久久不卡8050 | 亚洲不卡在线观看| 国产美女视频一区| 在线视频亚洲一区|