Black7 发表于 2014-10-10 16:15:39

这个用起来确实简单多了,程序几行就搞定了,18b20相对就复杂许多了。

Black7 发表于 2014-10-10 21:10:14

好东西,相当基础,适合初学者,顶!!!!

151 发表于 2014-10-30 22:01:52

void setup()
{
Serial.begin(9600);

}
void loop ()
{
int n=analogRead(A0);
float vol=n*(5.0/1023.0*100);
Serial.println (vol);
delay(2000);
}
为什么我的测出来感觉数据是随机的······最先以为把线连反了,但是一次是400至500,反过来就是20左右(现在温度绝对没20度!!),还出现很多0.00或者个位数,感觉是乱码,求解

z200125584726 发表于 2014-11-25 17:16:52

我的一直是500   

a517002789 发表于 2014-11-26 10:28:27

现在正需要这个简单的温度计:lol

Empty_bottle 发表于 2014-11-27 23:09:23

Alierce 发表于 2014-6-25 17:00 static/image/common/back.gif
为什么 float vol = n*(5.0/1023.0*100); 当中5要写为5.0?1023要写为1023.0?我试过如果把0去掉就只能显示 ...

查了下,arduino官方对float的解释是If doing math with floats, you need to add a decimal point, otherwise it will be treated as an int. See the Floating point constants page for details.
如果用float运算,需要把所有的数都改成浮点进行运算,不然就会被当成int运算。如果你把1023.0的0去掉了,就是两个int运算。n*5/1023的值是个小于1的小数,arduino会直接把它当成0处理,所以结果现实的也就是0了。
和C语言的规则不太一样。

Empty_bottle 发表于 2014-11-27 23:14:53

ardiunoaihaozhe 发表于 2014-7-18 13:24 static/image/common/back.gif
请问能不能显示千分位

把Serial.println(vol)的函数改成Serial.println(vol,3)就能显示千分位了。
但感觉没有意义啊,这个传感器的参数表里写了,精度是0.5℃,显示得再精细,实际也不准确啊。。。

yhtsiren 发表于 2014-12-21 21:27:47

我收到的是aosong的DHT11,测量范围是0-50度,但是 2号引脚输出的一直都是1023, 所以就会一直是最大的数,大多数出现500的估计都是这个问题
求解

yhtsiren 发表于 2014-12-21 21:40:35

DHT11 貌似数字输出 这个例子没法玩

suoma 发表于 2014-12-21 21:44:35

lionelg 发表于 2012-6-27 16:21 static/image/common/back.gif
范例用热敏电阻是不是更简单点儿

差不多,热门电阻编程中要有公式转换,lm35直接通过AD转换输出

qq7221742 发表于 2015-1-26 13:56:25

fish6823 发表于 2014-2-17 23:49 static/image/common/back.gif
因为模拟口输出的数值是0-1023,板子的基准电压是5V,所以5/1023*1000就可以算出模拟口的数值1=4.88759mV ...

你好   那如果按照你这样算n=1023时   vol=500℃了   可是明明应该是100℃啊

fish6823 发表于 2015-1-27 18:22:53

qq7221742 发表于 2015-1-26 13:56 static/image/common/back.gif
你好   那如果按照你这样算n=1023时   vol=500℃了   可是明明应该是100℃啊

您忘记要除以5了,所以1023对应的是100℃。

qq7221742 发表于 2015-2-2 12:10:42

fish6823 发表于 2015-1-27 18:22 static/image/common/back.gif
您忘记要除以5了,所以1023对应的是100℃。

所以完整公式就是:vol=n*5.0/1023.0*1000/10   可是您给的公式中n=1023,vol就=500啊   
后来我的理解是n无法达到1023   最高值是使vol=100的值    不知道这样理解对不对

fish6823 发表于 2015-2-2 17:22:23

qq7221742 发表于 2015-2-2 12:10 static/image/common/back.gif
所以完整公式就是:vol=n*5.0/1023.0*1000/10   可是您给的公式中n=1023,vol就=500啊   
后来我的理解是 ...

哦确实应该是,因为每10mV为1度的话,1000mV也就是1V就到100度了。

莫拉莫拉 发表于 2015-3-29 14:43:11

这个仿真用的什么软件??、
页: 1 2 3 4 5 6 [7] 8
查看完整版本: Arduino入门教程--第十课--用Arduino做简单温度计