一、认识Water Sensor水位传感器
1.概念简介
Water Sensor水位传感器是一款简单易用、性价比较高的水位/水滴识别检测传感器,其是通过具有一系列的暴露的平行导线线迹测量其水滴/水量大小从而判断水位。轻松完成水量到模拟信号的转换,输出的模拟值可以直接被Arduino开发板读取,达到水位报警的功效。
实物图:
接线图:
2.工作原理
Water Sensor水位传感器能够监测水位。该模块主要是利用三极管的电流放大原理:当液位高度使三极管的基极与电源正极导通的时候,在三极管的基极和发射极之间就会产生一定大小的电流,此时在三极管的集电极和发射极之间就会产生一个一定放大倍数的电流,该电流经过发射极的电阻产生特点电压,被AD转换器采集。
3.特性
工作电压:DC3—5V
传感器类型:模拟
工作湿度:10%—90%无凝结
产品尺寸:62mmX20mmX8mm
工作电流:小于20mA
检测面积:40mmX16mm
工作湿度:10℃—30摄氏度℃
Water Sensor水位传感器不仅可以测量水位,还可以测量是否有水,当测量是否有水时,直接检测输出端引脚,若检测为0,则显示没有水,若检测到1,则有水;当检测水位变化时,需要进行ADC采集,利用函数进行模拟电压值到水位的转换。
二、检测是否有水
#include "water.h"
#include "delay.h"
#define WA GPIO_Pin_11
/*************** 配置LED用到的I/O口 *******************/
void Water_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); // 使能端口时钟
GPIO_InitStructure.GPIO_Pin = WA;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化端口
//GPIO_SetBits(GPIOB, WA); // 关闭所有LED
}
int Water_state(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin_x)
{
Delay_ms(10);
if