开封seo推广,做seo需要建网站吗,网站建设费用模板,网页模板是什么目录 一、介绍 二、传感器原理 1.尺寸图 2.引脚描述 三、程序设计 main.c文件 voltag.c文件 voltag.h文件 四、实验效果 五、资料获取 项目分享 一、介绍 太阳能光伏板是一种利用太阳光直接发电的光电半导体薄片。光-电直接转换方式是利用光电效应#xff0c;将太…目录一、介绍二、传感器原理1.尺寸图2.引脚描述三、程序设计main.c文件voltag.c文件voltag.h文件四、实验效果五、资料获取项目分享一、介绍太阳能光伏板是一种利用太阳光直接发电的光电半导体薄片。光-电直接转换方式是利用光电效应将太阳辐射能直接转换成电能光-电转换的基本装置就是太阳能电池。太阳能电池是一种由于光生伏特效应而将太阳光能直接转化为电能的器件。当许多个电池串联或并联起来就可以成为有比较大的输出功率的太阳能电池方阵了。以下是光伏板传感器的参数尺寸60*60mm额定电压3V额定电流150mA功率0.45W厚度2.5mm±0.3mm重量10g哔哩哔哩视频链接https://www.bilibili.com/video/BV1aYPQz4EtY/?spm_id_from333.1387.homepage.video_card.clickvd_source199aed5297a00e80e1faf7e270afe8d7资料分享见文末二、传感器原理1.尺寸图2.引脚描述引脚名称描述VCC-GND三、程序设计1.使用STM32F103C8T6读取电压传感器采集的数据2.将读取得到的光伏板电压显示在OLED上显示SPA0OLED_SCLPB6OLED_SDAPB7串口串口1main.c文件#include stm32f10x.h #include delay.h #include oled.h #include voltage.h /*****************辰哥单片机设计****************** STM32 * 文件 : 电压传感器实验 * 版本 : V1.0 * 日期 : 2026.3.4 * MCU : STM32F103C8T6 * 接口 : 见代码 * IP账号 : 辰哥单片机设计同BILIBILI|抖音|快手|小红书|CSDN|公众号|视频号等 * 作者 : 辰哥 * 工作室 : 异方辰电子工作室 * 官方网站 : www.yfcdz.cn **********************BEGIN***********************/ // 将浮点数拆分为整数和小数保留 2 位小数 static void Float2IntDec(float value, uint32_t *intp, uint32_t *decp) { uint32_t temp (uint32_t)(value * 100.0f 0.5f);// 放大 100 倍并四舍五入 *intp temp / 100;// 整数部分 *decp temp % 100;// 小数部分2 位 } int main(void) { SystemInit(); delay_init(72); OLED_Init(); Voltage_Init(); // 初始化 PA0 ADC uint32_t int_part, dec_part; while (1) { float volt ADC_GetVoltage(); // 获取电压 Float2IntDec(volt, int_part, dec_part); // 拆分为整数/小数 // OLED 显示 OLED_ShowChinese(0, 0, 0, 16, 1); // 电 OLED_ShowChinese(16, 0, 1, 16, 1); // 压 OLED_ShowChar(32, 0, :, 16, 1); OLED_ShowNum(40, 16, int_part, 2, 16, 1); OLED_ShowChar(56, 16, ., 16, 1); OLED_ShowNum(64, 16, dec_part, 2, 16, 1); OLED_ShowChar(88, 16, V, 16, 1); OLED_Refresh(); delay_ms(500); } }voltag.c文件#include voltage.h #include delay.h /*****************辰哥单片机设计****************** STM32 * 文件 : 电压传感器实验 * 版本 : V1.0 * 日期 : 2026.3.4 * MCU : STM32F103C8T6 * 接口 : 见代码 * IP账号 : 辰哥单片机设计同BILIBILI|抖音|快手|小红书|CSDN|公众号|视频号等 * 作者 : 辰哥 * 工作室 : 异方辰电子工作室 * 官方网站 : www.yfcdz.cn **********************BEGIN***********************/ // 初始化 ADC配置指定引脚为模拟输入 void Voltage_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; ADC_InitTypeDef ADC_InitStruct; // 1. 使能 GPIO 和 ADC 时钟 RCC_APB2PeriphClockCmd(ADC_GPIO_CLK | ADC_CLK, ENABLE); // 2. ADC 时钟分频72MHz / 6 12MHz RCC_ADCCLKConfig(RCC_PCLK2_Div6); // 3. 配置 GPIO 为模拟输入 GPIO_InitStruct.GPIO_Pin ADC_GPIO_PIN; GPIO_InitStruct.GPIO_Mode GPIO_Mode_AIN; GPIO_Init(ADC_GPIO_PORT, GPIO_InitStruct); // 4. ADC 基本配置 ADC_InitStruct.ADC_Mode ADC_Mode_Independent; // 独立模式 ADC_InitStruct.ADC_DataAlign ADC_DataAlign_Right; // 右对齐 ADC_InitStruct.ADC_ExternalTrigConv ADC_ExternalTrigConv_None; // 软件触发 ADC_InitStruct.ADC_ContinuousConvMode DISABLE; // 单次转换 ADC_InitStruct.ADC_ScanConvMode DISABLE; // 非扫描 ADC_InitStruct.ADC_NbrOfChannel 1; // 通道数 ADC_Init(ADCx, ADC_InitStruct); // 5. 使能 ADC 并校准 ADC_Cmd(ADCx, ENABLE); ADC_ResetCalibration(ADCx); while (ADC_GetResetCalibrationStatus(ADCx)); // 等待复位校准完 ADC_StartCalibration(ADCx); while (ADC_GetCalibrationStatus(ADCx)); // 等待校准完成 } // 读取指定引脚电压8 次平均返回电压值 float ADC_GetVoltage(void) { uint16_t sum 0; uint8_t i; // 配置 ADC 通道和采样时间 ADC_RegularChannelConfig(ADCx, ADC_CHANNEL, 1, ADC_SampleTime_239Cycles5); for (i 0; i 8; i) // 8 次采样平均 { ADC_SoftwareStartConvCmd(ADCx, ENABLE); // 启动转换 while (!ADC_GetFlagStatus(ADCx, ADC_FLAG_EOC)); // 等待转换完成 sum ADC_GetConversionValue(ADCx); // 累加 ADC 原始值 delay_us(10); // 微小间隔确保 ADC 稳定 } float adc_average sum / 8.0f; //计算平均原始值 float voltage (adc_average * VREF) / ADC_RESOLUTION; // 平均值 × 参考电压 / 分辨率 voltage * VOLT_DIV_RATIO; // 还原真实电压考虑分压 return voltage; }voltag.h文件#ifndef __VOLTAGE_H #define __VOLTAGE_H #include stm32f10x.h /*****************辰哥单片机设计****************** STM32 * 文件 : 电压传感器实验 * 版本 : V1.0 * 日期 : 2026.3.4 * MCU : STM32F103C8T6 * 接口 : 见代码 * IP账号 : 辰哥单片机设计同BILIBILI|抖音|快手|小红书|CSDN|公众号|视频号等 * 作者 : 辰哥 * 工作室 : 异方辰电子工作室 * 官方网站 : www.yfcdz.cn **********************BEGIN***********************/ // 选择 ADC 编号 #define ADCx ADC1 #define ADC_CLK RCC_APB2Periph_ADC1 // 选择 GPIO 端口和引脚 #define ADC_GPIO_PORT GPIOA #define ADC_GPIO_PIN GPIO_Pin_0 #define ADC_GPIO_CLK RCC_APB2Periph_GPIOA // 对应的 ADC 通道 #define ADC_CHANNEL ADC_Channel_0 // 电压计算参数 #define VREF 3.3f // 参考电压 #define ADC_RESOLUTION 4095 // 12 位 ADC 分辨率 #define VOLT_DIV_RATIO 5.0f // 分压比 // void Voltage_Init(void); // 初始化 ADC float ADC_GetVoltage(void); // 获取 PA0 引脚电压V #endif四、实验效果五、资料获取项目分享