雨滴传感器(STM32学习之雨滴传感器)

目录

1.1  雨滴传感器简介

 1.2  代码浅析

water.h

water.c


1.1  雨滴传感器简介

        为确保自适应天气控制策略执行的准确性,加设雨滴传感器来辅助判断天气情况。该传感器用于雨雪天气状况的监测,可转成数字信号或模拟信号输出。传感器采用高品质FR-04双面材料,采用镀镍处理表面,具有对抗氧化,导电性,及寿命方面更优越的性能。如图1所示。

图1    雨滴传感器

        该传感器具有数字开关量DO输出(0和1)和模拟量AO电压输出两种输出形式。

        本系统使用雨滴传感器仅辅助判断识别是否有雨掉落,因此单片机仅需连接其DO数字量输出,通过检测其高低电平来判断感应板上是否有雨,因此接线如下所示:

GND——GND
VCC——3.3V
DO——PC0

         若想采集雨量的大小,可将单片机接入其AO模拟量输出口,用ADC进行模拟信号采集。

 1.2  代码浅析

water.h

#ifndef __WATER_H
#define __WATER_H 

#include "sys.h"
 
#define gpio_readC  GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_0)   //读取GPIOA的P0口电平(0/1)
 
void Water_Init(void);                                         //延时初始化函数
int Water_read(void);                                          //读取A0口
 
#endif

water.c

#include "delay.h"
#include "water.h"
#include "uart.h"

 
void Water_Init(void)
{    	 
	
	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);		//使能GPIOA端口时钟
	
	GPIO_InitTypeDef GPIO_InitStructure;						//定义一个设置GPIO的结构体变量	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;					//设置PC0
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;    	//设置PC0引脚为浮空输入
	GPIO_Init(GPIOC, &GPIO_InitStructure);            		 	//初始化GPIOC
	
}
 
int Water_read(void)
{
	if(gpio_readC == 1)
	{ 
		return 1;
	}
	else
	{		
		return 0;
	}
}

        函数Water_read(void)是读取雨滴传感器的状态,无雨时,感应板上无水滴,DO输出为高电平,结果返回1;有雨时,DO输出为低电平,结果返回0;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值