0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用LED和Arduino制作智能马克杯

454398 来源:工程师吴畏 2019-08-05 11:33 次阅读

关于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 (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);

}

以下代码行属于颜色计算,这取决于你的杯子。如果你的杯子没有足够快地传递热量,你应该改变它以达到预期的效果。

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
    led
    +关注

    关注

    237

    文章

    22444

    浏览量

    645840
  • DS18B20
    +关注

    关注

    10

    文章

    765

    浏览量

    80084
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184809
收藏 人收藏

    评论

    相关推荐

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

    在这个项目中,我将向您展示如何使用Arduino制作智能垃圾箱,当您带着垃圾接近时,垃圾箱的盖子会自动打开。
    的头像 发表于 02-11 12:22 1084次阅读
    如何使用<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矩阵,可以照亮您
    的头像 发表于 02-11 12:07 1299次阅读
    使用<b class='flag-5'>Arduino</b> Nano<b class='flag-5'>制作</b>一个4×4×4 <b class='flag-5'>LED</b>立方体

    Arduino制作循迹小车教程

    Arduino制作循迹小车完全教程
    发表于 01-05 11:09 2次下载

    无线通信:怎样用电磁波表示1和0

    为什么频率越高,能携带的信息就越多?以数字信号为例,信息就是一串串的1和0,所以先搞清楚怎样用电磁波表示1和0。
    发表于 12-05 14:44 613次阅读
    无线通信:<b class='flag-5'>怎样用</b>电磁波表示1和0

    怎样用ADAU1761设计DRC的压缩/扩展?

    请问怎样用ADAU1761设计DRC的压缩/扩展。我在SigmaStudio 4.5的模块中只找到RMS。如果ADAU1761设计DRC要怎样
    发表于 11-28 06:41

    怎样用32单片机测电压?

    怎样用32单片机测电压
    发表于 10-31 07:09

    怎样用现成的Eclipse插件来调试AT32系列芯片以及SLIB的配置范例

    本篇应用指南主要描述怎样用现成的Eclipse插件来调试AT32系列芯片以及SLIB的配置范例。本文档仅以AT32F403A为例进行说明,关于AT32F403A SLIB的详细说明,请详阅《AT32F403ASecurity Library Application Note》。
    发表于 10-24 07:41

    怎样用现成的Eclipse插件来调试AT32系列芯片

    拥有很高的灵活性,软件可以以Eclipse为架构开发自己的IDE。这边文档主要描述怎样用现成的Eclipse插件来调试AT32系列芯片。
    发表于 10-24 07:12

    怎样用单片机IO口来控制三极管的开关特性使共阳极的LED点亮?

    怎样用单片机IO口来控制三极管的开关特性使共阳极的LED点亮
    发表于 10-15 06:02

    PLC中怎样用X和Y两个轴走出直线轨迹?

    PLC中怎样用X和Y两个轴走出直线轨迹呢?那么这两个轴需要配合成速度成线性比例,位置和速度应该如何云运算呢?
    发表于 09-12 09:58 364次阅读
    PLC中<b class='flag-5'>怎样用</b>X和Y两个轴走出直线轨迹?

    如何使用Arduino Uno和三个LED制作简单的电子蜡烛?

    在本文中,工程师展示了如何使用Arduino Uno开发板和三个LED制作简单的电子蜡烛,你可以根据需要增加LED的数量。
    的头像 发表于 07-11 09:49 1096次阅读
    如何使用<b class='flag-5'>Arduino</b> Uno和三个<b class='flag-5'>LED</b><b class='flag-5'>制作</b>简单的电子蜡烛?

    怎样用示波器测试lin总线的波特率呢?

    怎样用示波器测试lin总线的波特率呢?有什么方法吗?
    发表于 05-09 11:22

    怎样用FPGA实现FSK调制解调呢?

    最近想做这方面的,怎样用FPGA实现FSK调制解调?但是我一点头绪都没有,哪位高手帮帮忙,讲解一下什么的
    发表于 05-08 17:34

    请问Proteus仿真软件中怎样用探针测电压呢?

    请问Proteus仿真软件中怎样用探针测电压呢?
    发表于 04-26 15:55

    怎样用74LS00实现两位数据输入的奇偶校验电路?

    怎样用74LS00实现两位数据输入的奇偶校验电路?
    发表于 04-26 11:25