如何使用土壤湿度传感器

本文将演示在Arduino上如何使用土壤湿度传感器。该传感器常用于一些花园自动浇灌系统或自动灌溉系统等小型项目中。

土壤湿度传感器
土壤湿度传感器

土壤湿度传感器

土壤湿度传感器测量的是土壤中电导率变化的敏感性(土壤的电阻随着土壤水分的减少而增加)。 传感器就是通过测量土壤的电阻实现对土壤水分的监控,该电阻如何进行测量呢?请看下图,传感器就是通过测量下图两个电极之间的电阻来实现的。

传感器的两个电极
传感器的两个电极

在实际运用中,当电阻值超过可调阈值时,比较器就激活传感器的数字输出,从而实现湿度测量。

电路连接

土壤传感器电路连接图
土壤传感器电路连接图

一、Arduino 与 比较器的连接

Arduino 3V –> 比较器 VCC

Arduino GND –> 比较器 GND

Arduino A0 –> 比较器 A0

二、比较器与传感器连接

比较器 + –> 传感器 +

比较器 –> 传感器

三、Arduino 与 LED 连接

D13 –> LED +

GND –> LED –

测量实现代码

在开始编写代码时,我定义了三个变量:

int sensorPin = A0; 

——第一个变量定义了Arduino的模拟引脚 。

int sensorValue;

——第二个变量定义了Arduino读取的传感器的模拟值 。

int limit = 300; 

第三个变量定义了一个阈值(如果sensorValue大于这个阈值时,那么LED就会点亮。)

void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}

然后,设置串口波特率(9600)来初始化串口监视器,设定输出引脚到Arduino的第13号引脚,也就是LED脚,并完成初始化。

void loop() {  
sensorValue = analogRead(sensorPin); 

将sensorValue定义为Arduino读取的值。

Serial.println("Analog Value : ");
Serial.println(sensorValue);

在串口监视器上显示sensorValue值。

if (sensorValue<limit) {
digitalWrite(13, HIGH); 
}
else {
digitalWrite(13, LOW);
 }
delay(1000); 
}

这部分代码用于当传感器检测到的值小于设置的阈值时,点亮LED。否则,LED灯熄灭。

完整代码如下:

int sensorPin = A0; 
int sensorValue;  
int limit = 300; 

void setup() {
 Serial.begin(9600);
 pinMode(13, OUTPUT);
}

void loop() {

 sensorValue = analogRead(sensorPin); 
 Serial.println("Analog Value : ");
 Serial.println(sensorValue);
 
 if (sensorValue<limit) {
 digitalWrite(13, HIGH); 
 }
 else {
 digitalWrite(13, LOW); 
 }
 
 delay(1000); 
}

标签: