怎样使用lm35和C语言监控温度,如何使用LM35温度传感器和Arduino来测量温度

步骤1:电子产品

9f749214066ef8bccec63f89b0d3d5f6.png

29bcaa6883ed5e081b646ce27e4fd6e7.png

5d6109e28fbc98d7fba4df22e508a7fe.png

9fd6d20dabd522dc26bd489a045641eb.png

对于此项目,您需要:

1 LM35温度传感器

1串行LCD 16X2

1面包板

一些跳线。

步骤2:连接LCD,LM35和Arduino UNO

db09d8aab814ded29353d69e70c83c21.png

8206f2915047b47115c6dc5e17badcaa.png

f7c88b8ad96b7ad97afdcb5f0fe6f5a3.png

我将使用的LCD是带有I2C的串行LCD。

连接LCD

VCC连接在面包板上的+ ve红色导轨上

GND连接到-ve面包板上的蓝色导轨

SDA连接到Arduino上的SDA

SCL连接到Arduino上的SCL

有关如何操作的更多详细信息连接它,请访问我之前的指示文章:

https://www.instructables.com/id/How-to-connect-as 。..

连接LM35

VCC连接在面包板上的+ ve红色导轨上

GND连接到面包板上的-ve蓝色导轨上

中间引脚连接到PIN A0( Arduino上的模拟0)

*记住正确连接VCC和GND,否则LM35会加热到300度甚至更高。

我对LM35以及如何在

https://www.instructables.com/id/How-to-display-tem 。..

上连接它,现在我们可以准备草图了。 。..。..。.

步骤3:草绘

bdf6a66497c9a5819a7bf80e44c28bc7.png

d60ceb0b81f8ff80ff29bd14e2e99e10.png

草绘不是复制和粘贴两个草图一样简单,我必须对其进行修改以适应两个设备并告诉Arduino从传感器获取数据并将其显示在LCD上。但是变量和库保持不变。

此指令中有一个压缩的草图副本,您可以根据需要进行调整。

我首先定义了库需要液晶显示器。有关如何在Arduino库文件夹中加载库的更多详细信息,请遵循以下说明中的说明:

https://www.instructables.com/id/How-to-connect-as 。..

//加载库

#include

#include

#include

我定义了LCD和LM35所需的变量

我添加了tempf变量,以帮助显示华氏温度

//LCD

#define I2C_ADDR 0x27//定义PCF8574A所在的I2C地址

#define BACKLIGHT_PIN 3

#define En_pin 2

#define Rw_pin 1

#define Rs_pin 0

#define D4_pin 4

#define D5_pin 5

#define D6_pin 6

#define D7_pin 7

//为LM35温度传感器定义变量

浮点温度;//定义临时浮动变量

float tempf;//定义华氏浮点变量

int sensor = 0;//传感器中间引脚在模拟引脚0上

然后我使用以下行初始化LCD:

//初始化LCD

LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin ,D4_pin,D5_pin,D6_pin,D7_pin);

在Void设置中,我告诉Arduinio我正在使用16X2 LCD,打开背光灯并打印一些不会改变的行。

void setup(){

lcd.begin(16,2);//将LCD定义为2列16列

//打开背光

lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);

lcd.setBacklight(HIGH);

lcd.setCursor(0,0);//转到第一列(第0列)和第一行(第0行)

lcd.print(“ Temp C =”);//在光标位置打印

lcd.setCursor(0,1);//转到第一列(第0列)和第二行(第1行)

lcd.print(“ Temp F =”);//在光标位置打印

}

在Void循环中,我将从传感器读取温度,将其更改为摄氏温度并将其显示在第一行,然后再次更改到华氏度并显示在第二行。每5秒重复一次该过程

void loop(){

temp = AnalogRead(sensor);//将模拟输出分配给temp

temp = temp * 0.48828125;//将电压转换为摄氏度----- 0.48828125 = [(5V * 1000)/1024] 10 tempf =(temp * 1.8)+32;//从摄氏温度转换为温度

lcd.setCursor(8,0);//将光标移动到第1行的位置

lcd.print(temp);//以摄氏度为单位打印温度

lcd.setCursor(8,1);//将光标移动到第2行的位置

lcd.print(tempf);//以华氏度打印温度

delay(5000);//等待5秒钟

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部