1 / 8
文档名称:

13,数字温度计.doc

格式:doc   大小:58KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

13,数字温度计.doc

上传人:260933426 2022/5/17 文件大小:58 KB

下载得到文件列表

13,数字温度计.doc

文档介绍

文档介绍:实验十三 数字温度计
●引言
温度计是我们家居生活中经常会用到的仪器。下面我们利用一个LM35温度传感器做一个数字温度计。
●实验目的

(g, OUTPUT);
pinMode(dp, OUTPUT);
pinMode(11, OUTPUT);//蜂鸣器输出,温度报警备用
digitalWrite(11, LOW);//蜂鸣器关闭
(9600);//设置模拟口的采样频率
}
void loop()//运行程序
{
//float tempval= (* analogRead(tempPin))*1000/1024;//将温度传感器获得的电压模拟量放入变量
//从模拟口A0输入温度传感器LM35的温度转换电压,0C:0V,+1C:+10mV
//float tempval=analogRead(tempPin)* ;//5V电压,是理想的电源电压
float tempval=analogRead(tempPin)* ;//4v7,是电脑USB口输出的实测电压
//float tempval=analogRead(tempPin)* ;//4v1,3节5号电池电压
// float tempval=map(10*analogRead(tempPin),0,460,0,220);//数值区间影射函数,把一个区间的数值,线性地影射到另一个区间;这里把模拟输出采集的数值0-300(应该是0-200左右),影射到0C-100C,因为有一位小数,故乘以10
if (m%30==0) n=int(tempval); //,也可消除数码管闪烁的语句
/*数码管闪烁的原因是因为采样速率高达9600,所以温度数值变化很快,而数据处理产生近似数不是连续的,导致显示数值经常闪烁,影响判读。
如果用延时方法,则数码管的最右边数字特别亮,其他数字亮度很低,所以采用自设的计时器“m”,用求余数除法,过30个计时单位才采集一次显示温度数值,有效地消除了闪烁现象,并且不影响程序的正常运行
*/
if (n>260) digitalWrite(11, HIGH);//>26C,buzzer报警
if (n<=260) digitalWrite(11, LOW);//<=26C,buzzer停止
//以下显示温度的数值,
clearLEDs();//100度
delay(del);
lightSegments(n/1000%10);//取余数除法
//如果到100度,这位数码管点亮
pickDigit((n/1000%10>0));//如果不到100度,则这位数码管熄灭
delay(del);
clearLEDs();
pickDigit(2);
lightSegments(n/100%10);//10度
delay(del+2);//延时增加50%,以增加这个数码管的亮度
clearLEDs()