关于DS18B20的简短说明
DS18B20数字温度计提供9位到12位位摄氏温度测量并具有报警功能,具有非易失性用户可编程的上下触发点。 DS18B20通过1-Wire总线进行通信,根据定义,它只需要一条数据线(和地)与中央微处理器进行通信。此外,DS18B20可以直接从数据线获得电源(“寄生电源”),从而消除了需要外部电源。每个DS18B20都有一个独特的64位串行代码,允许多个DS18B20在同一条1-Wire总线上运行。因此,使用一个微处理器控制分布在大面积上的几个DS18B20很简单。可以从此功能中受益的应用包括HVAC环境控制,建筑物内部的温度监控系统,设备或机器,以及过程监控和控制系统。
关于将技术与生活相结合,使用彩色灯光令人惊叹且极具吸引力用显示器代替RGB LED发送信息或报警可以使项目更美观,也更简单。在这个项目中,我们想让杯子变得聪明,这样你就可以向你展示咖啡或软饮料的温度并报警它已经准备好了。作为热电堆,我们将使用DS18B20并将其粘在杯子的底部。它可以将数字数据中的杯子中的液体温度发送到控制器。 Arduino Nano因其小巧的尺寸和板载迷你USB连接器而成为我们的控制器选择。因此,它可以编程,电池可以通过USB端口充电。为了显示温度,我们使用2个简单的4针RGB LED,并将它们连接到Arduino Nano中的独立PWM单元。现在,我们只需要一个电池,一个杯子和一个塑料外壳来放入组件。让我们这样做。
必需材料
此项目中使用的所有组件均可通过提供的链接购买。
电路
电池尺寸取决于LED和电池尺寸。 500mAh电池是一个不错的选择。您可以使用聚合物或离子电池。这里使用的LED具有共同的阴极。如果您有共同的阳极,则必须对代码进行少量更改。如果您的LED在没有电阻器的情况下无法工作,您有两种方法。添加电阻或添加更多LED。您应该将DS18b20的电压和数据引脚连接到4.7K欧姆电阻。虽然可能没有必要。
代码
您应该在Arduino IDE中复制以下代码。但首先您必须添加库然后上传代码。从附件下载“One Wire”和“Dallas”库。如果这是您第一次运行Arduino板,请不要担心。只需按照以下步骤操作:
访问www.arduino.cc/en/Main/Software下载您的操作系统软件。按照说明安装IDE软件。
运行Arduino IDE并清除文本编辑器并在文本编辑器中复制以下代码。
导航到草图并包含库(从以下链接下载库)。现在单击添加ZIP库并添加库
选择工具和板中的板,选择Arduino Nano。
将Arduino连接到PC并设置工具和端口中的COM端口。
按上传(箭头标志)按钮。
/********************************************************************/
// 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 (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);
}
以下代码行属于颜色计算,这取决于你的杯子。如果你的杯子没有足够快地传递热量,你应该改变它以达到预期的效果。
if (temp》50)
temp=100;
if (temp《30)
temp=0;
temp=(12.5)*(temp-30);
组装
最初,您必须钻一下杯子的底部。孔的数量取决于电路以及如何实现它。我们考虑过这个项目的3个洞。一个用于温度计,两个用于连接螺丝(电极)和杯子内的液体。你可以在不刺穿马克杯的情况下完成这个项目。将温度计滴在马克杯的底部,将电极的2根线连接到开/关开关。安装温度计和电极并密封后,是时候为马克杯的底部做一个框架了。使用胶水密封玻璃,这将不会被热水或冷水解决。要制作杯子底部的外壳。你必须首先测量杯子的外径。然后设计一个与杯子底部尺寸完全相同的圆圈,以及两个外径为3毫米的环(当然还有杯子底部的直径)。你可以使用有机玻璃和一个激光切割机制作规定的外壳。其中一个戒指必须是透明的,你可以根据自己的意愿选择其他戒指的颜色。你应该打磨透明戒指,以达到哑光效果。如图所示粘贴它们。现在将电池粘到外壳上并将其引脚连接到Arduino。将透明环的一部分切割为与Arduino micro USB端口一样多,并将Arduino连接到电池,使连接器从环中掉出。现在将LED焊接到Arduino并将其他电线连接到Arduino。最后,将shell粘贴到马克杯的底部,然后将代码上传到Arduino。
下一步是什么?
现在,通过在代码中添加新功能来改进智能手机。例如,当咖啡达到所需温度并且可以饮用时,您可以添加一些线来警告您。您可以点亮绿色LED以进行报警。在下一步中,您可以在杯子的底部添加一个加热器元件并写下一些代码来停止降低饮料的温度。
-
led
+关注
关注
240文章
23091浏览量
657467 -
DS18B20
+关注
关注
10文章
778浏览量
80651 -
Arduino
+关注
关注
187文章
6461浏览量
186544
发布评论请先 登录
相关推荐
评论