更多

    海水水族箱 鹽度自動調節系統(三)

    經過硬件接駁,以及理解海水水族箱裡的鹽度知識後,今期餘下程式設計的部分。大家不要以為此部分很艱難,因為傳感器的基礎程式已有,大家只要稍作修改就可使用。

    我們會先到傳感器的官方網站下載程式碼,然後啟動 Arduino 加以編譯就可使用。

    Step 1

    利用 Arduino 編程以使用 Vernier 傳感器的各種 Sketches 程式碼,可於 Vernier 公司的網站下載。
    Step 1:利用 Arduino 編程以使用 Vernier 傳感器的各種 Sketches 程式碼,可於Vernier 公司的網站下載。

    網址:https://www.vernier.com/engineering/arduino

    Step 2

    首先下載傳感器適用的 Sketch 程式碼,也就是 Arduino 的程式。再利用 Arduino IDE 開發環境修改。因每種傳感器的「Intercept」(攔截)及「Slope」(斜率)的值皆不一樣,需根據傳感器規格中列明的值作出修改。

    把繼電器連接到 Arduino UNO 的數位腳是 12(D12),於程式的設置(setup)中把數位腳 12 定為輸出模式。

    接著到程式運作,主要不斷地呼叫的部份(loop),當中分為兩部分:
    ① Sketch 中已編好 Arduino UNO 底板會從傳感器,傳來的原始數據換算成正確讀數(鹽度);設定「SensorReading」變量回傳所測試出的鹽度。
    ② 「freshwaterpump()」是我們自行編寫的一個程式碼模組,亦是這程式主要運行的部分之一。

    我們利用了「if⋯else」的編程概念,去決定水泵的開關。如果(if)鹽度感測器測出的數值附合預設條件,程式便指示水泵開動;但在所有其他情況下(else),程式均會示水泵停止。
    ① 設定的條件是當鹽度讀數大於或等於 36ppt 時,程式指示水泵開動。程式會指示 Arduino Uno 的數位腳 12(D12)輸出高電壓(HIGH),如此會令繼電器把水泵的電源接通,水泵就會開動。
    ② 當淡水加進水族箱後,需要一定時間才能與海水完全混合,所以我們於加入一定分量的淡水後,必須讓海水的鹽度有足夠的時間穩定下來,然後才作第二次的量度及操作。我們會利用「delay」這個延時指令去處理這情境,然後用「digitalWrite(12,HIGH);」、「delay(10000);」和
    「digitalWrite(12,LOW);」三組指令,讓水泵開動加入淡水 10,000 毫秒(即 10 秒)後停止。
    ③ 接著我們利用「delay(30000);」指令,提供 30,000 毫秒(即 30 秒)的時間,讓淡水與海水有充份時間完全混合,才開始下一次的量度及操作。(註:水泵開動和等待下一次量度的時間,需因應水族箱內水體的大小作調節。)

    程式碼並不複雜,僅34行左右。同學們只要理解當中每一個原則,就可按需要而設計及改動。
    Step 2:程式碼並不複雜,僅 34 行左右。同學們只要理解當中每一個原則,就可按需要而設計及改動。

    完成圖

    利用此裝置就能時刻確保海洋生態水族箱內的海水鹽度,維持在一個穩定的水平,這對養殖海洋生物會十分便利及安全。
    利用此裝置就能時刻確保海洋生態水族箱內的海水鹽度,維持在一個穩定的水平,這對養殖海洋生物會十分便利及安全。

    您會感興趣的內容

    相關文章