【项目4-任务4-小组09】用模拟温度传感器LM35实现温度测量

1.如何通过http://www.alldatasheetcn.com/网站检索LM35的datasheet(说明书)

2.如何对照datasheet来分辨LM35的引脚和了解工作原理

(1)引脚

底面视图



基本摄氏温度传感器(+2℃至+150℃)



全范围摄氏温度传感器

(2)工作原理

        温度传感器电路将测量到的温度信号转换成电压信号输出到信号放大电路,与温度值对应的电压信号经放大后输出至A/D转换电路,把电压信号转换成数字量送给单片机系统,单片机系统根据显示需要对数字量进行处理,再送温度显示系统进行显示。

        内部结构中有V15和V16是感温元件,这两个三极管的物理结构有着特定的要求,V15的发射结面积是V16发射结面积的10倍。它们的集电极负载电阻完全一致,如果流过这两个电阻的电流不同,V15和V16的集电极电压也不同,通过差分放大器放大,内阻也变化,那么流过R的电流也会变化,V+和V-之间的电压亦会改变,这个电压的变化量也就是随温度而变化的。

3.用万用表测量LM35电压输出引脚的电压并手动换算温度(不接Arduino的情况下,用万用表测量LM35输出引脚的电压并手动换算温度,改变LM35所处环境的温度,观察电压的变化)


不连电阻的情况下进行测量

换算公式公式:V_{out LM35}(T)= 10mV/℃×T℃

(1)

0.28*1000/10=28℃

(2)

0.21*1000/10=21℃

(3)

0.02*1000/10=2℃

4.实现温度测量(Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码,map函数的用法)

(1)Fritzing绘制的电路图

(2)工作原理的说明


(3)注释源代码

int LM35 = A0; //指定A0端口读取LM35

float Vin; //存储传感器电压

float temperature; //存储温度测量结果

void setup()

{

Serial.begin(9600); //初始化串口连接

}

void loop()

{

Vin = analogRead(LM35) * 5.0 / 1024; //计算出A0的电压,单位为V

temperature = Vin * 1000.0 / 10.0; //将A0电压要转换成mV,根据LM35转换系数10mV/°C,除以10,得出温度

Serial.print("Temperature: "); //在串口监视器输出结果

Serial.print(temperature);

Serial.println(" *C");

delay(500); //延时0.5s

}

(4)map函数的用法

map(value, fromLow,fromHigh,toLow,toHigh)

value: 给map的值

fromLow: 值现在的下界

fromHigh: 值现在的上界

toLow: 值目标范围的下界

toHigh: 值目标范围的上界

把一个数从一个范围变换到另一个范围

不会把值强制限制在范围之内,因为超范围的值经常也是有用的。如果需要的范围做一限制。可以在这个函数之前或之后使用constrain()函数。

•注意,两个范围中的“下界”要比“上界”大或下,这样map()可以用来反转一个范围,例如y = map(x, 1, 50, 50, 1);

•函数也可以处理负数,例如y = map(x, 1, 50, 50, -100);

map()函数使用整型,所以不会产生分数,分数将会被截去,并不是全面的或平均值

•Example

void setup() {}

void loop()

{

int val = analogRead(0);     //读取0口的值

val =map(val, 0,1023, 0, 255);    //从0-1023映射到0-255

analogWrite(9, val);      //把映射后的值写给9口

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本篇介绍Arduino模拟输入功能,通过读取电位器输入的电压值来控制LED灯的亮度。另外补充通过纯软件编程的方式再...
    0122杜晓燕阅读 5,302评论 0 2
  • 选择题部分 1.(),只有在发生短路事故时或者在负荷电流较大时,变流器中才会有足够的二次电流作为继电保护跳闸之用。...
    skystarwuwei阅读 13,455评论 0 7
  • Arduino Due有14个数字I/O,6个模拟I/O,一个复位开关,一个ICSP下载口,7-12v电源供电。 ...
    麦牛2013阅读 3,390评论 0 8
  • 神说,要有光,于是便有了光,于是她回眸,于是他转身,于是他看到了她。 谁是谁前世的风?谁是谁今世的尘...
    水仙已乘鲤阅读 380评论 0 4
  • 对父母来说,看着孩子沉浸在睡梦中,是一件再幸福不过的事情,尤其是当孩子发出呼噜声时,父母往往会忍不住的笑道:“小家...
    身高管理师阅读 144评论 0 0