【鸿蒙开发】Hi3861学习笔记-倾斜传感器

00. 目录

01. 倾斜传感器概述

倾斜传感器又称作倾角传感器、测斜仪、水平仪、倾角计,经常用于系统的角度测量, 测量被测平面相对于水平位置的倾斜度。它从简单的水泡水平仪发展到现在的电子水平仪, 是桥梁道路铺设、 工程钻井、航空航海、工业自动化等领域不可缺少的重要测量工具。

在这里插入图片描述

02. 倾斜传感器工作原理

倾斜传感器的工作是基于基于牛顿第二定律原理,当物体没有受到外力时,重力会使加速度计指向地球的重力方向。

在这里插入图片描述

水平状态下,作用在加速度计上面的只有重力加速度;当物体发生倾斜时,加速度计会感应到重力分量的改变,通过计算和处理这些数据,倾角仪可以准确测量出物体的倾斜角度阿尔法。

倾斜传感器工作原理

在这里插入图片描述

03. 常见的倾斜传感器的种类

倾斜传感器从工作原理上可分为固体摆式、液体摆式、气体摆式三种倾角传感器,这三种倾角传感器都是利用地球万有引力的作用,将传感器敏感器件对大地的姿态角,即与大地引力的夹角 (也就是倾角)这一物理量,转换成模拟信号或脉冲信号。

3.1 固体摆式倾斜传感器

固体摆式倾斜传感器在设计中采用了力平衡式伺服系统,由摆锤、摆线、支架组成, 摆锤受重力G和摆拉力T的作用,其合外力F =G sinθ=mg sinθ。其中,θ为摆线与垂直方向的夹角。在小角度范围内测量时,可以认为F与θ成线性关系,测得F的大小即可知道夹角θ的大小。
在这里插入图片描述

3.2 液体摆式倾斜传感器

它的结构原理如下:在一个壳体内装有导电液,并有三根铂电极和外部相连接, 当壳体水平时,电极插入导电液的深度相同。 在两根电极之间加上幅值相等的交流电压时,电极之间会形成离子电流,那么两个电极之间的液体相当于两个电阻R1和R3。壳体水平时,则R1=R3。 当壳体倾斜时, 三根电极浸入液体的深度也发生变化, 左边电极浸入深度小,导电液减少,电阻R1增大,右边电极侵入深度增加,则导电液增加, 从而电阻R3 减少,即R1>R3。反之,若倾斜方向相反,则R1<R3。

在这里插入图片描述

3.3 气体摆式倾斜传感器

气体摆式惯性元件由密闭腔体、气体和热线组成,当腔体所在平面相对水平面倾斜或腔体受到加速度的作用时,气体的相对流动使得热线的阻值发生变化,并且热线阻值的变化是角度q或加速度的函数,因而也具有摆的效应。其中热线阻值的变化是气体与热线之间的能量交换引起的。

在这里插入图片描述

04. 倾斜传感器的比较

在这里插入图片描述

固体摆、液体摆和气体摆作为倾角传感器在原理研制中各具特色。在重力场中,固体摆以摆锤质量为敏感质量,具有明确的摆长和摆心,运动机理与加速度传感器相似,广泛应用于高精度系统。液体摆介于固体摆和气体摆之间,其系统比较稳定 。而气体摆的敏感质量为气体,具有较小的惯性力,因此在大冲击或高过载时表现出较强的抗振动或冲击能力,但由于气体运动控制较为复杂,其精度不足以满足军用武器系统的要求。

05. 倾斜传感器模块

在这里插入图片描述

用途

各种产品倾斜,倾倒触发报警,倾倒断电传感器,倾斜传感器。(只能感知角度变了)

模块特色
1、采用高灵敏角度开关SW-520D作为传感器.
2、比较器输出,信号干净,波形好,驱动能力强,超过15mA。
3、工作电压3.3V-5V
4、输出形式 :数字开关量输出(0和1)
5、设有固定螺栓孔,方便安装
6、小板PCB尺寸:3.2cm x 1.4cm
7、使用宽电压LM393比较器

模块使用说明
1、本模块的接线请看下面接线图,有详细的说明;
2、模块输出的开关量取决于角度开关的导通与断开,当角度开关断开时,DO输出高电平,角度开关导通时,DO输出低电平;
3、输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测角度改变;
4、输出端可以直接驱动继电器模块,由此可以组成一个大功率的角度开关,保护电器设备等产品倾倒时自动断电的功能。

06. 硬件接线

在这里插入图片描述

07. 软件设计

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 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初始化
    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);

08. 实验现象

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

09. 附录

下载:倾斜模块+倾倒传感器模块+倾斜开关+角度模块开关.rar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海一笑-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值