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

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

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

怎樣用LED和Arduino制作智能馬克杯

454398 ? 來源:工程師吳畏 ? 2019-08-05 11:33 ? 次閱讀

關(guān)于DS18B20的簡短說明

DS18B20數(shù)字溫度計提供9位到12位位攝氏溫度測量并具有報警功能,具有非易失性用戶可編程的上下觸發(fā)點。 DS18B20通過1-Wire總線進行通信,根據(jù)定義,它只需要一條數(shù)據(jù)線(和地)與中央微處理器進行通信。此外,DS18B20可以直接從數(shù)據(jù)線獲得電源(“寄生電源”),從而消除了需要外部電源。每個DS18B20都有一個獨特的64位串行代碼,允許多個DS18B20在同一條1-Wire總線上運行。因此,使用一個微處理器控制分布在大面積上的幾個DS18B20很簡單??梢詮拇斯δ苤惺芤娴膽?yīng)用包括HVAC環(huán)境控制,建筑物內(nèi)部的溫度監(jiān)控系統(tǒng),設(shè)備或機器,以及過程監(jiān)控和控制系統(tǒng)。

關(guān)于將技術(shù)與生活相結(jié)合,使用彩色燈光令人驚嘆且極具吸引力用顯示器代替RGB LED發(fā)送信息或報警可以使項目更美觀,也更簡單。在這個項目中,我們想讓杯子變得聰明,這樣你就可以向你展示咖啡或軟飲料的溫度并報警它已經(jīng)準備好了。作為熱電堆,我們將使用DS18B20并將其粘在杯子的底部。它可以將數(shù)字數(shù)據(jù)中的杯子中的液體溫度發(fā)送到控制器Arduino Nano因其小巧的尺寸和板載迷你USB連接器而成為我們的控制器選擇。因此,它可以編程,電池可以通過USB端口充電。為了顯示溫度,我們使用2個簡單的4針RGB LED,并將它們連接到Arduino Nano中的獨立PWM單元?,F(xiàn)在,我們只需要一個電池,一個杯子和一個塑料外殼來放入組件。讓我們這樣做。

必需材料

此項目中使用的所有組件均可通過提供的鏈接購買。

電路

電池尺寸取決于LED和電池尺寸。 500mAh電池是一個不錯的選擇。您可以使用聚合物或離子電池。這里使用的LED具有共同的陰極。如果您有共同的陽極,則必須對代碼進行少量更改。如果您的LED在沒有電阻器的情況下無法工作,您有兩種方法。添加電阻或添加更多LED。您應(yīng)該將DS18b20的電壓和數(shù)據(jù)引腳連接到4.7K歐姆電阻。雖然可能沒有必要。

代碼

您應(yīng)該在Arduino IDE中復(fù)制以下代碼。但首先您必須添加庫然后上傳代碼。從附件下載“One Wire”和“Dallas”庫。如果這是您第一次運行Arduino板,請不要擔(dān)心。只需按照以下步驟操作:

訪問www.arduino.cc/en/Main/Software下載您的操作系統(tǒng)軟件。按照說明安裝IDE軟件。

運行Arduino IDE并清除文本編輯器并在文本編輯器中復(fù)制以下代碼。

導(dǎo)航到草圖并包含庫(從以下鏈接下載庫)。現(xiàn)在單擊添加ZIP庫并添加庫

選擇工具和板中的板,選擇Arduino Nano。

將Arduino連接到PC并設(shè)置工具和端口中的COM端口。

按上傳(箭頭標(biāo)志)按鈕。

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

// First we include the libraries

#include “OneWire.h”

#include “DallasTemperature.h”

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

// Data wire is plugged into pin 2 on the Arduino

#define ONE_WIRE_BUS 2

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

// Setup a oneWire instance to communicate with any OneWire devices

// (not just Maxim/Dallas temperature ICs)

OneWire oneWire(ONE_WIRE_BUS);

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

// Pass our oneWire reference to Dallas Temperature.

DallasTemperature sensors(&oneWire);

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

float temp;

void setup(void)

{

// start serial port

Serial.begin(9600);

Serial.println(“Dallas Temperature IC Control Library Demo”);

// Start up the library

sensors.begin();

}

void loop(void)

{

// call sensors.requestTemperatures() to issue a global temperature

// request to all devices on the bus

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

Serial.print(“ Requesting temperatures.。.”);

sensors.requestTemperatures(); // Send the command to get temperature readings

Serial.println(“DONE”);

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

Serial.print(“Temperature is: ”);

Serial.print(sensors.getTempCByIndex(0));temp= sensors.getTempCByIndex(0); Serial.print(“ ”); Serial.println(temp);// Why “byIndex”?

// You can have more than one DS18B20 on the same bus.

// 0 refers to the first IC on the wire

if (analogRead(A0)》100)

{ if (temp》50)

temp=100;

if (temp《30) temp=0; temp=(12.5)*(temp-30); Serial.println(temp); if (temp》255)

temp=255;

if (temp《0)

temp=0;

analogWrite(6,temp);

analogWrite(9,temp);

analogWrite(3,255-temp);

analogWrite(11,255-temp);}

else

{analogWrite(6,0);

analogWrite(9,0);

analogWrite(3,0);

analogWrite(11,0);}

delay(100);

}

以下代碼行屬于顏色計算,這取決于你的杯子。如果你的杯子沒有足夠快地傳遞熱量,你應(yīng)該改變它以達到預(yù)期的效果。

if (temp》50)

temp=100;

if (temp《30)

temp=0;

temp=(12.5)*(temp-30);

組裝

最初,您必須鉆一下杯子的底部。孔的數(shù)量取決于電路以及如何實現(xiàn)它。我們考慮過這個項目的3個洞。一個用于溫度計,兩個用于連接螺絲(電極)和杯子內(nèi)的液體。你可以在不刺穿馬克杯的情況下完成這個項目。將溫度計滴在馬克杯的底部,將電極的2根線連接到開/關(guān)開關(guān)。安裝溫度計和電極并密封后,是時候為馬克杯的底部做一個框架了。使用膠水密封玻璃,這將不會被熱水或冷水解決。要制作杯子底部的外殼。你必須首先測量杯子的外徑。然后設(shè)計一個與杯子底部尺寸完全相同的圓圈,以及兩個外徑為3毫米的環(huán)(當(dāng)然還有杯子底部的直徑)。你可以使用有機玻璃和一個激光切割機制作規(guī)定的外殼。其中一個戒指必須是透明的,你可以根據(jù)自己的意愿選擇其他戒指的顏色。你應(yīng)該打磨透明戒指,以達到啞光效果。如圖所示粘貼它們。現(xiàn)在將電池粘到外殼上并將其引腳連接到Arduino。將透明環(huán)的一部分切割為與Arduino micro USB端口一樣多,并將Arduino連接到電池,使連接器從環(huán)中掉出?,F(xiàn)在將LED焊接到Arduino并將其他電線連接到Arduino。最后,將shell粘貼到馬克杯的底部,然后將代碼上傳到Arduino。

下一步是什么?

現(xiàn)在,通過在代碼中添加新功能來改進智能手機。例如,當(dāng)咖啡達到所需溫度并且可以飲用時,您可以添加一些線來警告您。您可以點亮綠色LED以進行報警。在下一步中,您可以在杯子的底部添加一個加熱器元件并寫下一些代碼來停止降低飲料的溫度。

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

    關(guān)注

    240

    文章

    23062

    瀏覽量

    657051
  • DS18B20
    +關(guān)注

    關(guān)注

    10

    文章

    777

    瀏覽量

    80638
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6457

    瀏覽量

    186501
收藏 人收藏

    評論

    相關(guān)推薦

    怎樣用THS3201實現(xiàn)輸出功率可調(diào)?

    怎樣用THS3201實現(xiàn)輸出功率可調(diào)?
    發(fā)表于 08-26 08:28

    OPA735加OPA333,怎樣用TINA TI去仿真?

    當(dāng)輸入信號VG1從7.06V慢慢變化到7.22V時。 輸出電壓Vout的變化必須是接近線性變化的。我想知道我該怎樣用TINA TI去仿真?怎樣設(shè)置那個輸入信號VG1才能達到我的目的。因為這個電壓源好像
    發(fā)表于 08-02 08:39

    怎樣用Arduino測試鋰電池容量

    本文詳細介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼。
    的頭像 發(fā)表于 07-30 09:14 ?662次閱讀
    <b class='flag-5'>怎樣用</b><b class='flag-5'>Arduino</b>測試鋰電池容量

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

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

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?
    發(fā)表于 05-07 06:55

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現(xiàn)在想用將PB1映射為TIM1_CH3N,在調(diào)用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時, GPIO_PinAFConfig和GPIO_AF_TIM1都沒定義,stm32f100
    發(fā)表于 05-07 06:06

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼?

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼? SD卡例程能跑,但mx生成的代碼不能正常運行,我生成代碼后是不是還要配置一些東西?(我生成后只寫了測試代碼) 問題解決了,雖然我不知道我為什么不能直接使用mx生成的代碼去操作sd卡,但我通過復(fù)制粘貼例程的代碼完成了測試。
    發(fā)表于 03-12 08:15

    如何使用Arduino制作智能垃圾箱

    在這個項目中,我將向您展示如何使用Arduino制作智能垃圾箱,當(dāng)您帶著垃圾接近時,垃圾箱的蓋子會自動打開。
    的頭像 發(fā)表于 02-11 12:22 ?2779次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b><b class='flag-5'>智能</b>垃圾箱

    使用Arduino Nano制作一個4×4×4 LED立方體

    在這個項目中,我們將使用 Arduino Nano 制作一個很酷的 4×4×4 LED立方體。LED 立方體,也稱為 LED矩陣,可以照亮您
    的頭像 發(fā)表于 02-11 12:07 ?2985次閱讀
    使用<b class='flag-5'>Arduino</b> Nano<b class='flag-5'>制作</b>一個4×4×4 <b class='flag-5'>LED</b>立方體

    如何使用Arduino控制RGB LED

    在本指南中,您將學(xué)習(xí)如何使用Arduino控制RGB LED。RGB(紅-綠-藍)LED可以通過混合不同強度的紅、綠、藍光來產(chǎn)生多種顏色。您將學(xué)習(xí)創(chuàng)建一個基本Arduino RGB
    的頭像 發(fā)表于 02-11 10:28 ?4402次閱讀
    如何使用<b class='flag-5'>Arduino</b>控制RGB <b class='flag-5'>LED</b>

    Arduino制作循跡小車教程

    Arduino制作循跡小車完全教程
    發(fā)表于 01-05 11:09 ?4次下載

    怎樣用表來判斷加熱管的好壞?

    怎樣用表來判斷加熱管的好壞? 萬表是電工常用的測量儀器,它可以用來判斷加熱管的好壞。加熱管是一種常見的加熱元件,廣泛應(yīng)用于家電、機械設(shè)備和工業(yè)生產(chǎn)中。在選擇和使用加熱管時,我們需要了解其電阻值
    的頭像 發(fā)表于 12-20 17:21 ?4759次閱讀

    無線通信:怎樣用電磁波表示1和0

    為什么頻率越高,能攜帶的信息就越多?以數(shù)字信號為例,信息就是一串串的1和0,所以先搞清楚怎樣用電磁波表示1和0。
    發(fā)表于 12-05 14:44 ?1698次閱讀
    無線通信:<b class='flag-5'>怎樣用</b>電磁波表示1和0

    ADAU1452做FFT分析,怎樣設(shè)定取樣點的數(shù)量?

    請問,我想用ADAU1452做FFT分析,怎樣設(shè)定取樣點的數(shù)量,還有就是怎樣用單片機讀出分析得到的復(fù)數(shù)結(jié)果數(shù)組?謝謝!
    發(fā)表于 11-29 06:42

    怎樣用ADAU1761設(shè)計DRC的壓縮/擴展?

    請問怎樣用ADAU1761設(shè)計DRC的壓縮/擴展。我在SigmaStudio 4.5的模塊中只找到RMS。如果ADAU1761設(shè)計DRC要怎樣
    發(fā)表于 11-28 06:41