# 定量抽水幫浦 ## 接線表 > #### 浮球開關: > * 從Arduino 3.3v / Gnd 腳位 在麵包板上分成經過兩條浮球開關的通路 > 如下圖: ![](https://i.imgur.com/4cnjU8P.png) #### 其餘部分... | 馬達 正極 | 馬達 負極 | 繼電器 IN | 繼電器 COM | 繼電器 VCC | 繼電器 GND | |:----------:|:---------:|:----------:|:-----------:|:-----------:|:-----------:| | 繼電器 NO | GND | Arduino D4 | 5V | 5V | GND | ## 程式碼 ``` c = // 定義浮球讀取的腳位 const int liquid_level_sensor_pin_1 = 2 ; // 水池內 const int liquid_level_sensor_pin_2 = 3 ; // 魚缸內 // 本專題以3.3v行成一個通路,將通路分成兩條,以讀取各自通斷路狀況 // 定義繼電器的引腳 const int relay_pin = 4; void setup() { // 設置液位感應器的引腳為輸入模式 pinMode(liquid_level_sensor_pin_1, INPUT); pinMode(liquid_level_sensor_pin_2, INPUT); // 設置繼電器的引腳為輸出模式 pinMode(relay_pin, OUTPUT); // 將繼電器關閉,初始狀態下水泵不工作 digitalWrite(relay_pin, LOW); } void loop() { //等待秒數,單位毫秒==>1秒=1000 毫秒 delay(10000); // 判斷水池水是否見底 如果魚缸水位未滿,啟動水泵 while (digitalRead(liquid_level_sensor_pin_1) != 0 && digitalRead(liquid_level_sensor_pin_2) != 1){ digitalWrite(relay_pin, HIGH); // 一次只抽取0.1秒 請自行測試適合水量 delay(100); digitalWrite(relay_pin, LOW); // 停止一段時間再次動作 delay(1000); } } ```