要在模拟模式下连接传感器,我们需要使用传感器的模拟输出。从土壤湿度传感器FC-28获取模拟输出时,传感器给出的值为0-1023。水分以百分比形式测量,因此我们将从0到100映射这些值,然后我们将在串行监视器上显示这些值。您可以进一步设置不同的水分值范围,并根据它打开或关闭水泵。电路图将土壤湿度传感器FC-28连接到Arduino的连接如下。
FC-28到5V Arduino的VCC
FC-28的GND到Arduino的GND
FC-28的A0到Arduino的A0
第2步:Arduino代码
int output_value ;
void setup()
{
Serial.begin(9600);
Serial.println(“Reading From the Sensor 。..”);
delay(2000);
}
void loop()
{
output_value= analogRead(sensor_pin);
output_value = map(output_value,550,0,0,100);
Serial.print(“Mositure : ”);
Serial.print(output_value);
Serial.println(“%”);
delay(1000);
}
这是一个100%正在运行的代码人员在Arduino IDE中复制并粘贴它并查看土壤湿度值Arduino中的串行监视器。
步骤3:解释代码
首先,我们定义了两个变量;一个用于土壤湿度传感器引脚,另一个用于存储传感器的输出。
int sensor_pin = A0; //模拟PIN A0上的土壤传感器输入
int output_value; //在设置功能中,“Serial.begin(9600)”命令将有助于Arduino和串行监视器之间的通信。然后,我们将在串行监视器上打印“从传感器读取。..”。
void setup(){
Serial.begin (9600);
Serial.println(“从传感器读取。..。..”);
延迟(2000);
}
在循环功能中,我们将从传感器模拟引脚读取并将值存储在“output_ value”变量中。然后,我们将输出值映射到0-100,因为水分是以百分比来衡量的。当我们从干燥的土壤中读取读数时,传感器值为550,而在潮湿的土壤中,传感器值为10.因此,我们绘制了这些值以获得水分。之后,我们在串行监视器上打印这些值。
void loop(){
output_value = analogRead(sensor_pin);
output_value = map(output_value,550,10,0,100);
Serial.print(“Mositure:”);
Serial.print(output_value);
Serial.println(“%”);
延迟(1000);
}
第4步:数字模式 - 连接Arduino和土壤湿度传感器
要在数字模式下连接土壤湿度传感器FC-28,我们将传感器的数字输出连接到Arduino的数字引脚。传感器模块包含一个带电位计的电位器,用于设置阈值。然后使用放置在传感器模块上的LM393比较器将该阈值与传感器输出值进行比较。 LM393比较器将比较传感器输出值和阈值,然后通过数字引脚提供输出。当传感器值大于阈值时,数字引脚将给出5V并且传感器上的LED将亮起,当传感器值小于此阈值时,数字引脚将给出0V光会降下来电路图
在数字模式下将土壤湿度传感器FC-28连接到Arduino的连接如下:
Arduino的FC-28到5V的VCC
FC-28的GND到Arduino的GND
FC-28的D0到Arduino的12脚
LED正向Arduino的引脚13
Arduino的GND负极
int led_pin = 13; int sensor_pin = 8;
void setup(){
pinMode(led_pin,OUTPUT);
pinMode(sensor_pin,INPUT);
}
void loop(){
if(digitalRead(sensor_pin)== HIGH){
digitalWrite(led_pin,HIGH);
} else {
digitalWrite(led_pin,LOW);
延迟(1000);
}
}
代码说明首先,我们初始化了两个用于连接LED引脚和传感器数字引脚的变量。
int led_pin = 13;
int sensor_pin = 8;
在设置功能中,我们已将LED引脚声明为输出引脚,因为;我们将通过该引脚为LED供电。然后,我们将传感器引脚声明为输入引脚,因为Arduino将通过该引脚获取传感器的值。
void setup(){
pinMode(led_pin,OUTPUT);
pinMode(sensor_pin,INPUT);
}
在循环功能中,我们从传感器引脚读取。如果传感器的输出值高于阈值,则数字引脚将为高电平,LED将亮起。如果传感器值低于阈值,则LED将熄灭。
void loop(){
if(digitalRead(sensor_pin)== HIGH){
digitalWrite(led_pin,HIGH);
} else {
digitalWrite(led_pin,LOW);
延迟(1000);
}
}
-
湿度传感器
+关注
关注
7文章
308浏览量
58542 -
Arduino
+关注
关注
188文章
6469浏览量
187012
发布评论请先 登录
相关推荐
评论