【鸿蒙开发】Hi3861学习笔记-雨滴传感器

发布于:2025-05-27 ⋅ 阅读:(77) ⋅ 点赞:(0)

00. 目录

01. 雨滴传感器概述

在这里插入图片描述

雨滴,下雨传感器,可用于各种天气状况的监测,并转成数定信号和AO输出。

1、传感器采用高品质FR-04双面材料,超大面积5.0*4.0CM,并用镀镍处理表面,具有对抗氧化,导电性,及寿命方面更优越的性能;
2、比较器输出,信号干净,波形好,驱动能力强,超过15mA;
3、配电位器调节灵敏度;
4、工作电压3.3V-5V
5、输出形式 :数字开关量输出(0和1)和模拟量AO电压输出;
6、设有固定螺栓孔,方便安装
7、小板PCB尺寸:3.2cm x 1.4cm
8、使用宽电压LM393比较器

02. 雨滴传感器功能介绍

接上5V电源,电源指示灯亮,感应板上没有水滴时,DO输出为高电平,开关指示灯灭 ,滴上一滴水,DO输出为低电平,开关指示灯亮,刷掉上面的水滴,又恢复到,输出高电平状态。

AO模拟输出,可以连接单片机的AD口检测滴在上面的雨量大小。

DO TTL数字输出也可以连接单片机检测是否有雨。

在这里插入图片描述

接线方式

1、VCC:接电源正极(3-5V)
2、GND:接电源负极
3、DO:TTL开关信号输出
4、AO:模拟信号输出

03. 雨滴传感器原理图

在这里插入图片描述

04. 硬件接线

在这里插入图片描述

05. 软件设计

template.c

/**
 ****************************************************************************************************
 * 实验现象:雨滴传感器模块,检测到有雨时,指示灯亮,否则灭。
 *
 ****************************************************************************************************
 */

#include <stdio.h>
#include <unistd.h>

#include "ohos_init.h"
#include "cmsis_os2.h"

#include "bsp_led.h"



//管脚定义
#define MODULE_PIN         HI_IO_NAME_GPIO_11
#define MODULE_GPIO_FUN    HI_IO_FUNC_GPIO_11_GPIO

//传感器模块初始化
void pz_module_init(void)
{
    hi_gpio_init();                                            // GPIO初始化
    hi_io_set_pull(MODULE_PIN, HI_IO_PULL_NONE);                   // 设置GPIO上拉
    hi_io_set_func(MODULE_PIN, MODULE_GPIO_FUN);                   // 设置IO为GPIO功能
    hi_gpio_set_dir(MODULE_PIN, HI_GPIO_DIR_IN);                // 设置GPIO为输入模式
}

osThreadId_t MODULE_Task_ID; //任务ID

void MODULE_Task(void)
{
    uint8_t key=0;
    uint8_t value=0;

    led_init();//LED初始化
    pz_module_init();

    while (1) 
    {
        hi_gpio_get_input_val(MODULE_PIN,&key);
        if(key==0)LED(1);
        else LED(0);
        usleep(10*1000);
    }
}
//任务创建
void module_task_create(void)
{
    osThreadAttr_t taskOptions;
    taskOptions.name = "ModuleTask";            // 任务的名字
    taskOptions.attr_bits = 0;               // 属性位
    taskOptions.cb_mem = NULL;               // 堆空间地址
    taskOptions.cb_size = 0;                 // 堆空间大小
    taskOptions.stack_mem = NULL;            // 栈空间地址
    taskOptions.stack_size = 1024;           // 栈空间大小 单位:字节
    taskOptions.priority = osPriorityNormal; // 任务的优先级

    MODULE_Task_ID = osThreadNew((osThreadFunc_t)MODULE_Task, NULL, &taskOptions); // 创建任务1
    if (MODULE_Task_ID != NULL)
    {
        printf("ID = %d, Create MODULE_Task_ID is OK!\n", MODULE_Task_ID);
    }
}

/**
 * @description: 初始化并创建任务
 * @param {*}
 * @return {*}
 */
static void template_demo(void)
{
    printf("-Hi3861开发板--雨滴传感器模块实验\r\n");
    module_task_create();
}
SYS_RUN(template_demo);

06. 实验现象

雨滴传感器模块,检测到有雨时,指示灯亮,否则灭。

07. 附录

下载:YL-083+雨滴模块资料.zip


网站公告

今日签到

点亮在社区的每一天
去签到