使用arduino和LM35的数字温度计。

本文是关于一个简单的三位数字温度计,使用Arduino。该温度计的范围为0°C至99.9°C。还有一种以°F刻度显示温度的规定。三个终端模拟温度传感器LM35在此用作传感器。LM35可以测量-55°C至+ 155°C之间的温度。电源电压范围为4V至30V DC,电流漏极为60UA。LM35可提供至92个包装,非常易于使用。Arduino的输出电压为每°C的温度增加10mV。这意味着如果25°C是温度,则传感器的输出电压将为250mV。使用Arduino和LM35的数字温度计的电路图如下图所示。

线路图。

数字温度计使用Arduino

温度传感器LM35通过模拟输入引脚连接到arduino。arduino的A0引脚为LM35的供电电压源,arduino的A2引脚为地。Arduino通过模拟输入引脚A1读取LM35的电压输出。数字引脚4用于连接°C/°F选择开关到arduino。数字驱动晶体管Q1、Q2、Q3分别与arduino的数字引脚1、2、3接口。多路线段a到dp分别接口到arduino的数字引脚5到12。电阻R9, R10和R11限制了相应晶体管的基极电流。电阻R1到R8限制电流通过相应的分段。

程序。

INT I;int备份;㈡int单位;int价值;int vcc = a0;int sensor = a1;int gnd = a2;int选择= 4;int disp1 = 1; int disp2=2; int disp3=3; int segA=5; int segB=6; int segC=7; int segD=8; int segE=9; int segF=10; int segG=11; int segDP=12; void setup() { pinMode(disp1, OUTPUT); pinMode(disp2, OUTPUT); pinMode(disp3, OUTPUT); pinMode(segA, OUTPUT); pinMode(segB, OUTPUT); pinMode(segC, OUTPUT); pinMode(segD, OUTPUT); pinMode(segE, OUTPUT); pinMode(segF, OUTPUT); pinMode(segG, OUTPUT); pinMode(segDP, OUTPUT); pinMode(sensor, INPUT); pinMode(vcc, OUTPUT); pinMode(gnd, OUTPUT); pinMode(select, INPUT); digitalWrite(vcc, HIGH); digitalWrite(gnd, LOW); } void loop() { value=analogRead(sensor); //Reads the sensor LM35 value=value*5; unit=digitalRead(select); //Reads the selector switch if(unit==1) {value=value;} // Output in celcius else {value=(value*1.8)+320;} //Output in Fahrenheit backup=value; //Backs up the content in variable value for(i=0;i<100;i++) //Loops the display loop 100 times(steadies the display) {value=backup; a=value%10; digitalWrite(disp1,LOW); digitalWrite(disp2,LOW); digitalWrite(disp3, HIGH); digitalWrite(segDP,HIGH); display(a); delay(4); value = value/10; a = value%10; digitalWrite(disp3,LOW); digitalWrite(disp2,HIGH); digitalWrite(segDP,LOW); display(a); delay(4); value=value/10; a=value; digitalWrite(disp2,LOW); digitalWrite(disp1,HIGH); digitalWrite(segDP,HIGH); display(a); delay(4); } } int display (int a) { switch (a) { case 0: digitalWrite(segA, LOW); digitalWrite(segB, LOW); digitalWrite(segC, LOW); digitalWrite(segD, LOW); digitalWrite(segE, LOW); digitalWrite(segF, LOW); digitalWrite(segG, HIGH); break; case 1: digitalWrite(segA, HIGH); digitalWrite(segB, LOW); digitalWrite(segC, LOW); digitalWrite(segD, HIGH); digitalWrite(segE, HIGH); digitalWrite(segF, HIGH); digitalWrite(segG, HIGH); break; case 2: digitalWrite(segA, LOW); digitalWrite(segB, LOW); digitalWrite(segC, HIGH); digitalWrite(segD, LOW); digitalWrite(segE, LOW); digitalWrite(segF, HIGH); digitalWrite(segG, LOW); break; case 3: digitalWrite(segA, LOW); digitalWrite(segB, LOW); digitalWrite(segC, LOW); digitalWrite(segD, LOW); digitalWrite(segE, HIGH); digitalWrite(segF, HIGH); digitalWrite(segG, LOW); break; case 4: digitalWrite(segA, HIGH); digitalWrite(segB, LOW); digitalWrite(segC, LOW); digitalWrite(segD, HIGH); digitalWrite(segE, HIGH); digitalWrite(segF, LOW); digitalWrite(segG, LOW); break; case 5: digitalWrite(segA, LOW); digitalWrite(segB, HIGH); digitalWrite(segC, LOW); digitalWrite(segD, LOW); digitalWrite(segE, HIGH); digitalWrite(segF, LOW); digitalWrite(segG, LOW); break; case 6: digitalWrite(segA, LOW); digitalWrite(segB, HIGH); digitalWrite(segC, LOW); digitalWrite(segD, LOW); digitalWrite(segE, LOW); digitalWrite(segF, LOW); digitalWrite(segG, LOW); break; case 7: digitalWrite(segA, LOW); digitalWrite(segB, LOW); digitalWrite(segC, LOW); digitalWrite(segD, HIGH); digitalWrite(segE, HIGH); digitalWrite(segF, HIGH); digitalWrite(segG, HIGH); break; case 8: digitalWrite(segA, LOW); digitalWrite(segB, LOW); digitalWrite(segC, LOW); digitalWrite(segD, LOW); digitalWrite(segE, LOW); digitalWrite(segF, LOW); digitalWrite(segG, LOW); break; case 9: digitalWrite(segA, LOW); digitalWrite(segB, LOW); digitalWrite(segC, LOW); digitalWrite(segD, LOW); digitalWrite(segE, HIGH); digitalWrite(segF, LOW); digitalWrite(segG, LOW); break; }}

关于该计划。

使用analogRead功能扫描LM35的电压输出。analogRead功能将读取特定模拟输入引脚上的电压,并将其转换为介于0和1023之间的数字值。如果温度为30°C,LM35输出将为300mV。代码值=数字读取(传感器)将读取该电压,将其转换为数字值,并将其存储在变量“value”中。因此,对于30°C,存储在变量“value”中的数字将为3oomV/(5/1023)=61。该数字乘以5得到305。在七段显示器上显示时,小数点位于最后一位之前。结果为30.5℃。

该程序还通过读取数字针脚4来检查装置选择器开关的状态。如果该引脚保持在高位,则以摄氏度显示温度;如果该引脚处于低位,则以摄氏度为单位的温度标度转换为华氏度,然后显示。用于在三位七段显示器上显示数字的方法与中使用的方法相同使用arduino的电压表

作者

9评论

  1. 尼尔

    请问这个电路里有滤波器吗?如果是,我在哪里可以找到示波器的过滤信号?提前谢谢

  2. 瓦利德

    如何从笔记本电脑给+5v和+9v ?

    • 乔乔

      @Waleed–您可以从笔记本电脑USB端口获得+5V电压。然而,你无法从笔记本电脑上获得9V电压。为此,您必须连接外部电源。

  3. LEKSHMANAN。N

    先生,我需要使用微控制器,GSM RFID基于电路或试剂盒的PIO医疗区域的一些项目,如果电路或试剂盒可以发送其主题和UR TEM和PURCSHNG IT的条件
    谢谢你

  4. 错话

    这个项目是否可以修改为当温度达到高于某一点的标准时打开一个电器,如冷却器。当温度再次达到25时,关掉它,当温度降至25以下时,打开另一个器具,如加热器?我特别指的是水温水温是用温度探头测量的?电路图和软件会是什么样子?
    Thanx提前

  5. 拉朱

    在哪个程序中组装此代码。我们不能用8051或其他微控制器代替arduino吗。。请回答。。

    • Seetharaman

      这是一个arduino应用程序的系列。你也可以使用其他类型的硬件。

  6. 亚许帕蒂尔

    arduino uno在孟买的价格是多少??

    • Seetharaman

      大约2000卢比/来自Amazon.in

Baidu