如何用Ai-M61-32S監(jiān)測水位
通過從IO接口讀取模擬值并進行電壓轉換,可以得到檢測到的電壓值。
用Ai-M61-32S監(jiān)測水位
項目解決方案
通過從IO接口讀取模擬值并進行電壓轉換,可以得到檢測到的電壓值。進一步的電壓-水位校準使串行印刷和水位高度繪圖,實現(xiàn)實時水位監(jiān)測。
電壓轉換
根據(jù)歐姆定律,V = I / R,電壓與電阻成正比。通過得到3.3 v和GND對應的模擬值(測量值為3199和21),推導出實際電壓轉換公式為:voltage = val *(3.3 /(3199-21))。
代碼
長按IO2鍵,短按EN鍵進入下載模式。配置端口后,上傳項目并重置以運行程序。
效果
水位傳感器可以檢測水位高度(檢測范圍:0 - 40mm),也可以作為雨滴傳感器用于天氣監(jiān)測,檢測降雨量和強度。廣泛應用于汽車雨刷系統(tǒng)、智能照明系統(tǒng)、洗衣機、智能天窗系統(tǒng)等。
模塊的介紹
上電后,電源指示燈LED亮起。工作電壓:直流3.3V - 5V。輸出類型:模擬信號。
傳感器有10根外露銅線,其中5根電源銅線和5根傳感銅線呈交錯平行排列,每根電源銅線之間有一根傳感銅線。
模塊示意圖
引腳的定義
?S (Signal)為模擬量輸出;
?+ (VCC)為傳感器電源;
?—(GND)表示地。
工作原理
當平行銅線之間有水時,不同的浸入高度導致不同的電流。銅線之間的電阻隨水位的變化而變化。
電阻與水的高度成反比(傳感器浸入越深,電導率越好,電阻越低,電流越大)。因此,水位可以通過測量傳感器的輸出電壓通過ADC來確定。
硬件連接
S -> io19, + - >3v3, - >gnd。
硬件連接完成后,打開串口。此時,輸出電壓應為0。
水位校正
由于水質和電導率的差異,需要校準。每次校準前,將PCB表面平行銅線干燥。當電壓讀數(shù)為0時,將傳感器放入水中,記錄水位和電壓。收集多組數(shù)據(jù)進行平均。
校準數(shù)據(jù)收集
當水位為10mm時,對應的串口輸出電壓為1.25 V。
增加水位,收集多個電壓-水位數(shù)據(jù)對。假設電壓V與水位高度mm為線性關系,用Excel對數(shù)據(jù)進行擬合,得到公式y(tǒng) = 41.774 x - 38.686。
項目代碼
在代碼中添加水位高度定義:
保存代碼,構建項目,上傳固件,然后重置以運行。打開串口助手,連接目標串口,獲取實時IO模擬量、電壓(V)和水位(mm)。
數(shù)字管顯示水位
在前面的電壓讀取和基于水位傳感器的電壓-水位高度轉換的基礎上,增加了一個4位共陽極數(shù)字管顯示水位高度。
硬件連接
采用兩個74HC595驅動的4位共陽極數(shù)字管,支持3.3V至5V的寬電壓輸入,僅需3個信號引腳即可驅動。
水浸傳感器_ S -> IO19,水浸傳感器_ + -> 3V3,水浸傳感器_ - -> GND。
4Bit - segment_ SCLK - b> IO23, 4Bit - segment_ RCLK - b> IO24, 4Bit - segment_ DIO -> IO11。
項目代碼
注意需要定義shiftOut函數(shù)。
●為了避免由于每個采樣值的顯著波動而導致數(shù)碼管的過度動態(tài)刷新,增加了一個循環(huán)以延長數(shù)據(jù)刷新間隔。
●或者,取多個樣本并平均它們,以減少水位波動,實現(xiàn)更穩(wěn)定的數(shù)碼管顯示。
示范
●數(shù)字管顯示水位。
●靜態(tài)水位演化曲線。
本文編譯自hackster.io