【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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值