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

非接触式水位传感器详解(STM32)

目录

一、介绍

二、传感器原理

1.原理图

2.引脚描述

三、程序设计

main.c文件

water.h文件

water.c文件

四、实验效果 

五、资料获取

项目分享


一、介绍

        非接触式水位传感器是一款简单易用、性价比较高的水位/液位检测传感器,其原理是通过电感监测液位信号。可以有3-4.5mm的感应距离,即可以贴在容器外壁表面来监测容器内液位(金属材质不可用)

以下是非接触式水位传感器的参数:

型号

M03

工作电压

DC 3.3~5V

静态电流

0.6uA

工作电流

2.2mA

输出方式

推挽输出

感应材料

非金属

哔哩哔哩视频链接:

非接触式水位传感器(STM32)

(资料分享见文末) 

二、传感器原理

1.原理图

2.引脚描述

引脚名称

描述

+

VCC

-

GND

O

信号输出

三、程序设计

1.使用STM32F103C8T6读取非接触式水位传感采集的数据,通过OLED上显示

2.注意板子供电3.3-5V因板子体积尽量小的要求,板子没有加反接保护,切记电源不要反接,容易烧坏芯片

WATER

PA1

OLED_SCL

PB11

OLED_SDA

PB10

main文件

#include "stm32f10x.h"
#include "led.h"
#include "usart.h"
#include "delay.h"
#include "oled.h"
#include "water.h"
#include "adcx.h"/*****************辰哥单片机设计******************STM32* 项目			:	非接触式水位传感器实验                     * 版本			: V1.0* 日期			: 2025.1.28* MCU			:	STM32F103C8T6* 接口			:	参看water.h							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************/u16 value;
u8 buff[30];//参数显示缓存数组int main(void)
{ SystemInit();//配置系统时钟为72M	delay_init(72);LED_Init();LED_On();WATER_Init();USART1_Config();//串口初始化OLED_Init();printf("Start \n");delay_ms(1000);OLED_Clear();//显示“水位:”OLED_ShowChinese(0,0,0,16,1);OLED_ShowChinese(16,0,1,16,1);OLED_ShowChar(32,0,':',16,1);while (1){LED_Toggle();value = WATER_GetData();  printf("水位: %d\r\n",value);OLED_ShowNum(80,0,value,1,16,1);delay_ms(200);}}

water.h文件

#ifndef __WATER_H
#define	__WATER_H
#include "stm32f10x.h"
#include "adcx.h"
#include "delay.h"
#include "math.h"/*****************辰哥单片机设计******************STM32* 文件			:	非接触式水位传感器h文件                   * 版本			: V1.0* 日期			: 2025.1.28* MCU			:	STM32F103C8T6* 接口			:	见代码							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥**********************BEGIN***********************//***************根据自己需求更改****************/
// WATER GPIO宏定义#define		WATER_GPIO_CLK								RCC_APB2Periph_GPIOA
#define 	WATER_GPIO_PORT								GPIOA
#define 	WATER_GPIO_PIN								GPIO_Pin_1			/*********************END**********************/void WATER_Init(void);
uint16_t WATER_GetData(void);#endif /* WATER_H_ */

water.c文件

#include "water.h"/*****************辰哥单片机设计******************STM32* 文件			:	非接触式水位传感器c文件                   * 版本			: V1.0* 日期			: 2025.1.28* MCU			:	STM32F103C8T6* 接口			:	见代码							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥**********************BEGIN***********************/void WATER_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd (WATER_GPIO_CLK, ENABLE );	// 打开连接 传感器DO 的单片机引脚端口时钟GPIO_InitStructure.GPIO_Pin = WATER_GPIO_PIN;			// 配置连接 传感器DO 的单片机引脚模式GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;			// 设置为上拉输入GPIO_Init(WATER_GPIO_PORT, &GPIO_InitStructure);				// 初始化 }uint16_t WATER_GetData(void)
{uint16_t tempData;tempData = !GPIO_ReadInputDataBit(WATER_GPIO_PORT, WATER_GPIO_PIN);return tempData;
}

四、实验效果 

五、资料获取

项目分享

http://www.xdnf.cn/news/35137.html

相关文章:

  • office软件中word里面的编号库和列表库功能
  • 06-libVLC的视频播放器:推流RTMP
  • 第三届世界科学智能大赛新能源赛道:新能源发电功率预测-数据处理心得体会1
  • Java @Serial 注解深度解析
  • day46——两数之和-输入有序数组(LeetCode-167)
  • 人工智能在智慧农业中的应用:从田间到餐桌的变革
  • 【Vue】布局解析
  • Manus技术架构、实现内幕及分布式智能体项目实战 线上高级实训班
  • 洛谷的几道题
  • 某局部三层休闲娱乐中心建筑设计与结构设计
  • 19-算法打卡-哈希表-四数相加II-leetcode(454)-第十九天
  • @EnableAsync+@Async源码学习笔记之五
  • 第十届团体程序设计天梯赛-上理赛点随笔
  • 学习笔记: Mach-O 文件
  • Datawhale AI春训营 世界科学智能大赛--合成生物赛道:蛋白质固有无序区域预测 小白经验总结
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(钢铁企业生产计划管理系统)
  • 支持中文对齐的命令行表格打印python库——tableprint
  • cesium中postProcessStages全面解析
  • 13.第二阶段x64游戏实战-分析人物等级和升级经验
  • JNI 学习
  • Linux基础IO(九)之软链接
  • 洛谷P3373线段树详解【模板】
  • QML动画--ParticleSystem
  • 构造函数和析构函数
  • 数据结构排序算法全解析:从基础原理到实战应用
  • LabVIEW 程序维护:为何选靠谱团队?
  • C# 变量||C# 常量
  • Linux教程-常用命令系列一
  • 定制一款国密浏览器(10):移植SM2算法前,解决错误码的定义问题
  • 如何实现一个MCP server呢?