极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 迷你强

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

[复制链接]
发表于 2013-10-23 16:07:50 | 显示全部楼层
为什么不加上delay呢,if(温度>31),delay(1000),再来个if(温度>31)。去抖应该效果不错。
回复 支持 反对

使用道具 举报

发表于 2013-10-23 19:36:03 | 显示全部楼层
建议用一个三色LED 以PWM驱动 可 连续反映温度,显示就不会抖了。
回复 支持 反对

使用道具 举报

发表于 2013-10-28 16:39:19 | 显示全部楼层
修改了一下程序,更精炼了,嘻嘻
  1. void setup() {
  2.   pinMode(13, OUTPUT);
  3.   pinMode(12, OUTPUT);
  4.   pinMode(11, OUTPUT);
  5. }
  6. void loop() {
  7.   int vol = analogRead(A0) * (5.0 / 1023.0*100);   //读取LM35温度值
  8.   int led = vol/32 + vol/42; 当led=1时表示vol处于32和42之间,当led=0时,表示vol小于32,当led=2时,表示vol大于42
  9.   for(int i = 11;i<=13;i++) { digitalWrite(i;LOW); }         //关掉所有的led
  10.   digitalWrite(11+led;HIGH);
  11. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2014-7-27 18:19:55 | 显示全部楼层
AlfredLanning 发表于 2013-10-28 16:39
修改了一下程序,更精炼了,嘻嘻

不错,思路很好,试试
回复 支持 反对

使用道具 举报

发表于 2014-9-1 09:18:07 | 显示全部楼层
AlfredLanning 发表于 2013-10-28 16:39
修改了一下程序,更精炼了,嘻嘻

这种简化方法真是值得学习啊!!
回复 支持 反对

使用道具 举报

发表于 2014-10-10 21:29:49 | 显示全部楼层
虽然简单,但一联系实物,确实有点实用性!
回复 支持 反对

使用道具 举报

发表于 2014-11-21 15:09:40 | 显示全部楼层
迷你强 发表于 2012-8-16 22:13
我一般只会给出最简单的代码,期待大家来放出自己的代码,共同完善。。。。

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

使用道具 举报

发表于 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
lm35温度传感器刚开始极性接反了,手摸上去被烫了一下,重新按正确方法接好后,按上面的程序一直是11口灯亮 ...
  1. void setup()
  2. {
  3.   for(int i=11;i<=13;i++)
  4.   {
  5.     pinMode(i,OUTPUT);
  6.   }
  7.   Serial.begin(9600);
  8. }
  9. void loop()
  10. {
  11.   int n=analogRead(A0);
  12.   float t=n*(5.0/1023.0*100);
  13.   if (t<=20.0)
  14.   {
  15.     digitalWrite(11,HIGH);
  16.     digitalWrite(12,LOW);
  17.     digitalWrite(13,LOW);
  18.   }
  19.   else if (t>20.0&& t<=24.0)
  20.   {
  21.     digitalWrite(11,LOW);
  22.     digitalWrite(12,HIGH);
  23.     digitalWrite(13,LOW);
  24.   }
  25.   else
  26.   {
  27.     digitalWrite(11,LOW);
  28.     digitalWrite(12,LOW);
  29.     digitalWrite(13,HIGH);
  30.   }
  31.   Serial.println(t);
  32.   delay(1000);
  33. }
复制代码
解决了,通过COM口监测传感器没有坏。室内温度在22°-24°之间,通过COM口监测,同时通过哈热气,温度马上上升到24°,立马13口灯就亮了。
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2015-3-9 09:18:32 | 显示全部楼层
发现,温度传感器的灵敏度比较低,杯子放上去大概要一段时间才能从冷到温到热,杯子拿开以后,温度传感器好像是被水加热了,然后慢慢的冷却下来,应该是传感器的问题,有解吗
回复 支持 反对

使用道具 举报

发表于 2015-4-21 21:42:31 | 显示全部楼层
int vol = analogRead(A0) * (5.0 / 1023.0*100);  请问*100是什么意思呢?谢谢
回复 支持 反对

使用道具 举报

发表于 2015-6-30 22:06:01 | 显示全部楼层
龍之令 发表于 2015-1-18 12:03
解决了,通过COM口监测传感器没有坏。室内温度在22°-24°之间,通过COM口监测,同时通过哈热气,温度马上 ...

请问你是怎么解决的呢?我跟你是同样的问题
回复 支持 反对

使用道具 举报

发表于 2015-6-30 23:15:19 | 显示全部楼层
本帖最后由 crazypomelo 于 2015-6-30 23:48 编辑

通过查询串口数据,发现无论A0是否输入,串口都有数据无规律地输出,不明白为什么
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-4 04:53 , Processed in 0.049660 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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