迷你强 发表于 2012-8-15 11:42:29

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

   现在有一款非常漂亮的杯子,能够感应出杯中液体的温度,显示不同的颜色,提醒用户注意高温,非常人性化,非常创意的一种产品



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


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




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





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

void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
int vol = analogRead(A0) * (5.0 / 1023.0*100);             //读取LM35温度值
if (vol<=31)                                             //低温区的温度值设置、以及led显示
{
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
}
else if (vol>=32 && vol<=40)                              //中温区温度范围设置&&为“与”的意思,具体请查阅wiki
{
   digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
}
else if (vol>=41)                                           //高温区温度设置
{
   digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
}

}视频如下

http://player.youku.com/player.php/sid/XNDM5MzE2MjE2/v.swf

plantpark 发表于 2012-8-16 21:25:27

建议楼主增加若干代码避免两个灯变化时的反复闪烁的问题,此外,LED渐变效果会好些

Randy 发表于 2012-8-16 08:47:00

电路虽然很简单,但是创意不错,支持强子!{:soso_e100:}

pww999 发表于 2012-8-16 09:14:15

将led改成小发热丝,放在杯底,这样效果应该不错

迷你强 发表于 2012-8-16 22:13:39

plantpark 发表于 2012-8-16 21:25 static/image/common/back.gif
建议楼主增加若干代码避免两个灯变化时的反复闪烁的问题,此外,LED渐变效果会好些

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

┏ωǒ┛菰独 发表于 2012-8-22 23:01:43

plantpark 发表于 2012-8-16 21:25 static/image/common/back.gif
建议楼主增加若干代码避免两个灯变化时的反复闪烁的问题,此外,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 static/image/common/back.gif
说实话这个电路图我弄了半天也没弄好

怎么了。。。。

maybachwang 发表于 2012-12-5 15:44:41

创意不错~~~

玄冰之神 发表于 2013-4-15 15:01:38

:dizzy:学习思想。。。

白瑞德船长 发表于 2013-4-24 11:38:39

只会写一些简单代码,屏蔽什么忽闪之类的还没学会。

chaoser 发表于 2013-8-10 18:46:03

先帮楼主精简一下代码:
/* 程序功能:依据温度提示水温 */

void setup() { for (int i=11; i<=13; i++) pinMode(i,OUTPUT); }
void loop() {
int vol=analogRead(A0)*(5.0/1023.0*100);   //读取LM35温度值
digitalWrite(13,(vol<=28));                //低温区温度设置
digitalWrite(12,(vol>28 && vol<31));       //中温区温度设置
digitalWrite(11,(vol>=31));                //高温区温度设置
}

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

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

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

yaoyonghe 发表于 2013-8-10 21:40:21

不错...建议做成托盘,,,

机智的小学生 发表于 2013-10-22 10:35:32

这个很简单!
页: [1] 2 3
查看完整版本: Arduino入门教程--第十五课--Arduino制作感温杯电路