当前位置: 首页 > news >正文

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

00. 目录

文章目录

    • 00. 目录
    • 01. 倾斜传感器概述
    • 02. 倾斜传感器工作原理
    • 03. 常见的倾斜传感器的种类
    • 04. 倾斜传感器的比较
    • 05. 倾斜传感器模块
    • 06. 硬件接线
    • 07. 软件设计
    • 08. 实验现象
    • 09. 附录

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; //任务IDvoid 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); // 创建任务1if (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

相关文章:

  • 微信小程序常用方法
  • C++23 对部分特性的 constexpr 支持
  • Vue修饰符全解析
  • 代码随想录第42天:图论3
  • 【Linux】权限
  • 如何通过API接口实现自动化上货跨平台铺货?商品采集|商品上传实现详细步骤
  • 康佳Java开发面试题及参考答案
  • NNG和DDS
  • 论文阅读:arxiv 2024 SmoothLLM: Defending LLMs Against Jailbreaking Attacks
  • bun全栈开发尝鲜:用bun-react-template实现Markdown文章展示
  • OpenHarmony外设驱动使用 (十五),USB
  • 【C/C++】从零开始掌握Kafka
  • Linux 下VS Code 的使用
  • 从AD9361 到 ADSY1100 ,中间的迭代产品历史
  • 动态规划-蓝桥杯-健身
  • 大数据学习(118)-SQL面试问题总结
  • RAG系统构建之嵌入模型性能优化完整指南
  • QML学习07Property
  • vue+js 创造动态的光晕圈
  • 8:OpenCV—仿射变换和坐标映射
  • 做品牌网站公司/培训机构如何招生营销
  • 息县网站建设/南京seo关键词优化预订
  • 如何做微信网站建设/seo技巧分享
  • wordpress电商推广插件/淄博搜索引擎优化
  • 芗城区建设局网站/seo的定义是什么
  • 网站编辑器做段落空格/百度app浏览器下载