在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

使用Arduino控制的浸入式炊具

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-10-31 16:42 ? 次閱讀

步驟1:免責(zé)聲明和法律條款

1。該項目涉及使用線電壓(120-240v)。此外,用于容納控制器的外殼不是水密的,必須注意確保其不會被弄濕。此外,還有用于加熱水箱中水的裸露加熱元件。我要說的是存在潛在的電擊或嚴(yán)重?zé)齻L(fēng)險。如果您不能承擔(dān)此風(fēng)險,請不要構(gòu)建此項目。

2。未煮熟的食物可能會嚴(yán)重危害健康。確定合適的食物烹飪溫度時,請查閱食譜和食物標(biāo)簽。

警告:

1。除非將加熱元件浸入水中,否則切勿操作炊具。

2。除非將潛水泵浸入水中,否則切勿操作炊具。

3。請務(wù)必小心,以確保水或其他液體永遠(yuǎn)不要進(jìn)入控制箱。

4。切勿將您的手浸入熱水中。

5。

第2步:零件清單

1。 1 – Arduino Uno 29.00美元

2。 1 – LM35溫度傳感器$ 0.99

3。 1 – SainSmart LCD/鍵盤保護(hù)罩$ 9.95

4。 1 – SainSmart 2通道固態(tài)繼電器$ 7.95

5。 1 –電氣端子$ 3.75

6。 1個項目盒子(6“ x4”)5.99美元

7。 2 –2KΩ電阻$ 2.38

8。 2 –200Ω電阻$ 2.38

9。 20規(guī)格連接線(3根線軸,紅色,黑色,綠色)$ 8.39

10。熱縮管$ 2.99

11。 .023塑料管(3英尺)$ 1.23

12。 .023尼龍螺絲$ 0.19

13。 2 –潛水熱水器$ 18.00

14。 1 –潛水泵70 GPH $ 16.99

15。 1 –塑料桶,7加侖$ 7.99

16。 ?英寸支架,1.99美元

17。扭線連接器$ 3.21

總計:$ 123.37

第3步:工具

?焊鐵與焊料

?熱膠槍

?帶有各種尖端的Dremol工具

?螺絲起子

?尖嘴鉗

?鋼絲鉗/壓接鉗

?萬用表

第4步:溫度傳感器子組件

溫度傳感器子組件使用LM35溫度傳感器,一些電阻器和電線。該傳感器需要電路來提供適當(dāng)?shù)?a target="_blank">信號。該電路在附圖中有詳細(xì)說明:

首先測量將用于傳感器的連接線。傳感器將位于浸入式炊具的地板上,與加熱元件相反。我這樣做是為了確保獲得所有水的溫度讀數(shù),而不僅僅是加熱元件周圍的水。您需要三根足夠長的導(dǎo)線以橫穿浴缸的地板和墻壁,再加上三英尺長才能到達(dá)控制箱。我使用了不同的電線顏色,因為您將擁有一根地線,5伏特和感應(yīng)線。

首先將連接到傳感器+ VS端子的擴(kuò)展信號焊接在一起。接下來,將200Ω電阻器焊接到中央(Vout)端子。然后將一個2KΩ電阻焊接到傳感器的Gnd端子。我的本地RadioShack?沒有200?或2K?電阻,所以我使用了220?和2.2K?電阻。接下來,我將電阻器的松散端絞在一起。然后,我拿了一個220a和2.2Ka電阻,將兩端的兩端都捻在一起,基本上如上圖8所示將它們并聯(lián)。添加一條信號線,并將并聯(lián)電阻的一端扭絞到從LM35傳感器出來的電阻的扭絞端上。在該連接處涂焊料。最后,將地線焊接到并聯(lián)電阻的其余雙絞端。

下一步,將線束編織起來,這樣您就可以輕松地將電線和傳感器穿過用于將成為炊具底部的水密溫度傳感器通道。

下一步構(gòu)造水密溫度傳感器通道。首先,使用熱膠槍將尼龍螺絲粘貼到尼龍管中。然后沿著地板的中心和浴缸的側(cè)面粘貼管道。

您應(yīng)該能夠輕松地將溫度傳感器插入上圖所示的水密通道中。修剪浴缸上部邊緣的水密通道。

步驟5:加熱元件子組件

接下來,我們將構(gòu)造加熱元件。我添加了兩個元素,盡管可以添加其他元素,這將使水更快地達(dá)到溫度。加熱元件幾乎可以在任何五金店或廚房供應(yīng)店購買。它們可浸入水中,通常用于加熱杯子中的水以用于咖啡或茶。每個元件的額定功率為300瓦。使用公式A = W/V,每個電極將消耗大約2安培的電流,這完全在我們固態(tài)繼電器(SSR)的10安培額定值之內(nèi)。值得注意的是,我最初嘗試使用SainSmart 2安培SSR,但是由于要消耗的安培略大于2安培,所以將它們燒壞了。

需要安裝加熱元件,以使其不接觸外殼側(cè)面。浴缸并融化。為此,我找到了兩個可以抵消這些元素的硬塑料衣架。我將它們粘合在一起,然后在其上粘合一塊面包板,以提供額外的保護(hù)以防熔化。然后,我使用扎線帶將加熱元件固定在其上。如圖所示。

最后,我用我的Dremel工具在浴缸的側(cè)脊上切出一個槽,并將倒置的衣架插入槽中以安裝加熱元件。

潛水泵底部應(yīng)有吸盤,并使用這些吸盤將其簡單地連接到浴缸的側(cè)壁。然后,我收集了所有的電線,并使用扎帶將它們捆在一起。

步驟6:控制器子組件(第1部分)

現(xiàn)在,我們將注意力轉(zhuǎn)向控制器。對于控制器,我選擇了三個主要組件,分別是Arduino Uno控制器,SainSmart LCD/鍵盤護(hù)罩和SainSmart 10安培雙固態(tài)繼電器(SSR)。首先,在項目框的底部鉆孔,然后將電源端子固定在框上。接下來,從潛水加熱元件和潛水泵的末端切下一定長度的壁塞,以使其能到達(dá)坐在浴缸旁邊柜臺上的控制箱。我保留了從插頭到潛水泵的電源,因為它具有最長的長度,但是您可以使用任何可用的電源線來實現(xiàn)此目的。鉆一個足夠大的孔,以使所有電纜進(jìn)入項目盒的側(cè)面,然后將其布線到接線盒。該孔可以用橡膠墊圈密封。如果需要,可以將終端放置在電源插頭,潛水泵上,以及每個潛水加熱元件的一根電線上。將電源線的一根電線連接到每個插排。將一根電纜從潛水泵連接到每個條帶(潛水泵將連續(xù)運(yùn)行,并且不會通過繼電器布線)。可選地,電源插頭中的一根電線可以通過開關(guān)進(jìn)行布線,但是我選擇此版本的電磁爐只是為了簡化操作。最后,將一根導(dǎo)線從每個潛水加熱元件連接到配電盤的一側(cè)。使用哪個條帶都沒有關(guān)系,但是從每個加熱元件連接的電線應(yīng)從同一條帶上脫落。請注意,我在項目盒內(nèi)的電源電纜上打了一個結(jié),以防止其(和其他電纜)從盒內(nèi)的孔中拉回。

下一步,切短兩段(?6“ ),然后將其連接到固定有潛水加熱元件的相對條上。這些連接如圖所示。

步驟7:控制器子組件(第2部分)

現(xiàn)在讓我們看一下SSR,SSR期望與Arduino板有四個連接,一個+ 5v連接,一個Gnd連接和兩個數(shù)字信號連接。我發(fā)現(xiàn)最簡單的方法是將這些連接焊接到電路板的底部,因為SSR每個繼電器具有三個螺絲端子,將兩條六英寸的雙絞線剝開并擰入中心端子。如圖所示,再接兩條兩條6英寸的雙絞線,然后將它們擰緊到每個繼電器最左邊的端子中。為了使這些繼電器保持平衡,繼電器將抵靠在項目盒的面板上。

步驟8:控制器子組件(第3部分)

現(xiàn)在,將兩條數(shù)字控制線從SSR焊接到SainSmart LCD/鍵盤防護(hù)板的數(shù)字端口2和3。將三根六英寸的導(dǎo)線分別焊接到SainSmart LCD/鍵盤屏蔽的5v,Gnd和模擬端口1。

步驟9:控制器子組件(第4部分)

插入SainSmart LCD/Keypad屏蔽到Arduino Uno中,確保所有銷釘正確接合。通過USB串行端口將Arduino連接到計算機(jī),然后編譯并將附件代碼下載到設(shè)備中。如果您希望設(shè)備默認(rèn)使用攝氏溫度運(yùn)行,只需在編譯之前將變量“ iTempMode”從“ FARENHEIT”更改為“ CELSIUS”即可。請注意,可以即時在攝氏和攝氏之間進(jìn)行切換(請參閱步驟10)。

使用SainSmart LCD/鍵盤護(hù)罩左上角的小螺釘來調(diào)節(jié)顯示屏的亮度。有必要的。拔下Arduino,將其關(guān)閉。從SainSmart LCD/鍵盤護(hù)罩上取下Arduino Uno。

在面板上切開/鉆孔,然后用螺釘將SainSmart LCD/鍵盤護(hù)罩和SainSmart SSR護(hù)罩固定在面板上。

收集紅色溫度傳感器線,將SainSmart LCD/鍵盤護(hù)罩的5v導(dǎo)線與SainSmart SSR的Vss + 5v導(dǎo)線連接在一起并焊接,并用收縮管保護(hù)它們。對黑色溫度傳感器導(dǎo)線和兩條Gnd導(dǎo)線執(zhí)行相同的操作。將綠色導(dǎo)線從溫度傳感器連接到模擬端口1導(dǎo)線。使用擰緊的端子連接器將SSR的一根導(dǎo)線固定到一個加熱元件的一根導(dǎo)線上。對其余的SSR和加熱元件重復(fù)此步驟。然后將每個SSR中剩余的導(dǎo)線分別固定到從接線盒中引出的導(dǎo)線上。

將Arduino Uno的插頭插入SainSmart LCD/鍵盤屏蔽層。我決定不使用單獨(dú)的9伏電源,而是決定使用從RadioShack?購買的非處方電源。我通過項目框側(cè)面的孔將此連接器插入,然后將其插入Arduino Uno。這種布置的缺點是需要兩個壁式插座來運(yùn)行炊具。優(yōu)點是您仍可以使用控制器(并檢查包括溫度傳感器的連接),而無需在加熱元件上施加壁式電源。

最后,將面板固定在項目盒上。您可以插入9伏電源,并且應(yīng)該會看到設(shè)備啟動,并讀取默認(rèn)的設(shè)定溫度(130°F)和當(dāng)前溫度(室溫)。如果您將熱水裝滿浴缸,則溫度會升高。

步驟10:基本操作

要升高或降低設(shè)定溫度,請分別使用“向上”和“向下”鍵。調(diào)節(jié)到所需的溫度后,使用“選擇”鍵設(shè)置新的“設(shè)置”溫度。 SSR應(yīng)響應(yīng)設(shè)置溫度相對于當(dāng)前溫度的變化而發(fā)出咔嗒聲。如果您想在攝氏下工作,請使用“左”鍵調(diào)出選項菜單。使用“向上”和“向下”鍵在模式之間進(jìn)行選擇,并使用“選擇”鍵進(jìn)行選擇。為了將來,我打算添加一個時鐘,時鐘功能也將是通過此方法輸入的子菜單。 “ Rst”鍵將重新啟動設(shè)備,而“ Right”鍵目前已被忽略。

我強(qiáng)烈建議在連接120v電源之前,將Arduino/SainSmart電路用于測試驅(qū)動器。只需在浴缸中注滿熱水即可。插入Arduino 9v電源。 LCD顯示屏上應(yīng)顯示“ Booting…”(正在引導(dǎo)…)消息,最后顯示“ Immersion Cooker”和軟件版本號。在引導(dǎo)階段,軟件將實例化溫度讀取陣列,該陣列用于執(zhí)行信號平滑。幾秒鐘后,應(yīng)顯示默認(rèn)設(shè)置溫度(130°F)和當(dāng)前溫度。當(dāng)傳感器達(dá)到真實溫度時,溫度在最初的幾秒鐘內(nèi)可能會發(fā)生很大變化,但應(yīng)該穩(wěn)定下來。我在水中使用了模擬烹飪溫度計,以驗證溫度傳感器讀數(shù)的正確性。當(dāng)升高或降低設(shè)定溫度時,您應(yīng)該聽到SSR的喀噠聲。此外,應(yīng)使用萬用表檢查繼電器的導(dǎo)通性,以確保SSR正常工作。我還將使用萬用表檢查所有120v連接,以確保沒有短路。一旦確定所有電氣連接正確,就可以將120v電路連接到主電源。

步驟11:您的第一頓飯

首先,要使用炊具,必須將食物放在真空密封袋中。在第一頓飯中,我調(diào)味了一些蔬菜并用真空密封。接下來,我拿了大約20只大蝦,將它們密封在一個裝有幾包黃油和一些大蒜的袋子中。最后,將兩塊紐約條狀牛排,用少許鹽,胡椒粉,洋蔥粉和大蒜粉調(diào)味,并用真空袋密封。

我喜歡我的牛排,這種稀有牛排的溫度約為140°F,因此,那是我設(shè)定溫度的地方。蝦將在較低的溫度下烹飪,因此您將在此溫度下過度烹飪。我將它們放在水中的時間不超過30分鐘。同樣,將蔬菜放在水中一小時以上會導(dǎo)致蔬菜煮得過頭。

但是,讓我們談?wù)勥@頓飯的真正意義;那些多汁的紐約牛排。他們可以在水中靜置數(shù)小時,并且永遠(yuǎn)不會在此溫度下煮熟。我會讓他們坐至少一個小時,但他們在溫度下停留的時間越長,它們就會變得越嫩。

當(dāng)您準(zhǔn)備好吃飯時,只需將牛排從他們的袋子中拉出即可。將它們放在鍋中,放入一些低芥酸菜籽油中加熱,加熱時間足夠長,足以使它們焦灼。將蝦,蔬菜和牛排放入盤子。如果您愿意的話,可以減少三杯波特酒,一湯匙牛肉條和一些意大利香料,然后用中火將其減少,直到液體涂滿湯匙,從而減少波特酒。

第12步:接線圖

此項目中的電路在附圖中。

步驟13:

/************************** **************************************/

/* */

/*標(biāo)題:電磁爐控制器*/

/*版本:1.0 */

/*版本日期:2012年5月1日*/

/*作者:Edward A Ranzenbach */

/* MCWSM */

/* */

/*說明:*/

/*此草圖在Arduino Uno平臺上運(yùn)行*/

/*,帶有SainSmart 1602 LCD/鍵盤護(hù)板,*/

/* SainSmart實體狀態(tài)繼電器設(shè)備和LM35 */

/*溫度傳感器。它旨在控制*/

/*兩個普通加熱元件和一個小型*/

/*浸入式炊具中的浸入式泵。 */

/*用戶只需使用*/

/*鍵盤撥入設(shè)定溫度,contrioller選通*/

/*加熱元件即可達(dá)到并保持設(shè)定水*/

/*溫度。 */

/* */

/*未來:添加計時器/時鐘功能*/

/* */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */

/****************** ******************************************/

#include

#定義VERSION_STRING“ 1.0”

#define btnRIGHT 0

#define btnUP 1

#define btnDOWN 2

#define btnLEFT 3

#define btnSELECT 4

#define btnNONE 5

#define ELEMENT_1 2//元素1控制端口

#define ELEMENT_2 3////元素2控制端口

#define LED_PORT 13

#define THIRTY_SECONDS 30000;//30,000微秒

#define鍵盤端口0

#define TEMP_PORT 1

#define增加1

#define減小-1

#define NO_CHANGE 0

#define SELECT 999

#define CELSIUS 0

#define FARENHEIT 1

#define TEMP_COUNT 10

#define KEY_BOUNCE_DELAY 333 int iTempMode = FARENHEIT;//默認(rèn)為Farenheit…

int iSetTemp = 130;//iSetTemp是全局的…

int iKeyPressIn = 0; float fTemp [TEMP_COUNT];//全局溫度平滑數(shù)組…

int iCurrentIndex = 0;//iCurrentIndex是臨時數(shù)組的全局索引

byte bDegreeSymbol [8] =//°符號的位掩碼…

{

B11100,

B10100,

B11100,

B00000,

B00000,

B00000,

B00000,

B00000

} ;;字節(jié)bCheckMarkSymbol [8] =//√符號的位掩碼…

{

B00000,

B00000,

B00000,

B00001,

B00010,

B10100,

B01100,

B01000

} ;;液體液晶lcd(8,9,4, 5、6、7);//使用接口引腳的編號初始化庫

void setup()

{

/*************************** **********************************/

/* */

/*模塊:設(shè)置*/

/*版本:1.0 */

/*版本日期:2012年5月1日*/

/*作者:Edward A Ranzenbach */

/*說明:*/

/*初始化LCD顯示屏并顯示啟動*/

/*屏幕。 */

/*在設(shè)置過程中,溫度*/

/*平滑陣列初始化為*/

/*讀數(shù)。 */

/* */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */

/******************************************* **************/

字符串strLine1;

字符串strLine2;

字符串strElipses =“?!?

lcd.createChar(0,bDegreeSymbol);//創(chuàng)建LCD字符

lcd.createChar(1,bCheckMarkSymbol);

lcd.begin(16,2);//設(shè)置LCD顯示列,行。..

DisplayLCD(“ Booting 。..”,“”);

for(int iIndex = 0; iIndex {

fTemp [iIndex] = AnalogRead(TEMP_PORT);

fTemp [iIndex] =((fTemp [iIndex] * 3.3)/1023);//10攝氏度/攝氏度

if(iTempMode == FARENHEIT)

{

fTemp [iIndex] = ConvertCelsiusToFarenheit(fTemp [iIndex]);//轉(zhuǎn)換為Farenheit 。..

}

DisplayLCD(“ Booting 。..”,strElipses);

strElipses + =“。”;

delay(100);

}

pinMode(ELEMENT_1,OUTPUT);

pinMode (ELEMENT_2,輸出);

pinMode(LED_PORT,輸出);

strLine1 =“浸入式炊具”;//創(chuàng)建并顯示初始屏幕

strLine2 =“版本:”;

strLine2 + = VERSION_STRING;

DisplayLCD(strLine1,strLine2);

delay(2000);

}

無效循環(huán)()

{

/****************************************** ***************/

/* */

/*模塊:循環(huán)*/

/*版本:1.0 */

/*版本日期:2012年5月1日*/

/*作者:Edward A Ranzenbach */

/*說明:*/

/*獲取新的SetTemp(如果有)。然后,它調(diào)用SetTemp */

/*來選通加熱元件以調(diào)整*/

/*溫度。然后顯示溫度信息,延遲一秒*/

/*秒,然后返回。該延遲可防止*/

/*固態(tài)繼電器連續(xù)打開和關(guān)閉*/

/*。 */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */點擊/************ *******/

字符串strLCDLine0 =“”;

字符串strLCDLine1 =“”; iSetTemp = GetSetTemp(iSetTemp);//查看用戶是否要更改溫度。..

SetTemp(iSetTemp);//控制加熱元件。..

DisplayTemps(iSetTemp,GetCurrentTemp(),‘S’);//顯示溫度…

delay(1000);//不要過載SSR 。..

}

int GetSetTemp(int iSetTemp)

{

/******************* **************************************/

/* */

/*模塊:GetSetTemp */

/*版本:1.0 */

/*版本日期:2012年5月1日*/

/*作者:Edward A Ranzenbach */

/*說明:*/

/*讀取鍵盤以查看是否正在對當(dāng)前設(shè)定溫度進(jìn)行*/

/*調(diào)節(jié)。默認(rèn)值為*/

/*,不按下任何鍵。這將從ReadKeypad返回*/

/* btnNone,并導(dǎo)致*/

/*立即返回給調(diào)用者。否則,將適當(dāng)調(diào)整*/

/*設(shè)定溫度和*/

/*新的調(diào)整溫度。 */

/* */

/*此模塊還允許用戶進(jìn)入*/

/*子菜單,該子菜單中可以執(zhí)行諸如更改*/

/*操作等操作從華氏溫度到攝氏溫度的模式。 */

/* */

/*如果用戶按下任何鍵進(jìn)行溫度*/

/*調(diào)整,他們必須按下選擇鍵*/

/*進(jìn)行調(diào)整永久并將*/

/*返回給調(diào)用方。 */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */點擊/************ *******/

int iKeyIn;

int iNewSetTemp;

int iTempDelta;//增加。減小或選擇。..

char cSetTemp [4];

布爾值bSelected = false;

char cTempMode =‘S’;

iNewSetTemp = iSetTemp;//從當(dāng)前溫度開始。..

iKeyIn = ReadKeypad();

if(iKeyIn!= btnNONE)//btnNONE =無需執(zhí)行任何操作,只需返回到調(diào)用方…

{

do//直到bSelected…

{

switch(iKeyIn)

{

case btnUP://調(diào)高溫度…

iNewSetTemp + = 1;

cTempMode =‘A’;//通知用戶正在進(jìn)行調(diào)整。..

中斷;

案例btnDOWN://向下調(diào)整溫度…

iNewSetTemp-= 1;

cTempMode =‘A’;//通知用戶正在進(jìn)行調(diào)整。..

中斷;

案例btnLEFT:

iNewSetTemp = Menu();//選項菜單。..

bSelected = true;//一旦菜單選項完成就退出。..

break;

case btnSELECT://調(diào)整完成…

bSelected = true;

break;

默認(rèn)值://忽略其他鍵。 。.

break;

}

DisplayTemps(iNewSetTemp,GetCurrentTemp(),cTempMode);//顯示每次調(diào)整的時間。..

delay(KEY_BOUNCE_DELAY);//平滑按鍵彈跳。..

iKeyIn = ReadKeypad();//內(nèi)部讀取循環(huán)。..

} while(!bSelected);

}

return(iNewSetTemp);

}

void SetTemp(int iSetTemp)

{

/******************* ****/

/* */

/*模塊:SetTemp */

/*版本:1.0 */

/*版本日期:05/01/2012 */

/*作者:Edward A Ranzenbach */

/*說明:*/

/*此模塊將iSetTemp參數(shù)與*/

/*當(dāng)前溫度進(jìn)行比較。如果*/

/*度的差異大于1,則會根據(jù)需要打開或關(guān)閉加熱元件*/

/*。 */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */點擊/************ *******/

int iCurrentTemp; iCurrentTemp = GetCurrentTemp();//檢查當(dāng)前溫度…

if(abs(iSetTemp-iCurrentTemp)》 = 1)//如果溫度變化超過1度

{

if(iCurrentTemp》 iSetTemp)//如果溫度過高,關(guān)閉加熱元件

{

digitalWrite(ELEMENT_1,LOW);

digitalWrite(ELEMENT_2,LOW);

digitalWrite(LED_PORT,LOW);

}

else

{

digitalWrite(ELEMENT_1,HIGH);//如果溫度太低,請打開加熱元件

digitalWrite(ELEMENT_2,HIGH);

digitalWrite(LED_PORT,HIGH);

}

}

}

int GetCurrentTemp()點擊{點擊/****************************************** ***********/

/* */

/*模塊:GetCurrentTemp */

/*版本:1.0 */

/*版本日期:05/01/2012 */

/*作者:Edward A Ranzenbach */

/*說明:*/

/*此模塊從*/

/*傳感器讀取當(dāng)前溫度并將其存儲到信號平滑*/

/*數(shù)組。傳感器的溫度以*/

/*攝氏度為單位,并且根據(jù)當(dāng)前操作模式,我們根據(jù)需要將溫度轉(zhuǎn)換為Farenheit */

/*。然后,用戶*/

/*返回一個表示平滑的*/

/*(即數(shù)組中所有溫度的平均值)*/

/*溫度的整數(shù)。 */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */點擊/************ *******/

int iReturnTemp = 0; float fCumulativeTemp = 0; float fADCIn;

if((iCurrentIndex)== TEMP_COUNT)//保持在數(shù)組范圍內(nèi)。 。

{

iCurrentIndex = 0;

}

fADCIn = AnalogRead(TEMP_PORT);//從傳感器獲取溫度信號。..

if(iTempMode == CELSIUS)//轉(zhuǎn)換為攝氏溫度。..

{

fTemp [iCurrentIndex] =((((fADCIn * 3.7)/1024)* 100) ;

}

else

{

fTemp [iCurrentIndex] = fADCIn;////直讀以法郎表示。

}

表示(int iIndex = 0; iIndex {

fCumulativeTemp + = fTemp [ iIndex];

}

iReturnTemp =((int)(fCumulativeTemp/TEMP_COUNT));//返回平滑的溫度。..

iCurrentIndex ++;//下次呼叫的凹凸索引。..

return(iReturnTemp);

}

void DisplayTemps(int iSetTemp,int iCurrentTemp,char cTempMode)

{

/***** **********/

/* */

/*模塊:DisplayTemps */

/*版本:1.0 */

/*版本日期:05/01/2012 */

/*作者:Edward A Ranzenbach */

/*說明:*/

/*此模塊在LCD顯示屏上顯示兩行溫度*/

/*。第一個是設(shè)定溫度*/

/*,并根據(jù)我們是在*/

/*進(jìn)行調(diào)節(jié)還是設(shè)定溫度進(jìn)行標(biāo)記。顯示屏的*/

/*第二行始終為當(dāng)前*/

/*溫度。 */

/* */

/*如果連續(xù)調(diào)用此模塊,則*/

/*將閃爍,因此調(diào)用方應(yīng)在*/

/*調(diào)用之間延遲。 */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */點擊/************ *******/

字符串strLine1;

字符串strLine2;

if(cTempMode ==‘A’)//調(diào)整模式。..

{

strLine1 =“調(diào)整:“;

}

else

{

strLine1 =”設(shè)置:“;//設(shè)置模式。..

}

strLine1 + = iSetTemp;

strLine2 = String(“ Current:”);

strLine2 + = iCurrentTemp;

lcd.clear();

lcd.setCursor(0,0);

lcd.print(strLine1);

lcd.write(byte(0));//度數(shù)符號。..

if(iTempMode == FARENHEIT)

{

lcd.print(“ F”);

}

else

{

lcd。 print(“ C”);

}

lcd.setCursor(0,1);

lcd.print(strLine2);

lcd.write(byte(0));

if (iTempMode == FARENHEIT)

{

lcd.print(“ F”);

}

else

{

lcd.print(“ C”);

}

}

void DisplayLCD(String strLine0,String strLine1)

{

/************************** *******************************/

/* */

/*模塊:DisplayLCD */

/*版本:1.0 */

/*版本日期:2012年5月1日*/

/*作者:Edward A Ranzenbach */

/*說明:*/

/*此模塊顯示兩個在LCD */

/*顯示屏上顯示文本行。 */

/*如果連續(xù)調(diào)用此模塊,則*/

/*將閃爍,因此調(diào)用方應(yīng)在*/

/*調(diào)用之間延遲。 */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */點擊/************ *******/

lcd.clear();

如果(strLine0.length()》 0)

{ lcd.setCursor(0,0);

lcd .print(strLine0);

}

如果(strLine1.length()》 0)

{ lcd.print(strLine1);

}

}

int ReadKeypad()

{

/******************************** *************************//

/* */

/*模塊:ReadKeypad */

/*版本: 1.0 */

/*版本日期:2012年5月1日*/

/*作者:Edward A Ranzenbach */

/*說明:*/

/*讀取SainSmart鍵盤。如果用戶*/

/*按下一個鍵,則返回一個值。 */

/*的值可能因設(shè)備而異。因此,我們*/

/*通過查看我們是否接近*/

/*讀取值來確定該值。 */

/*歷史記錄:*/

/* */

/* 2012-05-01-Edward A Ranzenbach */

/*初始編碼*/

/* */點擊/************ *******/

int iKeyIn = AnalogRead(KEYBOARD_PORT);

如果(iKeyIn》 1000)//這將是最常見的結(jié)果。..

{

return btnNONE;

}

否則(iKeyIn 《50)

{

delay(KEY_BOUNCE_DELAY);//處理按鍵彈跳。..

return btnRIGHT;

}

否則(iKeyIn 《195)

{

delay(KEY_BOUNCE_DELAY);//處理鍵反彈。..

return btnUP;

}

否則(iKeyIn 《380)

{

delay(KEY_BOUNCE_DELAY);到攝氏
責(zé)任編輯:wv

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

    關(guān)注

    188

    文章

    6478

    瀏覽量

    188287
收藏 人收藏

    評論

    相關(guān)推薦

    STM32、Arduino、樹莓派開發(fā)方式差異大嗎

    異同點 STM32、Arduino、樹莓派是三種不同的硬件平臺,各自具有獨(dú)特的特點和適用場景。 ? 一、硬件特性 ? 硬件平臺 STM32 Arduino 樹莓派 類型 微控制器 開源電子原型平臺
    的頭像 發(fā)表于 01-02 11:33 ?524次閱讀

    如何使用Arduino實現(xiàn)CAN總線通信呢

    CAN(Controller Area Network)總線是一種常用于汽車和工業(yè)控制系統(tǒng)的串行通信協(xié)議,以其高可靠性和實時性而聞名。Arduino,作為一種流行的開源微控制器平臺,可以通過附加
    的頭像 發(fā)表于 12-23 09:06 ?703次閱讀

    Arduino采集雷達(dá)模塊數(shù)據(jù)與串口繪圖

    Arduino采集雷達(dá)模塊數(shù)據(jù)與串口繪圖
    的頭像 發(fā)表于 12-14 11:44 ?353次閱讀
    <b class='flag-5'>Arduino</b>采集雷達(dá)模塊數(shù)據(jù)與串口繪圖

    Arduino Nano Matter開發(fā)板正式上市

    Silicon Labs(芯科科技)和Arduino在近日共同宣布Arduino Nano Matter開發(fā)板現(xiàn)已正式上市。這是延續(xù)今年3 月芯科科技和Arduino釋出Arduino
    的頭像 發(fā)表于 12-10 13:50 ?383次閱讀

    HAL庫在Arduino平臺上的使用

    HAL庫在Arduino平臺上的使用 Arduino平臺是一個開源的電子原型平臺,它包括硬件(基于微控制器的電路板)和軟件(Arduino IDE)。
    的頭像 發(fā)表于 12-02 14:04 ?577次閱讀

    基于Arduino的串口通信項目

    基于Arduino的串口通信項目涉及多個方面,包括硬件連接、軟件編程、串口參數(shù)配置等。 一、硬件準(zhǔn)備 Arduino開發(fā)板 :確保你有一塊Arduino開發(fā)板,如Arduino Uno
    的頭像 發(fā)表于 11-22 09:24 ?949次閱讀

    stm32與Arduino的比較

    在微控制器的世界里,STM32和Arduino是兩個經(jīng)常被提及的名字。STM32是一系列由STMicroelectronics生產(chǎn)的高性能微控制器,而Arduino則是一個開源電子原型
    的頭像 發(fā)表于 11-19 15:45 ?2100次閱讀

    如何使用Arduino實現(xiàn)CAN總線通信

    CAN總線(Controller Area Network)是一種多主控制的串行通信協(xié)議,廣泛應(yīng)用于汽車電子、工業(yè)自動化等領(lǐng)域。它以其高可靠性、實時性和靈活性而受到青睞。Arduino作為一個
    的頭像 發(fā)表于 11-12 10:09 ?1559次閱讀

    電極傳感器如何控制水位的

    電極傳感器是一種利用電學(xué)原理來檢測水位的設(shè)備。它通過測量液體與電極之間的電阻或電導(dǎo)率來確定水位的高低。這種傳感器廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、環(huán)境監(jiān)測等領(lǐng)域,用于自動控制水位,以確保系統(tǒng)的穩(wěn)定運(yùn)行和安全
    的頭像 發(fā)表于 09-19 16:46 ?794次閱讀

    Arduino自制點焊機(jī)

    組裝18650電池組,要用到點焊機(jī),本文介紹用Arduino控制點焊機(jī)的點焊時間。
    發(fā)表于 07-29 10:14 ?6次下載

    利用Arduino的自動風(fēng)扇速度控制電路設(shè)計

    自動風(fēng)扇速度控制電路Arduino LM35編程非常容易實驗,可用于根據(jù)溫度水平通過繼電器控制任何目標(biāo)設(shè)備。對于這里的溫度測量,我們使用 LM35,這是一種精密集成電路溫度器件,其輸出電壓與攝氏度
    的頭像 發(fā)表于 06-22 16:39 ?2141次閱讀
    利用<b class='flag-5'>Arduino</b>的自動風(fēng)扇速度<b class='flag-5'>控制</b>電路設(shè)計

    求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫?

    在esp-idf中使用arduino作為組件后怎樣使用arduino的庫,例如我此時需要使用arduino的第三方庫blinker,怎樣使用?
    發(fā)表于 06-12 07:21

    變頻器兩線控制與三線控制有哪些區(qū)別

    變頻器兩線控制與三線控制之間存在顯著的區(qū)別,這些區(qū)別不僅體現(xiàn)在控制原理、使用方式、應(yīng)用場景等方面,還涉及到電氣性能、安全性和可靠性等多個
    的頭像 發(fā)表于 06-11 14:08 ?3670次閱讀

    使用Arduino的溫控風(fēng)扇電路分享

    “使用Arduino的溫控風(fēng)扇”項目只是圍繞Arduinouno板和溫度傳感器LM35制造的。這些項目是使用閉環(huán)反饋控制系統(tǒng)設(shè)計的嵌入系統(tǒng)的一個很好的例子。為了獲得正確的用戶界面視覺指示,我們還使用了LCD,用于指示風(fēng)扇的溫度
    的頭像 發(fā)表于 05-05 15:41 ?2514次閱讀
    使用<b class='flag-5'>Arduino</b>的溫控風(fēng)扇電路分享

    多尺度浸入3D打印策略,用于人體組織和器官的精準(zhǔn)制造

    生物3D打印技術(shù)被認(rèn)為是實現(xiàn)復(fù)雜人體組織和器官構(gòu)建的最有前景的技術(shù)方案之一。近年來,浸入墨水書寫技術(shù)作為生物3D打印的關(guān)鍵技術(shù)分支而備受矚目。
    的頭像 發(fā)表于 04-20 11:43 ?1007次閱讀
    主站蜘蛛池模板: 中国特级毛片 | avtt天堂网永久资源 | 男校霸把男校草玩出水男男 | 狠狠色丁香婷婷第六色孕妇 | 欧美色穴 | 亚洲天堂第一页 | 我要看18毛片 | 成人网久久 | 日韩黄a级成人毛片 | 欧美肥胖女人bbwbbw视频 | 欧美hh| 香蕉视频色版在线观看 | 国产黄色大全 | 91国内在线国内在线播放 | 国产女在线 | 国产在线观看福利 | 亚洲不卡视频在线 | 日本与大黑人xxxx | 欧美高清milf在线播放 | 天堂网在线.www天堂在线资源 | 神马三级我不卡 | 欧美三级不卡在线观线看高清 | 人人射人人爽 | 流不尽奶水的大乳h | 奇米影视777狠狠狠888不卡 | 色狠狠狠色噜噜噜综合网 | www.色黄| 日本一区二区高清免费不卡 | 欧美一区视频 | 大学生一级特黄的免费大片视频 | 亚洲成人www| 久久婷婷综合五月一区二区 | 在线天堂网www资源种子 | 综合久久婷婷 | 性欧美zoz0另类xxxx | 天天爱夜夜| 伊人精品成人久久综合欧美 | 加勒比一到三区 | 五月婷婷激情五月 | 三级理论手机在线观看视频 | 在线黄色免费网站 |