国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Arduino的水位監(jiān)測報警系統(tǒng)

2020-02-03 02:38:00伍敏君
電子技術(shù)與軟件工程 2020年19期
關(guān)鍵詞:蜂鳴器端口報警

伍敏君

(中山火炬職業(yè)技術(shù)學院光電信息學院 廣東省中山市 528400)

經(jīng)濟發(fā)展使人們生活水平不斷提高,生活用水與工業(yè)用水量大幅度增加;另一方面,要動態(tài)監(jiān)測湖泊、水庫、河流等水位以研究生態(tài)環(huán)境變化、防御自然災害,因此,水位監(jiān)測與控制至關(guān)重要[1-3]。電子技術(shù)的迅速發(fā)展,使智能化監(jiān)控已成為發(fā)展趨勢。移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)技術(shù)、傳感器技術(shù)的發(fā)展,為實時監(jiān)測提供了必要條件[4-5]。本文以水位為監(jiān)測對象,設計一款水位實時監(jiān)測報警系統(tǒng),通過傳感器采集數(shù)據(jù)并顯示于液晶顯示器中,本系統(tǒng)可應用于日常生活中的水位監(jiān)測場合。

1 系統(tǒng)硬件設計

本系統(tǒng)以ArduinoUNO 控制器為核心,結(jié)合傳感器技術(shù),實現(xiàn)水位實時監(jiān)測與報警。本系統(tǒng)由控制器模塊、水位檢測模塊、顯示模塊、報警模塊等四部分組成。

1.1 控制器模塊

本系統(tǒng)采用的控制器為ArduinoUNO,如圖1所示,其主控芯片為ATmega328P,核心處理器是AVR 單片機。ArduinoUNO 是開源的硬件,資源豐富,有14 個數(shù)字I/O 口,6 個PWM 輸出端口,6 個模擬輸入端口,1 個16MHz 晶振,1 個復位按鍵,1 個USB 接口以及1 個直流電源插孔等[6]。ArduinoUNO 的工作電壓為5V,既可用USB 供電,也可用外部供電。其價格低,穩(wěn)定性好,設有一個自恢復保險絲,當短路或電流過大時,自動斷開供電,起保護ArduinoUNO 板和計算機USB 端口的作用。

1.2 水位檢測模塊

本系統(tǒng)的水位檢測模塊采用深圳科易互動科技有限公司研發(fā)的一款水位傳感器,如圖2所示。此傳感器采用半月形凹陷防滑處理設計,表面有一系列平行導線用于測量水滴水量的大小。模塊體積小巧,輕便簡單,低功耗,靈敏性好,工作電壓為5V,工作電流低于20mA。該水位傳感器可直接與控制器相連接,有三個引腳,其中,“-”為GND 端口,“+”為VCC 端口,“S”為數(shù)據(jù)輸出端口。

1.3 顯示模塊

圖1:ArduinoUNO 控制器

圖2:水位傳感器

圖3:LCD1602 液晶顯示器

本系統(tǒng)的顯示模塊采用液晶顯示器LCD1602 芯片,如圖3所示。該芯片能顯示2 行信息,每行可顯示16 個字符、數(shù)字或字母,各字符尺寸為2.95×4.35mm。LCD1602 的工作電壓為5.0V,工作電流為2.0mA,驅(qū)動簡單,共有16 個引腳。其中,引腳1 為電源地,引腳2 為電源正極,引腳3 為液晶顯示偏壓信號,引腳4 為數(shù)據(jù)/命令選擇端,引腳5 為讀/寫選擇端,引腳6 為使能信號,引腳7 ~14為數(shù)據(jù)口,引腳15 為背光源正極,引腳16 為背光源負極。

1.4 報警模塊

本系統(tǒng)的報警模塊采用由LED 指示燈和有源蜂鳴器組成的電路。為了使LED、有源蜂鳴器工作在額定電壓和額定電流范圍內(nèi),兩者各串聯(lián)220Ω 電阻。當水位低于預設的報警值時,報警模塊不工作;否則,觸發(fā)報警模塊工作,驅(qū)動LED 點亮、蜂鳴器發(fā)響。

1.5 系統(tǒng)連接

本系統(tǒng)的連接圖如圖4所示,LCD1602 芯片的16 個引腳,采用八位連接法與ArduinoUNO 控制器連接,即第7 ~14 引腳的數(shù)據(jù)位D0 ~D7 分別連接到ArduinoUNO 控制器的八個數(shù)字I/O 口9、8、7、6、5、4、3、2。為了便于調(diào)節(jié)液晶顯示器的對比度,第3 引腳接入10kΩ 可調(diào)電阻。

LED 和有源蜂鳴器的正極并聯(lián)后,接至ArduinoUNO 控制器的數(shù)字I/O 口13。LED 和有源蜂鳴器的負極分別串聯(lián)220Ω 電阻,再接至控制器的GND 端口。

水位傳感器的正極接至ArduinoUNO 控制器的VCC 端口,其負極接至控制器的GND 端口,S 端口接控制器的模擬輸入端口A0。

2 系統(tǒng)軟件設計

2.1 ArduinoIDE

本系統(tǒng)所有模塊功能的程序均在Arduino IDE 平臺中設計與完成。在Arduino IDE 平臺上,Arduino 語言把AVR 單片機相關(guān)的參數(shù)設置封裝成函數(shù),減少了硬件底層的開發(fā)。

啟動Arduino IDE 后,新建工程,系統(tǒng)已自動在工程中添加如下內(nèi)容:

圖4:系統(tǒng)連接圖

圖5:軟件設計流程圖

圖6:水位傳感器置于空氣中

圖7:水位傳感器浸入水中

Arduino 程序中沒有C 語言要求的main()函數(shù),只需完成setup()和loop()兩個函數(shù)的編寫。其中,setup()只執(zhí)行一次,完成程序的一些初始化設置;loop()一直反復執(zhí)行,相當于while(1)的循環(huán)語句,是實現(xiàn)程序功能的主體代碼。

2.2 程序設計

本系統(tǒng)軟件部分的設計包括變量的定義與初始化、數(shù)據(jù)采集、數(shù)據(jù)分析、顯示器設置等。軟件設計流程圖如圖5所示。

當Arduino UNO 控制器上電后,啟動本系統(tǒng)。首先完成系統(tǒng)初始化,執(zhí)行頭文件命令,由于系統(tǒng)采用液晶顯示器,需要包含頭文件“LiquidCrystal.h”。接著完成變量的定義與初始化等。

在setup()函數(shù)里,將LED、蜂鳴器引腳配置為OUTPUT 端口,串口波特率初始化為9600,LCD1602 初始化為16 列2 行,傳感器采集第一次數(shù)據(jù)等。

在loop()函數(shù)里,定時采集傳感器數(shù)據(jù),通過analogRead 函數(shù)讀取傳感數(shù)據(jù),并作數(shù)據(jù)分析,水位數(shù)據(jù)顯示在LCD1602 中。LCD1602 第一行顯示當前的日期,設置格式為“年-月-日”;第二行顯示“water:”字符串,其后顯示傳感數(shù)據(jù)。當傳感數(shù)據(jù)大于預設的報警值300 時,啟動LED 燈點亮、蜂鳴器報警。系統(tǒng)每隔3s 自動采集并更新數(shù)據(jù)于LCD1602 中。

3 系統(tǒng)性能分析

為了測試系統(tǒng)的功能、穩(wěn)定性以及可行性,將系統(tǒng)分別置于空氣和水中,通過實驗采集數(shù)據(jù),記錄相應數(shù)值。如圖6所示,當水位傳感器置于空氣中,此時未浸入水中,水位傳感器采集到的數(shù)據(jù)為9,通過自定義函數(shù)完成數(shù)據(jù)轉(zhuǎn)換,LCD1602 中顯示為“009”。

如圖7所示,當水位傳感器浸入水中,將其采集到的數(shù)據(jù)顯示于LCD1602 中,本次采集數(shù)據(jù)為“611”,大于預設的報警值300,則觸發(fā)報警模塊,此時Arduino UNO 驅(qū)動LED 點亮,蜂鳴器發(fā)響,實現(xiàn)水位過高的報警機制。

4 小結(jié)

本文設計并制作一款基于Arduino的水位監(jiān)測報警系統(tǒng),本系統(tǒng)電路設計簡明,實現(xiàn)實時監(jiān)測,定時更新并顯示水位的傳感數(shù)據(jù)。通過實驗表明,系統(tǒng)采集、數(shù)據(jù)處理、數(shù)據(jù)顯示等各功能可靠,報警響應迅速,滿足水位實時監(jiān)測的需求。

猜你喜歡
蜂鳴器端口報警
電動自行車產(chǎn)品車速提示音檢測現(xiàn)狀和整改技術(shù)研究(2)
一種端口故障的解決方案
科學家(2021年24期)2021-04-25 13:25:34
掌控板制作簡易鋼琴
電腦報(2020年12期)2020-06-30 19:56:42
單片機驅(qū)動蜂鳴器的程序設計
LKD2-HS型列控中心驅(qū)采不一致報警處理
端口阻塞與優(yōu)先級
2015款奔馳E180車安全氣囊報警
豐田凱美瑞240V車間隙警告蜂鳴器異常鳴響
初識電腦端口
電腦迷(2015年6期)2015-05-30 08:52:42
生成樹協(xié)議實例探討
甘德县| 奉贤区| 保定市| 彩票| 华宁县| 苍梧县| 新昌县| 河北省| 黄梅县| 景东| 天全县| 汾西县| 四会市| 且末县| 仙桃市| 日喀则市| 北辰区| 河间市| 明水县| 翁牛特旗| 乳山市| 宿州市| 鹤峰县| 枣庄市| 鹰潭市| 松溪县| 临猗县| 六枝特区| 桃江县| 丰台区| 正阳县| 基隆市| 靖边县| 亳州市| 勐海县| 霍邱县| 凯里市| 古交市| 吴江市| 安远县| 大丰市|