要在模擬模式下連接傳感器,我們需要使用傳感器的模擬輸出。從土壤濕度傳感器FC-28獲取模擬輸出時(shí),傳感器給出的值為0-1023。水分以百分比形式測(cè)量,因此我們將從0到100映射這些值,然后我們將在串行監(jiān)視器上顯示這些值。您可以進(jìn)一步設(shè)置不同的水分值范圍,并根據(jù)它打開或關(guān)閉水泵。電路圖將土壤濕度傳感器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);
}
這是一個(gè)100%正在運(yùn)行的代碼人員在Arduino IDE中復(fù)制并粘貼它并查看土壤濕度值A(chǔ)rduino中的串行監(jiān)視器。
請(qǐng)檢查此傳感器的查看視頻以了解有關(guān)如何執(zhí)行此項(xiàng)目的更多信息
步驟3:解釋代碼
首先,我們定義了兩個(gè)變量;一個(gè)用于土壤濕度傳感器引腳,另一個(gè)用于存儲(chǔ)傳感器的輸出。
int sensor_pin = A0; //模擬PIN A0上的土壤傳感器輸入
int output_value; //在設(shè)置功能中,“Serial.begin(9600)”命令將有助于Arduino和串行監(jiān)視器之間的通信。然后,我們將在串行監(jiān)視器上打印“從傳感器讀取。..”。
void setup(){
Serial.begin (9600);
Serial.println(“從傳感器讀取。..。..”);
延遲(2000);
}
在循環(huán)功能中,我們將從傳感器模擬引腳讀取并將值存儲(chǔ)在“output_ value”變量中。然后,我們將輸出值映射到0-100,因?yàn)樗质且园俜直葋砗饬康摹.?dāng)我們從干燥的土壤中讀取讀數(shù)時(shí),傳感器值為550,而在潮濕的土壤中,傳感器值為10.因此,我們繪制了這些值以獲得水分。之后,我們?cè)诖斜O(jiān)視器上打印這些值。
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步:數(shù)字模式 - 連接Arduino和土壤濕度傳感器
要在數(shù)字模式下連接土壤濕度傳感器FC-28,我們將傳感器的數(shù)字輸出連接到Arduino的數(shù)字引腳。傳感器模塊包含一個(gè)帶電位計(jì)的電位器,用于設(shè)置閾值。然后使用放置在傳感器模塊上的LM393比較器將該閾值與傳感器輸出值進(jìn)行比較。 LM393比較器將比較傳感器輸出值和閾值,然后通過數(shù)字引腳提供輸出。當(dāng)傳感器值大于閾值時(shí),數(shù)字引腳將給出5V并且傳感器上的LED將亮起,當(dāng)傳感器值小于此閾值時(shí),數(shù)字引腳將給出0V光會(huì)降下來電路圖
在數(shù)字模式下將土壤濕度傳感器FC-28連接到Arduino的連接如下:
Arduino的FC-28到5V的VCC
FC-28的GND到Arduino的GND
FC-28的D0到Arduino的12腳
LED正向Arduino的引腳13
Arduino的GND負(fù)極
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);
}
}
代碼說明首先,我們初始化了兩個(gè)用于連接LED引腳和傳感器數(shù)字引腳的變量。
int led_pin = 13;
int sensor_pin = 8;
在設(shè)置功能中,我們已將LED引腳聲明為輸出引腳,因?yàn)?我們將通過該引腳為LED供電。然后,我們將傳感器引腳聲明為輸入引腳,因?yàn)锳rduino將通過該引腳獲取傳感器的值。
void setup(){
pinMode(led_pin,OUTPUT);
pinMode(sensor_pin,INPUT);
}
在循環(huán)功能中,我們從傳感器引腳讀取。如果傳感器的輸出值高于閾值,則數(shù)字引腳將為高電平,LED將亮起。如果傳感器值低于閾值,則LED將熄滅。
void loop(){
if(digitalRead(sensor_pin)== HIGH){
digitalWrite(led_pin,HIGH);
} else {
digitalWrite(led_pin,LOW);
延遲(1000);
}
}
-
濕度傳感器
+關(guān)注
關(guān)注
7文章
308瀏覽量
58587 -
Arduino
+關(guān)注
關(guān)注
188文章
6474瀏覽量
187435
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論