---
# System prepended metadata

title: 定量抽水幫浦

---

# 定量抽水幫浦
## 接線表
> #### 浮球開關：
> * 從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);
  }
  
}
```