37款傳感器與執(zhí)行器的提法,在網(wǎng)絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里準備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來---小小的進步或是搞不掂的問題,希望能夠拋磚引玉。
【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
實驗七十:電容式土壤濕度傳感器模塊不易腐蝕寬電壓工作(TL555I)
TL555I 6位模數(shù)轉換器 SOP-8 實時時鐘芯片
電容式傳感器
是以各種類型的電容器作為傳感元件,將被測物理量或機械量轉換成為電容量變化的一種轉換裝置,實際上就是一個具有可變參數(shù)的電容器。電容式傳感器廣泛用于位移、角度、振動、速度、壓力、成分分析、介質特性等方面的測量。最常用的是平行板型電容器或圓筒型電容器。典型的電容式傳感器由上下電極、絕緣體和襯底構成。當薄膜受壓力作用時,薄膜會發(fā)生一定的變形,因此,上下電極之間的距離發(fā)生一定的變化,從而使電容發(fā)生變化。但電容式壓力傳感器的電容與上下電極之間的距離的關系是非線性關系,因此,要用具有補償功能的測量電路對輸出電容進行非線性補償。
電容式濕度傳感器
是利用濕敏元件的電容值隨濕度變化的原理進行濕度測量的傳感器。此類濕敏元件實際上是一種吸濕性電解質材料的介電常數(shù)隨濕度而變化的薄片狀電容器,感濕材料為聚酰銨樹脂,酰根纖維素和金屬氧化物如AL2O3等。
國外廠家比較優(yōu)質的濕度傳感器產品主要使用聚酰胺樹脂,產品結構概要為在硼硅玻璃或藍寶石襯底上真空蒸發(fā)制作金電極,再噴鍍感濕介質材料(如前所述)形式平整的感濕膜,再在薄膜上蒸發(fā)上金電極,金的原度控制在70Um 左右,以保證水蒸汽順利通過.濕敏元件的電容值與相對濕度成正比關系,線性度約±2%濕敏電容與相對濕度關系圖。
電極金薄膜和感濕膜為多孔結構薄膜,因此吸濕和脫濕容易,升濕響應小于3S,而脫濕相對慢一些為10-30S。
特性曲線看出在低濕段容值變化分辨顯著下降,而在高濕段90%RH以上變化過陡非線性現(xiàn)象較重,對于非線性現(xiàn)象,一方面在電路中加以修正,同時可對濕度傳感器作工藝處理,包括激光整補電極,純化處理等,可以收到好的效果。
電容式濕度傳感器線性度較好,重復性好,滯后小,反應快,尺寸小,能在-10℃-60℃濕度環(huán)境下使用。但電容式濕度傳感器同時存在質量問題,穩(wěn)定性不理想,由于容值在單位級變化,1%RH為0.3PF,容值小的漂移就容易造成%RH值的突變,一般在控制領域使用電容式濕敏傳感器都需要慎重考慮。
這款電容式土壤濕度傳感器區(qū)別于市面上絕大部分的電阻式傳感器,采用電容感應原理來檢測土壤濕度。避免了電阻式傳感器極易被腐蝕的問題,極大地延長了它的工作壽命。傳感器內置穩(wěn)壓芯片,支持3.3~5.5V寬電壓工作環(huán)境,這意味著即使在3.3V的Arduino主控板上,它也能正常工作。標志性的DFRobot-Gravity接口保證了接口的兼容性,可以直接與Gavity IO擴展板相連接。樹莓派之類的微型PC,只需要外接一個ADC(模擬信號轉數(shù)字信號)轉換模塊就可以工作。
特點:
模擬輸出
該傳感器兼容DFRobot 3針“重力”接口,可直接連接到重力I / O擴展板
規(guī)格:
工作電壓:DC 3.3-5.5V?
輸出電壓:DC 0-3.0V?
接口:PH2.0-3P?
尺寸:99x16mm / 3.9x0.63“?
應用:
園林植物
水分檢測
智能農業(yè)
模塊電原理圖
模塊連接示意圖
實驗開源代碼(校準)
1.在正式檢測土壤濕度前,需要有一個校準過程。
2.上傳校準代碼至Arduino主控板
3.打開串口監(jiān)視助手
/*
【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
實驗七十一:電容式土壤濕度傳感器模塊不易腐蝕寬電壓工作(TL555I)
程序之一,濕度測試校驗代碼
*/
void setup() {
?Serial.begin(9600);?
}
void loop() {
?int val;
?val = analogRead(0);?
?Serial.println(val);?
?delay(500);
}
測量干燥情況下的數(shù)值
干濕度校準
校準說明:通過分別讀取傳感器在空氣中和水中的數(shù)值來限定一個測量范圍。
打開串口監(jiān)視器,將波特率根據(jù)程序設置為9600。
首先請將該傳感器放置在空氣中讀取模擬值,代表干燥時的讀數(shù)。然后拿一杯水,把傳感器插入水中一定深度(做一下標記(紅虛線),此深度為你將要插入泥土的深度),一定不能超過紅色警戒線(紅實線)!并記錄此時讀到的模擬值,代表100%濕度。(輸出數(shù)據(jù)與濕度成反比,在水中的輸出量最小)插入深度如圖推薦(紅虛線處)。
傳感器上部零件區(qū)最好能做些防水處理,比如防水漆,熱膠等。
區(qū)間設定
由于傳感器數(shù)值會受到入土深度、土壤松緊度的影響,只能檢測到土壤的相對濕度,我們把濕度的范圍分為三等分,分別表示干燥、濕潤、非常潮濕。之前記入的兩個數(shù)據(jù)為濕度區(qū)間。例如:空氣中讀數(shù)為620,水中讀數(shù)為308,這樣就可以分為【620,516】,【516,412】,【412,308】這三個區(qū)間分別代表干燥、濕潤、非常潮濕。
注意:由于此傳感器會根據(jù)電容感應原理來監(jiān)測土壤濕度,所以放到土壤濕度不同、松緊度不同、插入深度不同的地方,會體現(xiàn)出不同的濕度,即使在同一個地方,同樣的深度,在第二次插入時,由于第一次拔出時已經(jīng)造成了泥土的松動,可能讀到的濕度會比第一次低。
備注:濕度與讀數(shù)是成反比的。
/*
【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
實驗七十:電容式土壤濕度傳感器模塊不易腐蝕寬電壓工作(TL555I)
程序之二,土壤濕度測試實驗
三個區(qū)間分別為干燥、濕潤、非常潮濕
*/
const int AirValue = 620;??
const int WaterValue = 308;??
int intervals = (AirValue - WaterValue)/3;??
int soilMoistureValue = 0;
void setup() {
??Serial.begin(9600);
}
??
void loop() {
soilMoistureValue = analogRead(A0);??
if(soilMoistureValue > WaterValue && soilMoistureValue < (WaterValue + intervals))
{
??Serial.println("非常潮濕");
}
else if(soilMoistureValue > (WaterValue + intervals) && soilMoistureValue < (AirValue - intervals))
{
??Serial.println("濕潤");
}
else if(soilMoistureValue < AirValue && soilMoistureValue > (AirValue - intervals))
{
??Serial.println("干燥");
}
delay(2000);
}
實驗開源圖形編程(Mind+、編玩邊學)
實驗開源仿真編程(linkboy3.7)