本文主要是介绍雨滴传感器(STM32学习之雨滴传感器),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1.1 雨滴传感器简介
1.2 代码浅析
water.h
water.c
1.1 雨滴传感器简介
为确保自适应天气控制策略执行的准确性,加设雨滴传感器来辅助判断天气情况。该传感器用于雨雪天气状况的监测,可转成数字信号或模拟信号输出。传感器采用高品质FR-04双面材料,采用镀镍处理表面,具有对抗氧化,导电性,及寿命方面更优越的性能。如图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; //设置PC0GPIO_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;
这篇关于雨滴传感器(STM32学习之雨滴传感器)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!