水位传感器(Water Sensor),它是一个模拟输入模块。它是一个简单易用、性价比较高的水位/水滴识别检测传感器,它是通过具有一系列的暴露的平行导线线迹测量其水滴/水量大小从而判断水位,轻松完成水量到模拟信号的转换,输出的模拟值可以直接被Arduino开发板读取,达到水位报警的功效。
图1:水位传感器
二、课前准备学习本节课请准备Arduino UNO主板1块、扩展板1块、水位传感器1个、杜邦线3根、USB方口数据线1根、Mixly(米思齐,V0.998)、Arduino IDE。
备注:扩展板的使用是为了方便接线牢固以及能接更多的传感器,如果仅仅是为了实验这一个水位传感器,可以不需要扩展板,直接用针式杜邦线接入Arduino UNO主板中即可。
三、水位传感器规格参数工作电压:DC3-5V
工作电流:小于20mA
传感器类型:模拟
检测面积:40mm x 16mm最深只能测4cm
制作工艺:FR4双面喷锡
工作温度:10℃-30℃
工作湿度:10%-90%无凝结
产品重量:3.5g
产品尺寸:62mm x 20mm x 8mm
模块输出电压随模块浸入液体深度的增加而增大
四、水位传感器接口说明把水位传感器连接到扩展板A1号模拟管脚
图2:传感器与扩展板连接图
1、+(VCC):接电源正极(3-5V);
2、-(GND):接电源负极;
3、S:模拟信号输出;
注意:正负极不能反接,会烧坏传感器。
五、程序示例:Mixly(米思齐)获取水位传感器返回值图3 Mixly获取水位传感器的返回值
水位传感器没有插入到水中时,输出值为0,随着水位传感器逐渐没入水中,模拟引脚的值越来越大,当完全没入水中时,输出值最大为670左右。然后逐渐拔出水位传感器,模拟引脚的值随之减小。但是当水位传感器完全拔出来后,输出值没有为0,个人认为是这时水位传感器的表面还有水,会影响模拟引脚的输出值。用干纸巾擦干水位传感器的表面后,模拟引脚的输出值变为0。。
六、程序示例:Arduino IDE代码double temp,data; void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: temp=(long)analogRead(0); data=(temp/670)*4; Serial.print("the depth is:"); Serial.print(data); Serial.println("cm"); delay(1000); }
请注意:data=(temp/670)*4; 这行代码是将水位传感器的返回值换算成厘米,670是该传感器能检测的最深水位所返回的值,不同厂家生产的可能会有区别,请你自已多尝试获取。
图4 水位传感器返回值与厘米单位的换算
七、结束语初始化工作室重点关注“乐高、Scratch、Arduino的学习与创意以及STEAM教育的实施”,如果需要更多相关课程,请关注我,谢谢。