【创客教育】水位传感器

水位传感器(water sensor),顾名思义,就是测试水位的。通过代码读取模拟值来判断水位高低。输出值范围通常为 ​480~710​(具体取决于传感器)。值越大,水位越高(部分传感器可能相反,需实测校准)
在这里插入图片描述
水位传感器有三个引脚,连线方式如下:

  • ​VCC​ → Arduino 5V
  • GND​ → Arduino GND
  • OUT​ → 模拟输出引脚:连到 Arduino模拟输入引脚(如 A0)

Arduino 代码示例​

​基础代码(直接读取模拟值)​

#define SENSOR_PIN A0  // 水位传感器连接至 A0

void setup() {
  Serial.begin(9600);  // 初始化串口
}

void loop() {
  int sensorValue = analogRead(SENSOR_PIN);  // 读取模拟值(0~1023)
  Serial.print("Water Level: ");
  Serial.println(sensorValue);
  delay(1000);  // 每秒读取一次
}

​进阶代码(控制继电器/水泵)​

​应用场景​:自动鱼缸水位控制

#define SENSOR_PIN A0
#define RELAY_PIN 4    // 继电器控制水泵
#define WATER_LOW 550  // 低水位阈值
#define WATER_HIGH 640 // 高水位阈值

void setup() {
  Serial.begin(9600);
  pinMode(RELAY_PIN, OUTPUT);
}

void loop() {
  int level = analogRead(SENSOR_PIN);
  Serial.print("Water Level: ");
  Serial.println(level);

  if (level < WATER_LOW) {
    digitalWrite(RELAY_PIN, HIGH); // 水位过低,启动水泵
    Serial.println("Pump ON - Adding Water");
  } else if (level > WATER_HIGH) {
    digitalWrite(RELAY_PIN, LOW);  // 水位过高,关闭水泵
    Serial.println("Pump OFF - Water Level OK");
  }
  delay(1000);
}

校准与注意事项​

​校准​:将传感器浸入不同水位,记录对应的 analogRead 值,调整阈值(如 WATER_LOW 和 WATER_HIGH)。
​延长传感器寿命​:
仅在读取时供电(通过数字引脚控制 VCC)。
​避免腐蚀​:
不要让 PCB 长期浸泡在水中。

补充参考示例​

​LED 亮度随水位变化​:

int outputValue = map(sensorValue, 570, 800, 0, 255); // 映射到 PWM 范围
analogWrite(ledPin, outputValue); // 控制 LED 亮度

物联网水位监测​:结合树莓派或 OBLOQ 模块上传数据。
如果需要更复杂的逻辑(如多级报警或云平台集成),可进一步扩展代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值