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

【STM32-HAL库】自发电型风速传感器(使用STM32F407ZGT6)(附带工程下载链接)

一、自发电型风速传感器介绍

自发电型风速传感器,也称为风力发电型风速传感器或无源风速传感器,是一种不需要外部电源即可工作的风速测量设备。这种传感器通常利用风力来驱动内部的发电机构,从而产生电能来供电测量风速的传感器部分。以下是自发电型风速传感器的组成、原理及应用:

组成:

  1. 风力涡轮机:用于捕捉风能并将其转换为机械能。
  2. 发电机:将风力涡轮机产生的机械能转换为电能。
  3. 风速感应部分:可以是传统风杯或风翼结构,风速变化会导致感应部分的速度变化。
  4. 信号处理电路:将发电机产生的电能进行处理,并转换为与风速成比例的信号。

原理:

  1. 风力发电:当风吹动风力涡轮机的叶片时,叶片旋转带动发电机内部的线圈在磁场中旋转,从而产生交流电能。
  2. 风速检测:风杯或风翼的旋转速度与风速成正比。通过测量旋转速度,可以推算出风速。
  3. 信号转换:产生的电能通过信号处理电路转换为可用的电信号,这个信号可以是模拟的也可以是数字的,通常与风速成线性关系。

特点:

  • 无需外部电源:适合安装在偏远或难以布线的区域。
  • 环境适应性:能够在恶劣环境中稳定工作,如高山、海洋等。
  • 维护成本低:由于没有电池等易耗部件,维护成本相对较低。

应用:

  • 气象监测:用于气象站、风力发电场等场合的风速监测。
  • 农业:监测农田的风速,用于指导灌溉和农作物保护。
  • 环境监测:在环境监测站用于监测风速,作为气候变化的数据之一。

注意事项:

  • 启动风速:自发电型风速传感器通常有一个最小启动风速,风速低于这个值时,传感器可能无法正常工作。
  • 风速范围:传感器的风速测量范围应符合应用场合的风速变化范围。
  • 环境因素:由于传感器暴露在户外,需要考虑防尘、防水、防腐蚀等环境适应性设计。

二、cubeMX配置

1、新建工程

可以参考我的新建工程系列教程

stm32-HAL库+cubeMX新建工程教程(以F103C8T6为例)icon-default.png?t=O83Ahttps://blog.csdn.net/qq_39150957/article/details/136637881?fromshare=blogdetail&sharetype=blogdetail&sharerId=136637881&sharerefer=PC&sharesource=qq_39150957&sharefrom=from_link【STM32-HAL库】立创梁山派新建工程并点灯(GD32F470ZGT6)cubeMX+HAL库+keil5icon-default.png?t=O83Ahttps://blog.csdn.net/qq_39150957/article/details/136637881?fromshare=blogdetail&sharetype=blogdetail&sharerId=136637881&sharerefer=PC&sharesource=qq_39150957&sharefrom=from_link【STM32-HAL库】立创梁山派天空星版新建工程并点灯(GD32F407VET6)icon-default.png?t=O83Ahttps://blog.csdn.net/qq_39150957/article/details/137161558?fromshare=blogdetail&sharetype=blogdetail&sharerId=137161558&sharerefer=PC&sharesource=qq_39150957&sharefrom=from_link

2、配置ADC

3、配置串口

 可以参考我的文章,配置串口教程以及如何重定向串口。重定向串口之后即可直接使用【printf】函数直接向串口发送数据

【STM32-HAL库】串口配置、printf函数重定向icon-default.png?t=O83Ahttps://blog.csdn.net/qq_39150957/article/details/136638229?fromshare=blogdetail&sharetype=blogdetail&sharerId=136638229&sharerefer=PC&sharesource=qq_39150957&sharefrom=from_link

三、编写代码

风力传感器已经给出了计算公式

feng.c

#include "feng.h"float ADC_ValueToVoltage(uint32_t adcValue) {const uint32_t maxAdcValue = (1 << 12) - 1;const float vRef = 3.3f;float voltage = (float)adcValue * vRef / maxAdcValue;return voltage;
}float Readfeng(){HAL_ADC_Start(&hadc1);    HAL_ADC_PollForConversion(&hadc1,1);uint32_t adcValue;float voltage;adcValue = HAL_ADC_GetValue(&hadc1);voltage = ADC_ValueToVoltage(adcValue);float fengvalue=voltage*25;return fengvalue;}

feng.h

#ifndef __FENG_H__
#define __FENG_H__#include "main.h"
#include "adc.h"
#include "usart.h"
#include "gpio.h"float ADC_ValueToVoltage(uint32_t adcValue);
float Readfeng();#endif

main.c中代码

引入头文件

/* USER CODE BEGIN Includes */#include "feng.h"/* USER CODE END Includes */

主循环中

/* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */                        printf("风速 = %.2f M/s \r\n",Readfeng());HAL_Delay(200);}/* USER CODE END 3 */

四、运行效果

当我用手轻轻转动风速传感器时串口输出数据如下

下载工程

通过百度网盘分享的文件:feng.zip 链接:https://pan.baidu.com/s/1d88CW2lrnzc6k1u_UGsQfw 提取码:6666icon-default.png?t=O83Ahttps://pan.baidu.com/s/1d88CW2lrnzc6k1u_UGsQfw

http://www.lryc.cn/news/451187.html

相关文章:

  • 【计算机毕业设计】springboot就业信息管理系统
  • 实用工具推荐---- PDF 转换
  • 安宝特案例 | 某知名日系汽车制造厂,借助AR实现智慧化转型
  • RabbitMQ基本原理
  • 【NodeJS】npm、yarn、pnpm当前项目设置国内镜像源
  • 25考研咨询周开启,西安电子科技大学是否改考408??
  • git(1) -- 环境配置
  • Windows安装Vim,并在PowerShell中直接使用vim
  • 力扣(leetcode)每日一题 983 最低票价 |动态规划
  • 【漏洞复现】VEXUS多语言货币交易所存在未授权访问漏洞
  • 基于SpringBoot+Vue+MySQL的个性化电影推荐
  • ASP.NET MVC-异步发送post请求+文件下载
  • Unity 2D RPG Kit 学习笔记
  • 联想天逸100使用笔记
  • 【AI知识点】嵌入向量(Embedding Vector)
  • github命令行管理工具推荐
  • 【React】react项目中的redux使用
  • AJAX JSON 实例
  • java8:hutool:httputil.post读取配置项中的url
  • Springboot结合RabbitMQ
  • UNIAPP 动态菜单实现方法
  • windows C++-使用任务和 XML HTTP 请求进行连接(一)
  • HTB:Oopsie[WriteUP]
  • 【JAVA高级】如何使用Redis加锁和解锁(一)、Lua脚本执行原理及流程
  • 2024年使用宝塔面板轻松部署Java Web
  • 闯关训练一:Linux基础
  • 鸿蒙NEXT开发-ArkTS(基于最新api12稳定版)
  • laravel延迟队列 取消未支付超时订单订单
  • 解锁高效开发的秘密武器
  • 【CSS】兼容处理