Garfield 发表于 2013-10-23 16:07:50

为什么不加上delay呢,if(温度>31),delay(1000),再来个if(温度>31)。去抖应该效果不错。

chilljenny 发表于 2013-10-23 19:36:03

建议用一个三色LED 以PWM驱动 可 连续反映温度,显示就不会抖了。

AlfredLanning 发表于 2013-10-28 16:39:19

修改了一下程序,更精炼了,嘻嘻void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
int vol = analogRead(A0) * (5.0 / 1023.0*100);   //读取LM35温度值
int led = vol/32 + vol/42; 当led=1时表示vol处于32和42之间,当led=0时,表示vol小于32,当led=2时,表示vol大于42
for(int i = 11;i<=13;i++) { digitalWrite(i;LOW); }         //关掉所有的led
digitalWrite(11+led;HIGH);
}

mr_zhou 发表于 2014-7-27 18:19:55

AlfredLanning 发表于 2013-10-28 16:39 static/image/common/back.gif
修改了一下程序,更精炼了,嘻嘻

不错,思路很好,试试

沧海一粟 发表于 2014-9-1 09:18:07

AlfredLanning 发表于 2013-10-28 16:39 static/image/common/back.gif
修改了一下程序,更精炼了,嘻嘻

这种简化方法真是值得学习啊!!:loveliness:

Black7 发表于 2014-10-10 21:29:49

虽然简单,但一联系实物,确实有点实用性!

fuhaijin2018 发表于 2014-11-21 15:09:40

迷你强 发表于 2012-8-16 22:13 static/image/common/back.gif
我一般只会给出最简单的代码,期待大家来放出自己的代码,共同完善。。。。

为什么我的那个灯有点问题啊,就是绿灯根本不亮,我这里室温20,加热了也不亮,但是把红灯的正负极变了就后,绿灯和红灯常亮了

Empty_bottle 发表于 2014-11-28 16:06:48

这个里面怎么不把电阻让3个LED共用呢?

龍之令 发表于 2015-1-18 11:50:46

lm35温度传感器刚开始极性接反了,手摸上去被烫了一下,重新按正确方法接好后,按上面的程序一直是11口灯亮,其它没反应,是不是温度传感器坏了???

龍之令 发表于 2015-1-18 12:03:41

龍之令 发表于 2015-1-18 11:50 static/image/common/back.gif
lm35温度传感器刚开始极性接反了,手摸上去被烫了一下,重新按正确方法接好后,按上面的程序一直是11口灯亮 ...

void setup()
{
for(int i=11;i<=13;i++)
{
    pinMode(i,OUTPUT);
}
Serial.begin(9600);
}
void loop()
{
int n=analogRead(A0);
float t=n*(5.0/1023.0*100);
if (t<=20.0)
{
    digitalWrite(11,HIGH);
    digitalWrite(12,LOW);
    digitalWrite(13,LOW);
}
else if (t>20.0&& t<=24.0)
{
    digitalWrite(11,LOW);
    digitalWrite(12,HIGH);
    digitalWrite(13,LOW);
}
else
{
    digitalWrite(11,LOW);
    digitalWrite(12,LOW);
    digitalWrite(13,HIGH);
}
Serial.println(t);
delay(1000);
}解决了,通过COM口监测传感器没有坏。室内温度在22°-24°之间,通过COM口监测,同时通过哈热气,温度马上上升到24°,立马13口灯就亮了。

zhiqiu 发表于 2015-2-1 15:20:58

chaoser 发表于 2013-8-10 18:46 static/image/common/back.gif
先帮楼主精简一下代码:
/* 程序功能:依据温度提示水温 */



digitalWrite(13,(vol<=28));   这个命令没看懂,能不能解释一下啊?为啥在digitalWrite()中(vol<=28)也可以加条件语句?

iam郎 发表于 2015-3-9 09:18:32

发现,温度传感器的灵敏度比较低,杯子放上去大概要一段时间才能从冷到温到热,杯子拿开以后,温度传感器好像是被水加热了,然后慢慢的冷却下来,应该是传感器的问题,有解吗

竹子 发表于 2015-4-21 21:42:31

int vol = analogRead(A0) * (5.0 / 1023.0*100);请问*100是什么意思呢?谢谢

crazypomelo 发表于 2015-6-30 22:06:01

龍之令 发表于 2015-1-18 12:03 static/image/common/back.gif
解决了,通过COM口监测传感器没有坏。室内温度在22°-24°之间,通过COM口监测,同时通过哈热气,温度马上 ...

请问你是怎么解决的呢?我跟你是同样的问题

crazypomelo 发表于 2015-6-30 23:15:19

本帖最后由 crazypomelo 于 2015-6-30 23:48 编辑

通过查询串口数据,发现无论A0是否输入,串口都有数据无规律地输出,不明白为什么
页: 1 [2] 3
查看完整版本: Arduino入门教程--第十五课--Arduino制作感温杯电路