土壤湿度传感器-STM32F103

本文详细介绍了如何在STM32F10x平台中使用ADC模块测量土壤湿度,包括GPIO配置、ADC初始化、获取ADC值和数据处理方法。主要内容涉及传感器初始化函数、ADC操作以及主函数中的数据读取和显示。
摘要由CSDN通过智能技术生成

1.模块介绍

测量土壤湿度,主要以ADC模拟量采集为主,接AO引脚

2.引脚介绍

3.使用说明

soilmoisture.c

#include "stm32f10x.h"
#include "Delay.h"



/****************************
*函  数:土壤湿度传感器初始化
*作  者:Dragon-H
*时  间:2024-5-6
*物理创新实验室
****************************/
void soilMoisture_Init(void){
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	ADC_InitTypeDef ADC_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
	
	RCC_ADCCLKConfig(RCC_PCLK2_Div6);//设置分频因子6,72M/6=12M,ADC最大时间不能超过14M
	ADC_DeInit(ADC1);//复位ADC1,将ADC1的全部寄存器全部设为缺省值
	
	ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;
	ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;
	ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
	ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;
	ADC_InitStructure.ADC_NbrOfChannel=1;
	ADC_InitStructure.ADC_ScanConvMode=DISABLE;
	ADC_Init(ADC1,&ADC_InitStructure);
	
	//ADC准备阶段
	ADC_Cmd(ADC1,ENABLE);
	ADC_ResetCalibration(ADC1);
	while(ADC_GetCalibrationStatus(ADC1));
	ADC_StartCalibration(ADC1);
	while(ADC_GetCalibrationStatus(ADC1));
}
/****************************
*函  数:获取ADC值
*作  者:Dragon-H
*时  间:2024-5-6
*物理创新实验室
****************************/
int soilMoisture_ADC_GET(int ch){
	ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);
	ADC_SoftwareStartConvCmd(ADC1,ENABLE);
	while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
	return ADC_GetConversionValue(ADC1);
}
/****************************
*函  数:处理数据	多久求和取平均值
*作  者:Dragon-H
*时  间:2024-5-6
*物理创新实验室
****************************/
int soilMoisture_ReadData(int channel,int count){
	int sum_val=0;
	for(uint8_t i;i<count;i++){
		sum_val+=soilMoisture_ADC_GET(channel);
	}
	return sum_val/count;
}

main.c

int main(void)
{
/**************************
*函数初始化
*2024-4-26
*Dragon-H
*物理创新实验室
***************************/
	soilMoisture_Init();
	
/**************************
*自定义变量
*2024-4-26
*Dragon-H
*物理创新实验室
***************************/
	float RainData;
/**************************
*数据执行
*2024-4-26
*Dragon-H
*物理创新实验室
***************************/
	OLED_ShowChinese(0,16, "土壤湿度:");
	while (1)
	{				
		
		RainData=(float)soilMoisture_ReadData(5,20)*(3.3/4096);
		OLED_ShowFloatNum(75, 16,RainData, 2,2,  OLED_8X16);
		OLED_Update();
	}

土壤湿度检测模块 STM32 是一种用于测量土壤湿度的电子设备。它采用了STM32微控制器作为处理器,具有较高的性能和可靠性。 该模块通常由土壤湿度传感器STM32微控制器、连接电路和显示屏等组成。土壤湿度传感器负责测量土壤的含水量,将测量结果传送给STM32微控制器。STM32微控制器对传感器的数据进行处理,可以进行数据的存储、计算和显示等操作。连接电路则用于将传感器和微控制器连接在一起,确保它们正常工作。显示屏用于显示土壤湿度的数值或其他相关信息。 使用土壤湿度检测模块 STM32可以实时监测土壤的湿度状况,帮助农民把握土壤的水分情况。通过测量土壤湿度,可以合理安排灌溉的时间和用水的量,以提高作物的产量和质量。例如,在土壤湿度过低时,可以及时进行灌溉;而在土壤湿度过高时,则可以减少灌溉的次数和用水量,避免造成作物根部过度浸泡和缺氧等问题。 除了农业领域,土壤湿度检测模块 STM32还可以应用于园艺、花卉栽培和城市绿化等领域。它可以帮助园艺师和花卉种植者合理管理植物的生长环境,以满足植物对水分的需要。在城市绿化中,土壤湿度检测模块 STM32可以有效节约水资源和提高绿化效果。 综上所述,土壤湿度检测模块 STM32是一种重要的电子设备,它可以帮助农民、园艺师和花卉种植者监测土壤湿度,合理管理水资源,提高作物和植物的生长质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

One Kb

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

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

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

打赏作者

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

抵扣说明:

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

余额充值