精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

如何構(gòu)建與Arduino板兼容的溫度傳感器

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-06 10:34 ? 次閱讀

步驟1:

要構(gòu)建傳感器,我創(chuàng)建了一個(gè)小的PCB。為此,我使用了墨粉轉(zhuǎn)移方法。如何做到這一點(diǎn)是許多指導(dǎo)對(duì)象的目標(biāo)。我焊接了芯片電容和引腳頭。在傳感器的第五個(gè)針腳上,我放了一根從電纜絕緣層中取出的小塑料管。它的目的是將傳感器引導(dǎo)到正確的位置并阻止其插入錯(cuò)誤的母頭孔中。在圖片上可以看到它必須放置的正確方式。傳感器按照使用以下Arduino引腳的方式投影:“5V”,“GNG”,“GND”,_,_,“A0”。這意味著-模擬輸出電壓值由ADC0采樣。

步驟2:硬件

對(duì)于基于DIY溫度傳感器的簡(jiǎn)單溫度計(jì)項(xiàng)目,我使用了Arduino MEGA板(也是我的DYI項(xiàng)目)。還需要LCD防護(hù)罩。就我而言,盾牌也是自制的。使用的LCD是帶有ST9720芯片的圖形128x64顯示器。我在ebay上買了它。 LCD屏蔽板的PCB也來(lái)自ebay。我已經(jīng)在LCD上焊接了母排針,并在原型屏蔽板上焊接了排針-現(xiàn)在,我可以簡(jiǎn)單地將LCD模塊插入到原型板上,并且可以正常工作,并且不使用任何電纜。如果您沒(méi)有任何LCD防護(hù)罩,那么當(dāng)然可以使用面包屑的標(biāo)準(zhǔn)方法。對(duì)于該項(xiàng)目,也可以使用任何字符LCD(例如16x2),但我沒(méi)有LCD,但我經(jīng)歷了更復(fù)雜的方式:-)。

步驟3:代碼

現(xiàn)在是時(shí)候編寫(xiě)代碼了。我試圖使它盡可能簡(jiǎn)短。因?yàn)槲沂褂肎LCD,所以我決定將實(shí)現(xiàn)基于u8glib庫(kù)。如果要使用字符LCD,則應(yīng)使用標(biāo)準(zhǔn)的LCD Arduino庫(kù),并且必須根據(jù)它們來(lái)調(diào)整代碼。

這是代碼:

/*

溫度計(jì)基于Maxims DS600u +芯片

*/

#include“U8glib.h”

#include

U8GLIB_ST7920_128X64_4X u8g(8,9,10,11) ,4,5,6,7,18,17,16);//8Bit Com:D0..D7:8,9,10,11,4,5,6,7 en = 18,di = 17,rw = 16

void u8g_prepare(void){

u8g。 setFont(u8g_font_6x10);

u8g.setFontRefHeightExtendedText();

u8g.setDefaultForegroundColor();

u8g.setFontPosTop();

}

void setup(void){

//翻轉(zhuǎn)屏幕,如果需要的話

//u8g.setRot180();

//指定默認(rèn)顏色值

if(u8g.getMode()== U8G_MODE_R3G3B2)

u8g.setColorIndex(255);//white

else if(u8g.getMode()== U8G_MODE_GRAY2BIT)

u8g.setColorIndex(3);//最大強(qiáng)度

否則if(u8g.getMode()== U8G_MODE_BW)

u8g.setColorIndex(1);//像素在

//u8g.setContrast(0x30);

pinMode(13,OUTPUT);

digitalWrite(13,HIGH);

u8g_prepare();

}

void draw(void){

浮動(dòng)供應(yīng)= 4.91 ;//必須在此處輸入arduino板的測(cè)量電源電壓

//讀取傳感器輸出電壓

int讀數(shù)= AnalogRead(0);

float v_out =(讀取*電源)/ 1.024 ;

//在液晶顯示屏上顯示溫度

float temperature =(v_out-509)/6.45;

char temp [5];

dtostrf(temperature,5,1 ,溫度);結(jié)果,u8g.drawStr(4,24, “溫度:”);結(jié)果,u8g.drawStr(76,24,溫度);結(jié)果,u8g.drawStr(108,24,“的 260 C“);

}

void loop(void){

//圖片循環(huán)

u8g.firstPage();

do {

draw();

} while(u8g.nextPage());

//延遲一段時(shí)間后重建圖片

延遲(1000);

有一些棘手的問(wèn)題代碼中的點(diǎn)。

我把它們放在粗體中。

1)因?yàn)閮?nèi)部Atmega ADC使用電源電壓作為參考來(lái)測(cè)量模擬電壓電位,這不是比率指標(biāo)電源電壓,但由傳感器芯片固定,如果電源電壓變化,可能會(huì)發(fā)生錯(cuò)誤。粗略的計(jì)算表明,50mV的電源變化會(huì)引起1度的溫度誤差。提高精度的解決方案是按應(yīng)使用的方式測(cè)量Arduino板上的確切電源電壓-如果您打算使用USB提供的Arduino溫度計(jì),則必須測(cè)量這種情況下的板子電源電壓。如果您打算將溫度計(jì)用作AC/DC適配器提供的獨(dú)立設(shè)備 - 那么,在這種情況下應(yīng)測(cè)量電路板+屏蔽的電源電壓。在我的情況下,設(shè)備由USB供電,我在“5V”Arduino引腳上測(cè)得4.91V。所以我把這個(gè)值放在草圖中。

2)很高興在LCD上你可以看到度數(shù)“°”符號(hào)。這里的問(wèn)題是不同的顯示器具有不同的ASCII表,并且難以說(shuō)出對(duì)應(yīng)于該符號(hào)的八進(jìn)制數(shù)究竟是什么。有兩種可能的解決方案:

A )如果有任何ASCII表,則讀取LCD模塊/驅(qū)動(dòng)程序的數(shù)據(jù)表

B )編寫(xiě)草圖以顯示寫(xiě)在LCD ROM中的整個(gè)ASCII表,查看符號(hào)出現(xiàn)的位置并計(jì)算/查看與之對(duì)應(yīng)的十進(jìn)制數(shù)。進(jìn)一步將此值轉(zhuǎn)換為八進(jìn)制數(shù)并放入草圖。

我使用了第二種方法。..。..并且以最簡(jiǎn)單的方式:-) - 庫(kù)中有“示例”u8glib。程序“ GraphicsTest”將打印存儲(chǔ)在驅(qū)動(dòng)器芯片ROM中的兩個(gè)ASCII表。在那里,我發(fā)現(xiàn)所需的符號(hào)具有260個(gè)八進(jìn)制等效數(shù)字。

想要在Arduino Due上實(shí)現(xiàn)此項(xiàng)目的家伙,我建議在代碼中也插入以下行:

analogReadResolution(12);

在設(shè)置過(guò)程中,然后在1.024上除以4.096除。

步驟4:

整個(gè)設(shè)備組裝,編程并運(yùn)行:

PS該項(xiàng)目繼續(xù)。..

步驟5:其他工作

在幾周前,我決定在此防護(hù)罩中實(shí)現(xiàn)其他功能。這些功能必須是:LCD上顯示的當(dāng)前時(shí)間和日期。為此,我從ebay購(gòu)買了RTC模塊。 (如圖所示)。該模塊不是很精確,必須不時(shí)調(diào)整。另一個(gè)解決方案是嘗試用更好的石英晶體進(jìn)行更換。

步驟6:進(jìn)行屏蔽修改

能夠插入RTC我已通過(guò)以下方式修改了屏蔽:我焊接了4針母接頭,并將其連接到正確的信號(hào)

SCL RTC引腳與屏蔽/引腳21相連。 arduino

分別將SDA與#20引腳相連

別忘了連接GND和Vcc引腳。

步驟7:代碼。..

以前的代碼已修改為:

/*

基于Maxims DS600u +芯片+ RTC的溫度計(jì)

*/

#include“ U8glib.h”

#include

#include

# include

int rtc [7];

float supply = 4.91;//這里必須輸入arduino板的測(cè)量電源電壓

//讀取傳感器輸出電壓

char hours [2];

char minutes [2];

char seconds [2] ;

char天[2];

char months [2];

char years [4];

U8GLIB_ST7920_128X64_4X u8g(8,9,10,11,4,5,6,7, 18、17、16);//8Bit Com:D0..D7:8,9,10,11,4,5,6,7 en = 18,di = 17,rw = 16

void u8g_prepare(void){

u8g。 setFont(u8g_font_6x10);

u8g.setFontRefHeightExtendedText();

u8g.setDefaultForegroundColor();

u8g.setFontPosTop();

}

void setup(void){

序列號(hào)。 begin(9600);

//翻轉(zhuǎn)屏幕,如果需要的話

//u8g.setRot180();

//指定默認(rèn)顏色值

if(u8g.getMode()== U8G_MODE_R3G3B2)

u8g.setColorIndex(255);//white

else if(u8g.getMode()== U8G_MODE_GRAY2BIT)

u8g.setColorIndex(3);//最大強(qiáng)度

否則if(u8g.getMode()== U8G_MODE_BW)

u8g.setColorIndex(1);//像素在

//u8g.setContrast(0x30);

pinMode(13,OUTPUT);

digitalWrite(13,HIGH);

u8g_prepare();

}

void draw(void){ u8g.drawFrame(0,0,127,63);

u8g.drawFrame(13,7,103,21);

u8g.drawBox(15,9,99,17);

RTC.get(rtc,true); u8g.setColorIndex(0);

dtostrf(rtc [2],2,0,hours);

if(rtc [2] 《10 )結(jié)果{結(jié)果u8g.drawStr(26,14, “0”);結(jié)果,},點(diǎn)擊u8g.drawStr(26,14,小時(shí));結(jié)果,dtostrf(RTC [1],2 ,0,minutes);

u8g.drawStr(45,14,“:”);

if(rtc [1] 《10)

{

u8g.drawStr(58,14,“ 0“ );結(jié)果,},點(diǎn)擊u8g.drawStr(58,14,分鐘);結(jié)果,dtostrf(RTC [0],2,0,秒);結(jié)果,u8g.drawStr(78,14, “:”);

if(rtc [0] 《10)

{

u8g.drawStr(91,14,“ 0”);

}

u8g.drawStr(91, 14秒);

u8g.setColorIndex(1);

switch(rtc [3])

{

情況1:u8g.drawStr(4,33,“ Sunday”);休息;

案例2:u8g.drawStr(4,33,“星期一”);休息;

案例3:u8g.drawStr(4,33,“星期二”);休息;

案例4:u8g.drawStr(4,33,“星期三”);休息;

案例5:u8g.drawStr(4,33,“星期四”);休息;

案例6:u8g.drawStr(4,33,“星期五”);休息;

案例7:u8g.drawStr(4,33,“星期六”); break;

}

dtostrf(rtc [4],2,0,days);

if(rtc [4] 《10)

{ u8g.drawStr(64,33, “0”);結(jié)果,},點(diǎn)擊u8g.drawStr(64,33,天);結(jié)果,u8g.drawStr(75,33, “”);結(jié)果,dtostrf(RTC [5],2 ,0,months);

if(rtc [5] 《10)

{

u8g.drawStr(80,33,“ 0”);

}

u8g.drawStr(80 ,33,月);結(jié)果,u8g.drawStr(90,33, “”);結(jié)果,dtostrf(RTC [6],4,0,歲);結(jié)果,u8g.drawStr(96,33,年);

int讀數(shù)= AnalogRead(0);

浮點(diǎn)v_out =(讀數(shù)*供給)/1.024;

//在LCD上顯示溫度

浮點(diǎn)溫度=(v_out-509)/6.45;

char temp [5]; dtostrf(temperature,5,1,temp);

u8g.drawStr(4,48,“ Temperature:”);

u8g.drawStr( 76,48,temp);

u8g.drawStr(108,48,“ 260C”);

void loop(void){

//圖片循環(huán)

u8g.firstPage();

做{

draw();

} while(u8g.nextPage());

//延遲一段時(shí)間后重建圖片

delay( 1000);

}

如您所見(jiàn),此代碼需要庫(kù)DS1307。我已附上該庫(kù),以幫助您解決由于可用的DS1307庫(kù)不同而引起的混亂。

責(zé)任編輯:wv

聲明:本文內(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)注

    48

    文章

    2918

    瀏覽量

    155900
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6464

    瀏覽量

    186686
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何校準(zhǔn)溫度傳感器

    校準(zhǔn)溫度傳感器是確保其測(cè)量準(zhǔn)確性的重要步驟。以下是一些常用的溫度傳感器校準(zhǔn)方法: 一、比較法校準(zhǔn) 原理 : 將待校準(zhǔn)的溫度
    的頭像 發(fā)表于 11-22 09:36 ?159次閱讀

    溫度傳感器與濕度傳感器的區(qū)別

    在環(huán)境監(jiān)測(cè)和控制領(lǐng)域,溫度和濕度是兩個(gè)非常重要的參數(shù)。它們不僅影響著人類的舒適度,還對(duì)工業(yè)生產(chǎn)、農(nóng)業(yè)生產(chǎn)、科學(xué)研究等多個(gè)領(lǐng)域有著深遠(yuǎn)的影響。為了準(zhǔn)確監(jiān)測(cè)和控制這些參數(shù),我們通常會(huì)使用專門(mén)的傳感器設(shè)備
    的頭像 發(fā)表于 11-22 09:31 ?124次閱讀

    工業(yè)溫度傳感器的優(yōu)缺點(diǎn) 溫度傳感器在智能家居中的應(yīng)用

    工業(yè)溫度傳感器的優(yōu)缺點(diǎn) 優(yōu)點(diǎn) 高精度 :工業(yè)溫度傳感器通常具有較高的精度,能夠提供準(zhǔn)確的溫度讀數(shù),這對(duì)于需要精確控制
    的頭像 發(fā)表于 11-22 09:30 ?191次閱讀

    基于電阻的溫度傳感器原理

    基于電阻的溫度傳感器,即電阻式溫度傳感器(RTD,Resistance Temperature Detector),其原理是利用導(dǎo)體或半導(dǎo)體材料的電阻值隨
    的頭像 發(fā)表于 10-31 09:36 ?203次閱讀

    溫度傳感器怎么測(cè)好壞_溫度傳感器的測(cè)量方法是什么

    溫度傳感器是測(cè)量溫度的儀器,廣泛應(yīng)用于工業(yè)、科研、醫(yī)療等領(lǐng)域。本文將詳細(xì)介紹溫度傳感器的測(cè)量方法和判斷好壞的標(biāo)準(zhǔn)。 一、
    的頭像 發(fā)表于 06-19 14:54 ?3074次閱讀

    溫度探頭和溫度傳感器的區(qū)別是什么

    溫度探頭和溫度傳感器是兩種不同的設(shè)備,它們?cè)跍y(cè)量溫度方面有著各自的特點(diǎn)和應(yīng)用場(chǎng)景。本文將詳細(xì)介紹溫度探頭和
    的頭像 發(fā)表于 06-19 14:45 ?2074次閱讀

    非接觸溫度傳感器如何測(cè)量?jī)?nèi)部溫度

    非接觸溫度傳感器,又稱為紅外溫度傳感器,是一種通過(guò)測(cè)量物體表面發(fā)射的紅外輻射來(lái)確定物體溫度傳感器
    的頭像 發(fā)表于 06-19 14:43 ?1027次閱讀

    水位溫度傳感器的作用和原理

    水位溫度傳感器是一種廣泛應(yīng)用于水處理、環(huán)境監(jiān)測(cè)、農(nóng)業(yè)灌溉、工業(yè)控制等領(lǐng)域的傳感器。它能夠?qū)崟r(shí)監(jiān)測(cè)水體的水位和溫度,為相關(guān)領(lǐng)域提供重要的數(shù)據(jù)支持。本文將詳細(xì)介紹水位
    的頭像 發(fā)表于 06-19 10:34 ?1017次閱讀

    溫度傳感器的原理及應(yīng)用

    溫度傳感器是一種將溫度變化轉(zhuǎn)換為電信號(hào)的傳感器,廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、醫(yī)療、氣象等領(lǐng)域。本文將詳細(xì)介紹溫度
    的頭像 發(fā)表于 06-19 10:27 ?2285次閱讀

    【電路百科】溫度傳感器pcb

    溫度傳感器PCB指的是集成了溫度傳感器的印刷電路。這種 PCB 可能包含溫度
    的頭像 發(fā)表于 05-07 17:36 ?760次閱讀

    溫度傳感器的類型與設(shè)計(jì)技巧

    作者:DigiKey Editor 溫度傳感器是一種用來(lái)測(cè)量環(huán)境或物體溫度的器件,它們?cè)诟鞣N應(yīng)用中都扮演著重要的角色,從家用電器到工業(yè)控制系統(tǒng)都有廣泛應(yīng)用,像是熱水、干衣機(jī)、暖通空調(diào)
    的頭像 發(fā)表于 05-05 10:29 ?2286次閱讀
    <b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的類型與設(shè)計(jì)技巧

    光纖溫度傳感器的原理 光纖溫度傳感器的應(yīng)用

    光纖溫度傳感器的原理 光纖溫度傳感器的應(yīng)用? 光纖溫度傳感器是一種利用光纖的熱學(xué)特性實(shí)現(xiàn)
    的頭像 發(fā)表于 03-07 15:55 ?2714次閱讀

    如何測(cè)量溫度傳感器好壞?溫度傳感器有哪些用途?

    溫度傳感器絕對(duì)是生活中最常用的傳感器類型之一,甚至我們的家中都有溫度傳感器的身影。為增進(jìn)大家對(duì)溫度
    的頭像 發(fā)表于 12-15 08:39 ?1934次閱讀

    你了解溫度傳感器嗎?溫度傳感器溫度變送器有哪些區(qū)別?

    一、溫度傳感器 近年來(lái),我國(guó)工業(yè)現(xiàn)代化的進(jìn)程和電子信息產(chǎn)業(yè)連續(xù)的高速增長(zhǎng),帶動(dòng)了傳感器市場(chǎng)的快速上升。溫度傳感器作為
    的頭像 發(fā)表于 12-14 08:44 ?1298次閱讀
    你了解<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>嗎?<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>和<b class='flag-5'>溫度</b>變送器有哪些區(qū)別?

    教你如何選擇溫度傳感器

    溫度傳感器種類繁多,應(yīng)用也極為廣泛,在我們?nèi)粘K璧钠嚒⑾M(fèi)電子、家用電器等產(chǎn)品上都存在一個(gè)至數(shù)個(gè)溫度傳感器。較比其他種類傳感器
    的頭像 發(fā)表于 12-14 08:44 ?1727次閱讀
    教你如何選擇<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>?