(HAL库) 基于STM32检测的简易太阳能发电、用电装置

1 材料与简介

本项目旨在设计并实现一个基于STM32微控制器的简易太阳能发电与用电装置。系统通过太阳能电池板将太阳能转换为电能,并通过充电控制器管理电池的充电和放电过程。STM32微控制器作为核心控制单元,实时监测太阳能电池板的输出、电池状态以及负载用电情况,并通过传感器采集电压、电流等数据

电池选型:2000mA 白色空对空接头电池

太阳能板:5V 200mA 1W太阳能电池板

驱动模块:CN3163太阳能LED驱动模块

tip:淘宝都能买到

2 功能原理

2.1 PCB板搭建

通过拨码开关可进行串联输出、并联输出功能的选择

2.2 接线方式

一号检测接口、二号检测接口-------------PB0\PB1\PB2(均可采集)

一号太阳能板、二号太阳能板-------------太阳能板正负极

3 STM32采样检测功能

引脚定义:现在CubeMX中点好

3.1 ADC采样

uint16_t v_value;
float solar1;
float solar2;
__IO uint32_t adcTick;
void adc_process()
{
	if(uwTick-adcTick<100) return;
	adcTick=uwTick;
	HAL_ADC_Start(&hadc1);
	v_value = HAL_ADC_GetValue(&hadc1);
	solar1=(v_value/4096.0f)*3.3f;

	HAL_ADC_Start(&hadc2);
	v_value = HAL_ADC_GetValue(&hadc2); 
	solar2=(v_value/4096.0f)*3.3f;	
}

3.2 OLED显示

__IO uint32_t oledTick;
uint8_t str[40];
unsigned char interface=1;

void display_process()
{
	if((uwTick - oledTick)<500)	return;//减速函数
	oledTick = uwTick;

	if(interface==1)
	{
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);

	sprintf((char *)str,"v_ture1: %4.2f",solar1);
	OLED_ShowString(0,0,str,16);//这个是oled驱动里面的,是显示位置的一个函数,

	sprintf((char *)str,"voltage1: %4.2fV",solar1*5+0.27);
	OLED_ShowString(0,2,str,16);//这个是oled驱动里面的,是显示位置的一个函数,
		sprintf((char *)str,"v_ture2: %4.2f",solar2);
	OLED_ShowString(0,4,str,16);//这个是oled驱动里面的,是显示位置的一个函数,

	sprintf((char *)str,"voltage2: %4.2fV",solar2*5+0.27);
	OLED_ShowString(0,6,str,16);//这个是oled驱动里面的,是显示位置的一个函数,
		
	}
}

3.3 按键功能

__IO uint32_t keyTick;
void key_process()
{
	if(uwTick - keyTick<100) return;
	keyTick = uwTick;
	key_read();
	if(trg&0x01)		//x轴
	{	
		if(++interface==4)
		interface=1;
	}

	if(trg&0x02)		//x轴
	{
		if(++interface==4)
		interface=1;
	}
	if(trg&0x04)		//y轴
	{		
		if(++interface==4)
		interface=1;
	}
	if(trg&0x08)		//y轴
	{
		if(++interface==4)
		interface=1;
	}
	if(trg&0x10)		//z轴
	{
		if(++interface==4)
		interface=1;
	}
	if(trg&0x20)		//z轴
	{
		if(++interface==4)
		interface=1;
	}
}

4  搭建成型(效果展示)

拨动驱动板上的开关可以开关“路灯”(led灯珠)

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值