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

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

3天內(nèi)不再提示

基于Arduino開(kāi)發(fā)板和諾基亞5110 LCD顯示屏的紫外線強(qiáng)度計(jì)案例

454398 ? 來(lái)源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2021-01-01 10:04 ? 次閱讀

紫外線(Ultraviolet rays),簡(jiǎn)稱UV,是太陽(yáng)發(fā)出的光線。由于臭氧層的消耗,這些射線趨于達(dá)到極高的限值,可能導(dǎo)致皮膚曬傷等。這就是為什么始終需要每天和每小時(shí)對(duì)紫外線指數(shù)進(jìn)行預(yù)測(cè),以幫助人們保持追蹤和保持安全的原因。為了進(jìn)行監(jiān)控,為什么不擁有個(gè)人紫外線強(qiáng)度計(jì)?

在本篇文章中,我們將使用Arduino開(kāi)發(fā)板和諾基亞5110 LCD顯示屏以及紫外線傳感器(UVM30A)來(lái)制作一款紫外線強(qiáng)度計(jì)。諾基亞5110用于顯示紫外線強(qiáng)度指數(shù),這個(gè)是國(guó)際標(biāo)準(zhǔn)單位,用于表示在特定位置和特定時(shí)間遇到的來(lái)自太陽(yáng)的紫外線強(qiáng)度。

測(cè)量特定位置和特定時(shí)間的紫外線指數(shù)的目的是為了防止人們受到高紫外線指數(shù)射線所引起的危險(xiǎn),因?yàn)楦咦贤饩€射線可能會(huì)導(dǎo)致諸如曬傷等現(xiàn)象。它還可以用來(lái)指導(dǎo)人們,以便他們能夠采取足夠的保護(hù)措施,例如每天使用防曬霜、太陽(yáng)鏡、帽子等。試圖將紫外線指數(shù)與適當(dāng)?shù)姆雷o(hù)設(shè)備匹配的紫外線防護(hù)圖如下所示:

pIYBAF_bF06APHxoAANKPlK4pYg037.png

從該圖表可以看出,當(dāng)紫外線水平極高時(shí),建議留在室內(nèi),原因是紫外線指數(shù)室內(nèi)大部分為零。這意味著在測(cè)試我們將要制造的設(shè)備時(shí),應(yīng)將其拿到外面,如下圖所示,因?yàn)樵谑覂?nèi)測(cè)試時(shí)該值不會(huì)改變。

本文中將使用的UVM30A紫外線傳感器是一個(gè)具有幾乎線性輸出的低成本模擬傳感器。這意味著傳感器的輸出分別隨紫外線輻射的成比例增加而增加。從傳感器數(shù)據(jù)表中摘錄出的傳感器輸出(以mV為單位)相對(duì)于紫外線指數(shù)的圖表如下所示。

pIYBAF_bF4-AY8XYAAGS4APdDWE470.png

UV指數(shù)與傳感器輸出電壓之間的線性關(guān)系

它是一個(gè)由VCC、GND和模擬信號(hào)輸出組成的簡(jiǎn)單的三引腳傳感器,這樣就可以開(kāi)始工作了。

所需的組件

● 紫外線傳感器

● Arduino Uno開(kāi)發(fā)板

● 諾基亞5110 LCD顯示屏

● 面包板

● 連接導(dǎo)線

原理圖

準(zhǔn)備好所有組件之后,請(qǐng)按照以下示意圖進(jìn)行原理圖連接:

pIYBAF_bF6KATymtAAG9_F9w8OQ918.png

我們?cè)谥暗奈恼轮薪榻B了將N0kia 5110 LCD連接到Arduino開(kāi)發(fā)板的方法,但在本文中,我們?nèi)粤谐隽艘_圖的連接方式。同時(shí)本文給出了UV傳感器與Arduino開(kāi)發(fā)板的連接方式。

UV傳感器與Arduino開(kāi)發(fā)板的引腳連接表

GND GND
VCC VCC
output A0

諾基亞5110 LCD與Arduino開(kāi)發(fā)板之間的引腳連接表:

Pin 1(RST) D12
Pin 2(CE) D11
Pin 3(DC) D10
Pin 4(DIN) D9
Pin 5(CLK) D8
Pin 6(VCC) VCC
Pin 7(LIGHT) GND
Pin 8(GND) GND

在編寫(xiě)代碼之前,請(qǐng)仔細(xì)檢查連接以確認(rèn)一切正常。

代碼

此項(xiàng)目的代碼非常簡(jiǎn)單,我們僅使用一個(gè)庫(kù)(諾基亞5110 LCD庫(kù))與LCD進(jìn)行通信??梢詮拇随溄?a href="http://wenjunhu.com/soft/special/" target="_blank">下載該庫(kù)。該代碼的基本操作是讀取傳感器輸出連接到的模擬引腳0(A0),并將其轉(zhuǎn)換為mV,以便我們可以與UV指數(shù)表中的值進(jìn)行比較,并計(jì)算該特定位置和時(shí)間的UV指數(shù)。在計(jì)算并確定了紫外線指數(shù)之后,該指數(shù)通過(guò)諾基亞5110 LCD顯示給用戶。下圖顯示了用于比較的紫外線指數(shù)表。

o4YBAF_bF76AL17vAAHCkhQZUv8683.png

與往常一樣,我們將代碼分成小塊,并在給出完整代碼之前進(jìn)行解釋。首先,我們?cè)诖a中要做的第一件事是導(dǎo)入諾基亞5110 LCD庫(kù),該庫(kù)是顯示屏所必需的。

//////////////////////////////////////////////

// Arduino UV Meter //

// with NOKIA 5110 LCD //

// http://www.educ8s.tv //

/////////////////////////////////////////////

#include

導(dǎo)入庫(kù)后,我們開(kāi)始聲明將在代碼中使用的其他變量和常量。

LCD5110 lcd(8,9,10,12,11);

extern unsigned char BigNumbers[];

extern uint8_t splash[];

extern uint8_t ui[];

String UV = "0";

完成后,我們轉(zhuǎn)到setup函數(shù)。我們要做的第一件事是初始化LCD,然后設(shè)置顯示器的字體,使用lcd.clrScr()清除屏幕,然后繪制初始位圖。

void setup() {

lcd.InitLCD();

lcd.setFont(BigNumbers);

lcd.clrScr();

lcd.drawBitmap(0, 0, splash, 84, 48);

在執(zhí)行drawBitmap命令之后,我們更新LCD以反映更改,并延遲3000毫秒以確保啟動(dòng)畫(huà)面在屏幕上停留的時(shí)間足夠長(zhǎng)。

lcd.update();

delay(3000);

}

setup函數(shù)結(jié)束后,我們進(jìn)入loop()函數(shù),這里調(diào)用readSensor函數(shù),該函數(shù)從UV傳感器讀取值,將其轉(zhuǎn)換為mV并將其與Index表進(jìn)行比較以獲得mV的UV索引匹配讀入的值。

void loop() {

int stringLength = 0;

UV = readSensor();

接下來(lái),我們清除屏幕并繪制將要插入索引的UI。

lcd.clrScr();

lcd.drawBitmap(0, 0, ui, 84, 48);

繪制UI后,我們將計(jì)算索引的長(zhǎng)度,并使用printUV函數(shù)將其顯示,然后調(diào)用LCD更新命令。

stringLength = UV.length();

printUV(stringLength);

lcd.update();

delay(150);

}

該項(xiàng)目的完整代碼如下。

//////////////////////////////////////////////

// Arduino UV Meter //

// with NOKIA 5110 LCD //

// http://www.educ8s.tv //

/////////////////////////////////////////////

#include

LCD5110 lcd(8,9,10,12,11);

extern unsigned char BigNumbers[];

extern uint8_t splash[];

extern uint8_t ui[];

String UV = "0";

void setup() {

lcd.InitLCD();

lcd.setFont(BigNumbers);

lcd.clrScr();

lcd.drawBitmap(0, 0, splash, 84, 48);

lcd.update();

delay(3000);

}

void loop() {

int stringLength = 0;

UV = readSensor();

lcd.clrScr();

lcd.drawBitmap(0, 0, ui, 84, 48);

stringLength = UV.length();

printUV(stringLength);

lcd.update();

delay(150);

}

void printUV(int length)

{

switch(length)

{

case 1:lcd.print(UV,38,19); break;

case 2:lcd.print(UV,24,19); break;

default:lcd.print(UV,0,19); break;

}

}

String readSensor()

{

String UVIndex = "0";

int sensorValue = 0;

sensorValue = analogRead(0); //connect UV sensor to Analog 0

int voltage = (sensorValue * (5.0 / 1023.0))*1000;//Voltage in miliVolts

if(voltage<50)

{

UVIndex = "0";

}else if (voltage>50 && voltage<=227)

{

UVIndex = "0";

}else if (voltage>227 && voltage<=318)

{

UVIndex = "1";

}

else if (voltage>318 && voltage<=408)

{

UVIndex = "2";

}else if (voltage>408 && voltage<=503)

{

UVIndex = "3";

}

else if (voltage>503 && voltage<=606)

{

UVIndex = "4";

}else if (voltage>606 && voltage<=696)

{

UVIndex = "5";

}else if (voltage>696 && voltage<=795)

{

UVIndex = "6";

}else if (voltage>795 && voltage<=881)

{

UVIndex = "7";

}

else if (voltage>881 && voltage<=976)

{

UVIndex = "8";

}

else if (voltage>976 && voltage<=1079)

{

UVIndex = "9";

}

else if (voltage>1079 && voltage<=1170)

{

UVIndex = "10";

}else if (voltage>1170)

{

UVIndex = "11";

}

return UVIndex;

}

演示

將Arduino開(kāi)發(fā)板連接到計(jì)算機(jī),啟動(dòng)IDE并將代碼粘貼到其中。 在上傳之前,請(qǐng)不要忘記將UI和Splash文件添加到代碼的Arduino sketch文件夾中,因?yàn)檫@可能會(huì)引發(fā)錯(cuò)誤。

將代碼上傳到您的開(kāi)發(fā)板上,然后帶到外面以測(cè)量您所在區(qū)域的紫外線強(qiáng)度。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 紫外線
    +關(guān)注

    關(guān)注

    1

    文章

    369

    瀏覽量

    21240
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6470

    瀏覽量

    187179
  • LCD顯示屏
    +關(guān)注

    關(guān)注

    1

    文章

    91

    瀏覽量

    13341
  • 紫外線傳感器
    +關(guān)注

    關(guān)注

    0

    文章

    89

    瀏覽量

    12432
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    紫外線光譜分析與應(yīng)用 紫外線水處理系統(tǒng)的工作原理

    紫外線光譜分析與應(yīng)用 紫外線(UV)光譜分析是一種利用紫外線的特性來(lái)識(shí)別和分析物質(zhì)的技術(shù)。紫外線是指波長(zhǎng)在10納米至400納米之間的電磁波,它位于可見(jiàn)光譜的紫端之外。
    的頭像 發(fā)表于 12-17 15:20 ?216次閱讀

    紫外線燈的使用方法 紫外線殺菌技術(shù)應(yīng)用

    紫外線燈的使用方法 1. 選擇合適的紫外線燈 波長(zhǎng)選擇 :紫外線燈根據(jù)波長(zhǎng)不同分為UVA、UVB和UVC。UVC(波長(zhǎng)200-280nm)具有最強(qiáng)的殺菌效果,因此常用于消毒。 功率選擇 :根據(jù)需要
    的頭像 發(fā)表于 12-17 15:18 ?384次閱讀

    紫外線固化技術(shù)概述

    紫外線固化技術(shù)利用UV光引發(fā)聚合反應(yīng),快速固化材料,適用于印刷、電子、醫(yī)療等多個(gè)領(lǐng)域,提高生產(chǎn)效率和材料性能,正向高效、環(huán)保、多功能方向發(fā)展。
    的頭像 發(fā)表于 11-21 09:14 ?220次閱讀
    <b class='flag-5'>紫外線</b>固化技術(shù)概述

    紫外能量計(jì)的技術(shù)原理和應(yīng)用場(chǎng)景

    紫外能量計(jì)是一種用于測(cè)量紫外輻射能量的高精度儀器。以下是對(duì)其技術(shù)原理和應(yīng)用場(chǎng)景的詳細(xì)闡述:一、技術(shù)原理紫外能量計(jì)的工作原理主要基于光電效應(yīng)和紫外線對(duì)某些特定材料(如熒光劑)產(chǎn)生的熒光反
    發(fā)表于 10-15 14:42

    液晶顯示屏與led顯示屏的區(qū)別

    在現(xiàn)代電子設(shè)備中,顯示屏是人機(jī)交互的重要界面。隨著科技的發(fā)展,顯示屏技術(shù)也在不斷進(jìn)步,其中液晶顯示屏LCD)和LED顯示屏是兩種主流的
    的頭像 發(fā)表于 10-12 10:39 ?1400次閱讀

    紫外線誘導(dǎo)降解(UVID)對(duì)TOPCon組件的影響

    TOPCon光伏組件隨著技術(shù)的成熟和成本的降低,在全球范圍內(nèi)得到了迅速的推廣和應(yīng)用。然而,由于電池對(duì)紫外線輻射的敏感性增加,TOPCon技術(shù)容易受到紫外線誘導(dǎo)降解(UVID)的影響,這對(duì)組件的性能
    的頭像 發(fā)表于 09-27 08:10 ?860次閱讀
    <b class='flag-5'>紫外線</b>誘導(dǎo)降解(UVID)對(duì)TOPCon組件的影響

    外線的溫度高還是紫外線的溫度高

    引言 紅外線紫外線是電磁波譜中的兩種重要類(lèi)型,它們?cè)谧匀唤绾腿祟?lèi)社會(huì)中都有著廣泛的應(yīng)用。 紅外線紫外線的基本概念 2.1 紅外線
    的頭像 發(fā)表于 08-20 09:46 ?2437次閱讀

    外線紫外線有什么區(qū)別與功能

    引言 紅外線紫外線都是電磁波的一種,它們?cè)谧匀唤缰袕V泛存在,對(duì)人類(lèi)的生活和科學(xué)研究都有著重要的影響。然而,由于它們的特性和應(yīng)用領(lǐng)域不同,人們對(duì)它們的了解程度也不盡相同。 紅外線紫外線
    的頭像 發(fā)表于 08-20 09:44 ?3176次閱讀

    外線紫外線的特點(diǎn)及應(yīng)用有哪些

    。 d. 反射能力:紅外線的反射能力較強(qiáng),可以用于測(cè)量物體的距離。 紫外線的特點(diǎn): a. 波長(zhǎng)范圍:紫外線的波長(zhǎng)范圍在10納米至400納米之間。 b. 殺菌能力:紫外線具有較強(qiáng)的殺菌能
    的頭像 發(fā)表于 08-20 09:42 ?1377次閱讀

    外線紫外線哪個(gè)熱效應(yīng)更顯著

    一、引言 紅外線紫外線是電磁波譜中的兩個(gè)重要波段,它們?cè)谧匀唤绾腿祟?lèi)社會(huì)中都有著廣泛的應(yīng)用。紅外線紫外線的熱效應(yīng)是人們關(guān)注的焦點(diǎn)之一,因?yàn)樗鼈儗?duì)人體的健康和生活都有著直接或間接的影
    的頭像 發(fā)表于 08-20 09:41 ?1375次閱讀

    PHOTONIS紫外線相機(jī) (UV)介紹

    Photonis 自豪地推出其最新的紫外線 (UV) 相機(jī)和核心,采用尖端技術(shù)設(shè)計(jì),可滿足各行各業(yè)的需求。我們的紫外線成像系統(tǒng)(紫外線圖像增強(qiáng)器)具有無(wú)與倫比的靈敏度和精度,使用戶能夠捕捉和可視化
    的頭像 發(fā)表于 08-12 06:14 ?560次閱讀
    PHOTONIS<b class='flag-5'>紫外線</b>相機(jī) (UV)介紹

    基于Arduino紫外線傳感器設(shè)計(jì) 紫外線傳感器的工作原理和分類(lèi)

    紫外線傳感器,又稱為紫外光敏管(簡(jiǎn)稱UV管),是一種利用光電子發(fā)射效應(yīng)的光電傳感器。它能夠通過(guò)特定的光敏元件將紫外線信號(hào)轉(zhuǎn)換為可測(cè)量的電信號(hào),廣泛應(yīng)用于環(huán)境監(jiān)測(cè)、氣象觀測(cè)、農(nóng)業(yè)、林業(yè)、醫(yī)療診斷以及
    的頭像 發(fā)表于 07-08 17:53 ?1389次閱讀
    基于<b class='flag-5'>Arduino</b>的<b class='flag-5'>紫外線</b>傳感器設(shè)計(jì) <b class='flag-5'>紫外線</b>傳感器的工作原理和分類(lèi)

    ESP32-S2-HMI-DevKit-1開(kāi)發(fā)板如何實(shí)現(xiàn)lcd顯示?

    你好, ESP32-S2-HMI-DevKit-1開(kāi)發(fā)板上demo,lcd都是橫顯示的,想改成豎顯示
    發(fā)表于 06-28 06:50

    什么是紫外線傳感器?它的結(jié)構(gòu)分類(lèi)有哪些?

    什么是紫外線傳感器?它的結(jié)構(gòu)分類(lèi)有哪些? 紫外線傳感器是一種能夠測(cè)量、檢測(cè)和監(jiān)測(cè)紫外線輻射的電子傳感器。紫外線屬于電磁波譜的一部分,波長(zhǎng)范圍在185納米到400納米之間。
    的頭像 發(fā)表于 02-02 15:05 ?1241次閱讀