极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 92596|回复: 34

Arduino入门教程--第十五课--Arduino制作感温杯电路

[复制链接]
发表于 2012-8-15 11:42:29 | 显示全部楼层 |阅读模式
   现在有一款非常漂亮的杯子,能够感应出杯中液体的温度,显示不同的颜色,提醒用户注意高温,非常人性化,非常创意的一种产品



原件列表
arduino控制器           1个
面包板                      1块
面包板专用跳线盒    1盒
红黄蓝LED                各1枚
220Ω电阻                 3枚
lm35温度传感器        1个
USB数据线                 1根


我们今天就要用arduino制作一个这个杯子的电路,我们先来设计好电路,通过lm35温度传感器感应温度后,让不同颜色的led显示表示其温度




基于原理图我们搭建出了实物图





程序如下
  1. /*
  2. 作者:极客工坊-迷你强
  3. 时间:2012年8月15日
  4. IDE版本号:1.0.1
  5. 发布地址:[url]www.geek-workshop.com[/url]
  6. 作用:依据温度显示水杯制作同等功能的电路程序
  7. */

  8. void setup() {
  9.   pinMode(13, OUTPUT);
  10.   pinMode(12, OUTPUT);
  11.   pinMode(11, OUTPUT);
  12. }
  13. void loop() {
  14.   int vol = analogRead(A0) * (5.0 / 1023.0*100);             //读取LM35温度值
  15. if (vol<=31)                                               //低温区的温度值设置、以及led显示
  16. {
  17.   digitalWrite(13, HIGH);
  18.   digitalWrite(12, LOW);
  19.   digitalWrite(11, LOW);
  20. }
  21. else if (vol>=32 && vol<=40)                              //中温区温度范围设置  &&为“与”的意思,具体请查阅wiki
  22. {
  23.    digitalWrite(13, LOW);
  24.   digitalWrite(12, HIGH);
  25.   digitalWrite(11, LOW);
  26. }
  27. else if (vol>=41)                                           //高温区温度设置
  28. {
  29.    digitalWrite(13, LOW);
  30.   digitalWrite(12, LOW);
  31.   digitalWrite(11, HIGH);
  32. }

  33. }
复制代码
视频如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-8-16 21:25:27 | 显示全部楼层
建议楼主增加若干代码避免两个灯变化时的反复闪烁的问题,此外,LED渐变效果会好些
回复 支持 2 反对 0

使用道具 举报

发表于 2012-8-16 08:47:00 | 显示全部楼层
电路虽然很简单,但是创意不错,支持强子!{:soso_e100:}
回复 支持 反对

使用道具 举报

发表于 2012-8-16 09:14:15 | 显示全部楼层
将led改成小发热丝,放在杯底,这样效果应该不错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-16 22:13:39 | 显示全部楼层
plantpark 发表于 2012-8-16 21:25
建议楼主增加若干代码避免两个灯变化时的反复闪烁的问题,此外,LED渐变效果会好些

我一般只会给出最简单的代码,期待大家来放出自己的代码,共同完善。。。。
回复 支持 反对

使用道具 举报

发表于 2012-8-22 23:01:43 | 显示全部楼层
plantpark 发表于 2012-8-16 21:25
建议楼主增加若干代码避免两个灯变化时的反复闪烁的问题,此外,LED渐变效果会好些

渐变可用pwm做出呼吸灯效果  曾经用m430做过  很简单
回复 支持 反对

使用道具 举报

发表于 2012-10-20 09:48:00 | 显示全部楼层
检测温度的是个温度传感器吧。
回复 支持 反对

使用道具 举报

发表于 2012-10-28 11:59:06 | 显示全部楼层
说实话这个电路图我弄了半天也没弄好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-28 14:06:04 | 显示全部楼层
南方之南 发表于 2012-10-28 11:59
说实话这个电路图我弄了半天也没弄好

怎么了。。。。
回复 支持 反对

使用道具 举报

发表于 2012-12-5 15:44:41 | 显示全部楼层
创意不错~~~
回复 支持 反对

使用道具 举报

发表于 2013-4-15 15:01:38 | 显示全部楼层
学习思想。。。
回复 支持 反对

使用道具 举报

发表于 2013-4-24 11:38:39 | 显示全部楼层
只会写一些简单代码,屏蔽什么忽闪之类的还没学会。
回复 支持 反对

使用道具 举报

发表于 2013-8-10 18:46:03 | 显示全部楼层
先帮楼主精简一下代码:
  1. /* 程序功能:依据温度提示水温 */

  2. void setup() { for (int i=11; i<=13; i++) pinMode(i,OUTPUT); }
  3. void loop() {
  4.   int vol=analogRead(A0)*(5.0/1023.0*100);   //读取LM35温度值
  5.   digitalWrite(13,(vol<=28));                //低温区温度设置
  6.   digitalWrite(12,(vol>28 && vol<31));       //中温区温度设置
  7.   digitalWrite(11,(vol>=31));                //高温区温度设置
  8. }
复制代码

由于担心水溅到可爱的板子上,所以用手指捏LM35来代替了~~~

发觉灯并非是很干脆地从一盏跳到下一盏的,而是哆哆嗦嗦地渐灭、另一盏哆哆嗦嗦地渐亮的。

分析原因,应该不是灯的亮度随着温度在渐变,而是处于阈值位置时,两盏灯快速切换地在点亮,由于速度太快而无法完全亮起。
回复 支持 反对

使用道具 举报

发表于 2013-8-10 21:40:21 | 显示全部楼层
不错...建议做成托盘,,,
回复 支持 反对

使用道具 举报

发表于 2013-10-22 10:35:32 | 显示全部楼层
这个很简单!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 22:31 , Processed in 0.053446 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表