步驟1:免責聲明和法律條款
1。該項目涉及使用線電壓(120-240v)。此外,用于容納控制器的外殼不是水密的,必須注意確保其不會被弄濕。此外,還有用于加熱水箱中水的裸露加熱元件。我要說的是存在潛在的電擊或嚴重燒傷風險。如果您不能承擔此風險,請不要構建此項目。
2。未煮熟的食物可能會嚴重危害健康。確定合適的食物烹飪溫度時,請查閱食譜和食物標簽。
警告:
1。除非將加熱元件浸入水中,否則切勿操作炊具。
2。除非將潛水泵浸入水中,否則切勿操作炊具。
3。請務必小心,以確保水或其他液體永遠不要進入控制箱。
4。切勿將您的手浸入熱水中。
5。
第2步:零件清單
1。 1 – Arduino Uno 29.00美元
2。 1 – LM35溫度傳感器$ 0.99
3。 1 – SainSmart LCD/鍵盤保護罩$ 9.95
4。 1 – SainSmart 2通道固態繼電器$ 7.95
6。 1個項目盒子(6“ x4”)5.99美元
7。 2 –2KΩ電阻$ 2.38
8。 2 –200Ω電阻$ 2.38
9。 20規格連接線(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溫度傳感器,一些電阻器和電線。該傳感器需要電路來提供適當的信號。該電路在附圖中有詳細說明:
首先測量將用于傳感器的連接線。傳感器將位于浸入式炊具的地板上,與加熱元件相反。我這樣做是為了確保獲得所有水的溫度讀數,而不僅僅是加熱元件周圍的水。您需要三根足夠長的導線以橫穿浴缸的地板和墻壁,再加上三英尺長才能到達控制箱。我使用了不同的電線顏色,因為您將擁有一根地線,5伏特和感應線。
首先將連接到傳感器+ VS端子的擴展信號焊接在一起。接下來,將200Ω電阻器焊接到中央(Vout)端子。然后將一個2KΩ電阻焊接到傳感器的Gnd端子。我的本地RadioShack?沒有200?或2K?電阻,所以我使用了220?和2.2K?電阻。接下來,我將電阻器的松散端絞在一起。然后,我拿了一個220a和2.2Ka電阻,將兩端的兩端都捻在一起,基本上如上圖8所示將它們并聯。添加一條信號線,并將并聯電阻的一端扭絞到從LM35傳感器出來的電阻的扭絞端上。在該連接處涂焊料。最后,將地線焊接到并聯電阻的其余雙絞端。
下一步,將線束編織起來,這樣您就可以輕松地將電線和傳感器穿過用于將成為炊具底部的水密溫度傳感器通道。
下一步構造水密溫度傳感器通道。首先,使用熱膠槍將尼龍螺絲粘貼到尼龍管中。然后沿著地板的中心和浴缸的側面粘貼管道。
您應該能夠輕松地將溫度傳感器插入上圖所示的水密通道中。修剪浴缸上部邊緣的水密通道。
步驟5:加熱元件子組件
接下來,我們將構造加熱元件。我添加了兩個元素,盡管可以添加其他元素,這將使水更快地達到溫度。加熱元件幾乎可以在任何五金店或廚房供應店購買。它們可浸入水中,通常用于加熱杯子中的水以用于咖啡或茶。每個元件的額定功率為300瓦。使用公式A = W/V,每個電極將消耗大約2安培的電流,這完全在我們固態繼電器(SSR)的10安培額定值之內。值得注意的是,我最初嘗試使用SainSmart 2安培SSR,但是由于要消耗的安培略大于2安培,所以將它們燒壞了。
需要安裝加熱元件,以使其不接觸外殼側面。浴缸并融化。為此,我找到了兩個可以抵消這些元素的硬塑料衣架。我將它們粘合在一起,然后在其上粘合一塊面包板,以提供額外的保護以防熔化。然后,我使用扎線帶將加熱元件固定在其上。如圖所示。
最后,我用我的Dremel工具在浴缸的側脊上切出一個槽,并將倒置的衣架插入槽中以安裝加熱元件。
潛水泵底部應有吸盤,并使用這些吸盤將其簡單地連接到浴缸的側壁。然后,我收集了所有的電線,并使用扎帶將它們捆在一起。
步驟6:控制器子組件(第1部分)
現在,我們將注意力轉向控制器。對于控制器,我選擇了三個主要組件,分別是Arduino Uno控制器,SainSmart LCD/鍵盤護罩和SainSmart 10安培雙固態繼電器(SSR)。首先,在項目框的底部鉆孔,然后將電源端子固定在框上。接下來,從潛水加熱元件和潛水泵的末端切下一定長度的壁塞,以使其能到達坐在浴缸旁邊柜臺上的控制箱。我保留了從插頭到潛水泵的電源,因為它具有最長的長度,但是您可以使用任何可用的電源線來實現此目的。鉆一個足夠大的孔,以使所有電纜進入項目盒的側面,然后將其布線到接線盒。該孔可以用橡膠墊圈密封。如果需要,可以將終端放置在電源插頭,潛水泵上,以及每個潛水加熱元件的一根電線上。將電源線的一根電線連接到每個插排。將一根電纜從潛水泵連接到每個條帶(潛水泵將連續運行,并且不會通過繼電器布線)。可選地,電源插頭中的一根電線可以通過開關進行布線,但是我選擇此版本的電磁爐只是為了簡化操作。最后,將一根導線從每個潛水加熱元件連接到配電盤的一側。使用哪個條帶都沒有關系,但是從每個加熱元件連接的電線應從同一條帶上脫落。請注意,我在項目盒內的電源電纜上打了一個結,以防止其(和其他電纜)從盒內的孔中拉回。
下一步,切短兩段(?6“ ),然后將其連接到固定有潛水加熱元件的相對條上。這些連接如圖所示。
步驟7:控制器子組件(第2部分)
現在讓我們看一下SSR,SSR期望與Arduino板有四個連接,一個+ 5v連接,一個Gnd連接和兩個數字信號連接。我發現最簡單的方法是將這些連接焊接到電路板的底部,因為SSR每個繼電器具有三個螺絲端子,將兩條六英寸的雙絞線剝開并擰入中心端子。如圖所示,再接兩條兩條6英寸的雙絞線,然后將它們擰緊到每個繼電器最左邊的端子中。為了使這些繼電器保持平衡,繼電器將抵靠在項目盒的面板上。
步驟8:控制器子組件(第3部分)
現在,將兩條數字控制線從SSR焊接到SainSmart LCD/鍵盤防護板的數字端口2和3。將三根六英寸的導線分別焊接到SainSmart LCD/鍵盤屏蔽的5v,Gnd和模擬端口1。
步驟9:控制器子組件(第4部分)
插入SainSmart LCD/Keypad屏蔽到Arduino Uno中,確保所有銷釘正確接合。通過USB串行端口將Arduino連接到計算機,然后編譯并將附件代碼下載到設備中。如果您希望設備默認使用攝氏溫度運行,只需在編譯之前將變量“ iTempMode”從“ FARENHEIT”更改為“ CELSIUS”即可。請注意,可以即時在攝氏和攝氏之間進行切換(請參閱步驟10)。
使用SainSmart LCD/鍵盤護罩左上角的小螺釘來調節顯示屏的亮度。有必要的。拔下Arduino,將其關閉。從SainSmart LCD/鍵盤護罩上取下Arduino Uno。
在面板上切開/鉆孔,然后用螺釘將SainSmart LCD/鍵盤護罩和SainSmart SSR護罩固定在面板上。
收集紅色溫度傳感器線,將SainSmart LCD/鍵盤護罩的5v導線與SainSmart SSR的Vss + 5v導線連接在一起并焊接,并用收縮管保護它們。對黑色溫度傳感器導線和兩條Gnd導線執行相同的操作。將綠色導線從溫度傳感器連接到模擬端口1導線。使用擰緊的端子連接器將SSR的一根導線固定到一個加熱元件的一根導線上。對其余的SSR和加熱元件重復此步驟。然后將每個SSR中剩余的導線分別固定到從接線盒中引出的導線上。
將Arduino Uno的插頭插入SainSmart LCD/鍵盤屏蔽層。我決定不使用單獨的9伏電源,而是決定使用從RadioShack?購買的非處方電源。我通過項目框側面的孔將此連接器插入,然后將其插入Arduino Uno。這種布置的缺點是需要兩個壁式插座來運行炊具。優點是您仍可以使用控制器(并檢查包括溫度傳感器的連接),而無需在加熱元件上施加壁式電源。
最后,將面板固定在項目盒上。您可以插入9伏電源,并且應該會看到設備啟動,并讀取默認的設定溫度(130°F)和當前溫度(室溫)。如果您將熱水裝滿浴缸,則溫度會升高。
步驟10:基本操作
要升高或降低設定溫度,請分別使用“向上”和“向下”鍵。調節到所需的溫度后,使用“選擇”鍵設置新的“設置”溫度。 SSR應響應設置溫度相對于當前溫度的變化而發出咔嗒聲。如果您想在攝氏下工作,請使用“左”鍵調出選項菜單。使用“向上”和“向下”鍵在模式之間進行選擇,并使用“選擇”鍵進行選擇。為了將來,我打算添加一個時鐘,時鐘功能也將是通過此方法輸入的子菜單。 “ Rst”鍵將重新啟動設備,而“ Right”鍵目前已被忽略。
我強烈建議在連接120v電源之前,將Arduino/SainSmart電路用于測試驅動器。只需在浴缸中注滿熱水即可。插入Arduino 9v電源。 LCD顯示屏上應顯示“ Booting…”(正在引導…)消息,最后顯示“ Immersion Cooker”和軟件版本號。在引導階段,軟件將實例化溫度讀取陣列,該陣列用于執行信號平滑。幾秒鐘后,應顯示默認設置溫度(130°F)和當前溫度。當傳感器達到真實溫度時,溫度在最初的幾秒鐘內可能會發生很大變化,但應該穩定下來。我在水中使用了模擬烹飪溫度計,以驗證溫度傳感器讀數的正確性。當升高或降低設定溫度時,您應該聽到SSR的喀噠聲。此外,應使用萬用表檢查繼電器的導通性,以確保SSR正常工作。我還將使用萬用表檢查所有120v連接,以確保沒有短路。一旦確定所有電氣連接正確,就可以將120v電路連接到主電源。
步驟11:您的第一頓飯
首先,要使用炊具,必須將食物放在真空密封袋中。在第一頓飯中,我調味了一些蔬菜并用真空密封。接下來,我拿了大約20只大蝦,將它們密封在一個裝有幾包黃油和一些大蒜的袋子中。最后,將兩塊紐約條狀牛排,用少許鹽,胡椒粉,洋蔥粉和大蒜粉調味,并用真空袋密封。
我喜歡我的牛排,這種稀有牛排的溫度約為140°F,因此,那是我設定溫度的地方。蝦將在較低的溫度下烹飪,因此您將在此溫度下過度烹飪。我將它們放在水中的時間不超過30分鐘。同樣,將蔬菜放在水中一小時以上會導致蔬菜煮得過頭。
但是,讓我們談談這頓飯的真正意義;那些多汁的紐約牛排。他們可以在水中靜置數小時,并且永遠不會在此溫度下煮熟。我會讓他們坐至少一個小時,但他們在溫度下停留的時間越長,它們就會變得越嫩。
當您準備好吃飯時,只需將牛排從他們的袋子中拉出即可。將它們放在鍋中,放入一些低芥酸菜籽油中加熱,加熱時間足夠長,足以使它們焦灼。將蝦,蔬菜和牛排放入盤子。如果您愿意的話,可以減少三杯波特酒,一湯匙牛肉條和一些意大利香料,然后用中火將其減少,直到液體涂滿湯匙,從而減少波特酒。
第12步:接線圖
此項目中的電路在附圖中。
》
步驟13:
/************************** **************************************/
/* */
/*標題:電磁爐控制器*/
/*版本:1.0 */
/*版本日期:2012年5月1日*/
/*作者:Edward A Ranzenbach */
/* MCWSM */
/* */
/*說明:*/
/*此草圖在Arduino Uno平臺上運行*/
/*,帶有SainSmart 1602 LCD/鍵盤護板,*/
/* SainSmart實體狀態繼電器設備和LM35 */
/*溫度傳感器。它旨在控制*/
/*兩個普通加熱元件和一個小型*/
/*浸入式炊具中的浸入式泵。 */
/*用戶只需使用*/
/*鍵盤撥入設定溫度,contrioller選通*/
/*加熱元件即可達到并保持設定水*/
/*溫度。 */
/* */
/*未來:添加計時器/時鐘功能*/
/* */
/*歷史記錄:*/
/* */
/* 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;//默認為Farenheit…
int iSetTemp = 130;//iSetTemp是全局的…
int iKeyPressIn = 0; float fTemp [TEMP_COUNT];//全局溫度平滑數組…
int iCurrentIndex = 0;//iCurrentIndex是臨時數組的全局索引…
byte bDegreeSymbol [8] =//°符號的位掩碼…
{
B11100,
B10100,
B11100,
B00000,
B00000,
B00000,
B00000,
B00000
} ;;字節bCheckMarkSymbol [8] =//√符號的位掩碼…
{
B00000,
B00000,
B00000,
B00001,
B00010,
B10100,
B01100,
B01000
} ;;液體液晶lcd(8,9,4, 5、6、7);//使用接口引腳的編號初始化庫
void setup()
{
/*************************** **********************************/
/* */
/*模塊:設置*/
/*版本:1.0 */
/*版本日期:2012年5月1日*/
/*作者:Edward A Ranzenbach */
/*說明:*/
/*初始化LCD顯示屏并顯示啟動*/
/*屏幕。 */
/*在設置過程中,溫度*/
/*平滑陣列初始化為*/
/*讀數。 */
/* */
/*歷史記錄:*/
/* */
/* 2012-05-01-Edward A Ranzenbach */
/*初始編碼*/
/* */
/******************************************* **************/
字符串strLine1;
字符串strLine2;
字符串strElipses =“。”;
lcd.createChar(0,bDegreeSymbol);//創建LCD字符
lcd.createChar(1,bCheckMarkSymbol);
lcd.begin(16,2);//設置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]);//轉換為Farenheit 。..
}
DisplayLCD(“ Booting 。..”,strElipses);
strElipses + =“。”;
delay(100);
}
pinMode(ELEMENT_1,OUTPUT);
pinMode (ELEMENT_2,輸出);
pinMode(LED_PORT,輸出);
strLine1 =“浸入式炊具”;//創建并顯示初始屏幕
strLine2 =“版本:”;
strLine2 + = VERSION_STRING;
DisplayLCD(strLine1,strLine2);
delay(2000);
}
無效循環()
{
/****************************************** ***************/
/* */
/*模塊:循環*/
/*版本:1.0 */
/*版本日期:2012年5月1日*/
/*作者:Edward A Ranzenbach */
/*說明:*/
/*獲取新的SetTemp(如果有)。然后,它調用SetTemp */
/*來選通加熱元件以調整*/
/*溫度。然后顯示溫度信息,延遲一秒*/
/*秒,然后返回。該延遲可防止*/
/*固態繼電器連續打開和關閉*/
/*。 */
/*歷史記錄:*/
/* */
/* 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 */
/*說明:*/
/*讀取鍵盤以查看是否正在對當前設定溫度進行*/
/*調節。默認值為*/
/*,不按下任何鍵。這將從ReadKeypad返回*/
/* btnNone,并導致*/
/*立即返回給調用者。否則,將適當調整*/
/*設定溫度和*/
/*新的調整溫度。 */
/* */
/*此模塊還允許用戶進入*/
/*子菜單,該子菜單中可以執行諸如更改*/
/*操作等操作從華氏溫度到攝氏溫度的模式。 */
/* */
/*如果用戶按下任何鍵進行溫度*/
/*調整,他們必須按下選擇鍵*/
/*進行調整永久并將*/
/*返回給調用方。 */
/*歷史記錄:*/
/* */
/* 2012-05-01-Edward A Ranzenbach */
/*初始編碼*/
/* */點擊/************ *******/
int iKeyIn;
int iNewSetTemp;
int iTempDelta;//增加。減小或選擇。..
char cSetTemp [4];
布爾值bSelected = false;
char cTempMode =‘S’;
iNewSetTemp = iSetTemp;//從當前溫度開始。..
iKeyIn = ReadKeypad();
if(iKeyIn!= btnNONE)//btnNONE =無需執行任何操作,只需返回到調用方…
{
do//直到bSelected…
{
switch(iKeyIn)
{
case btnUP://調高溫度…
iNewSetTemp + = 1;
cTempMode =‘A’;//通知用戶正在進行調整。..
中斷;
案例btnDOWN://向下調整溫度…
iNewSetTemp-= 1;
cTempMode =‘A’;//通知用戶正在進行調整。..
中斷;
案例btnLEFT:
iNewSetTemp = Menu();//選項菜單。..
bSelected = true;//一旦菜單選項完成就退出。..
break;
case btnSELECT://調整完成…
bSelected = true;
break;
默認值://忽略其他鍵。 。.
break;
}
DisplayTemps(iNewSetTemp,GetCurrentTemp(),cTempMode);//顯示每次調整的時間。..
delay(KEY_BOUNCE_DELAY);//平滑按鍵彈跳。..
iKeyIn = ReadKeypad();//內部讀取循環。..
} while(!bSelected);
}
return(iNewSetTemp);
}
void SetTemp(int iSetTemp)
{
/******************* ****/
/* */
/*模塊:SetTemp */
/*版本:1.0 */
/*版本日期:05/01/2012 */
/*作者:Edward A Ranzenbach */
/*說明:*/
/*此模塊將iSetTemp參數與*/
/*當前溫度進行比較。如果*/
/*度的差異大于1,則會根據需要打開或關閉加熱元件*/
/*。 */
/*歷史記錄:*/
/* */
/* 2012-05-01-Edward A Ranzenbach */
/*初始編碼*/
/* */點擊/************ *******/
int iCurrentTemp; iCurrentTemp = GetCurrentTemp();//檢查當前溫度…
if(abs(iSetTemp-iCurrentTemp)》 = 1)//如果溫度變化超過1度
{
if(iCurrentTemp》 iSetTemp)//如果溫度過高,關閉加熱元件
{
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 */
/*說明:*/
/*此模塊從*/
/*傳感器讀取當前溫度并將其存儲到信號平滑*/
/*數組。傳感器的溫度以*/
/*攝氏度為單位,并且根據當前操作模式,我們根據需要將溫度轉換為Farenheit */
/*。然后,用戶*/
/*返回一個表示平滑的*/
/*(即數組中所有溫度的平均值)*/
/*溫度的整數。 */
/*歷史記錄:*/
/* */
/* 2012-05-01-Edward A Ranzenbach */
/*初始編碼*/
/* */點擊/************ *******/
int iReturnTemp = 0; float fCumulativeTemp = 0; float fADCIn;
if((iCurrentIndex)== TEMP_COUNT)//保持在數組范圍內。 。
{
iCurrentIndex = 0;
}
fADCIn = AnalogRead(TEMP_PORT);//從傳感器獲取溫度信號。..
if(iTempMode == CELSIUS)//轉換為攝氏溫度。..
{
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顯示屏上顯示兩行溫度*/
/*。第一個是設定溫度*/
/*,并根據我們是在*/
/*進行調節還是設定溫度進行標記。顯示屏的*/
/*第二行始終為當前*/
/*溫度。 */
/* */
/*如果連續調用此模塊,則*/
/*將閃爍,因此調用方應在*/
/*調用之間延遲。 */
/*歷史記錄:*/
/* */
/* 2012-05-01-Edward A Ranzenbach */
/*初始編碼*/
/* */點擊/************ *******/
字符串strLine1;
字符串strLine2;
if(cTempMode ==‘A’)//調整模式。..
{
strLine1 =“調整:“;
}
else
{
strLine1 =”設置:“;//設置模式。..
}
strLine1 + = iSetTemp;
strLine2 = String(“ Current:”);
strLine2 + = iCurrentTemp;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(strLine1);
lcd.write(byte(0));//度數符號。..
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 */
/*顯示屏上顯示文本行。 */
/*如果連續調用此模塊,則*/
/*將閃爍,因此調用方應在*/
/*調用之間延遲。 */
/*歷史記錄:*/
/* */
/* 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鍵盤。如果用戶*/
/*按下一個鍵,則返回一個值。 */
/*的值可能因設備而異。因此,我們*/
/*通過查看我們是否接近*/
/*讀取值來確定該值。 */
/*歷史記錄:*/
/* */
/* 2012-05-01-Edward A Ranzenbach */
/*初始編碼*/
/* */點擊/************ *******/
int iKeyIn = AnalogRead(KEYBOARD_PORT);
如果(iKeyIn》 1000)//這將是最常見的結果。..
{
return btnNONE;
}
否則(iKeyIn 《50)
{
delay(KEY_BOUNCE_DELAY);//處理按鍵彈跳。..
return btnRIGHT;
}
否則(iKeyIn 《195)
{
delay(KEY_BOUNCE_DELAY);//處理鍵反彈。..
return btnUP;
}
否則(iKeyIn 《380)
{
delay(KEY_BOUNCE_DELAY);到攝氏
責任編輯:wv
-
Arduino
+關注
關注
188文章
6491瀏覽量
190097
發布評論請先 登錄
免費分享Arduino入門+進階(全套例程+書籍)

嵌入式開發入門指南:從零開始學習嵌入式
《ESP32S3 Arduino開發指南》第二章 Arduino基礎知識
STM32、Arduino、樹莓派開發方式差異大嗎
如何使用Arduino實現CAN總線通信呢
Arduino Nano Matter開發板正式上市
HAL庫在Arduino平臺上的使用
基于Arduino的串口通信項目
stm32與Arduino的比較
如何使用Arduino實現CAN總線通信
電極式傳感器如何控制水位的
利用Arduino的自動風扇速度控制電路設計

評論