stm32毕业设计 移动共享充电宝设计与实现


1 简介

Hi,大家好,今天向大家介绍一个学长做的单片机项目

基于单片机的移动充电宝设计与实现

大家可用于 课程设计 或 毕业设计

2 主要器件

  • 主控:stm32
  • 电池座 18650*2
  • TP4056 电池充电IC
  • MT3608 升压转换器
  • 有一个TP4056电池充电IC,TP4056与DW01A和FS8205A结合使用可提供各种电池保护功能。如过充,过放,短路和反极性保护。
  • 有2个MT3608升压转换器电路,用于5v和可调电压输出。
    一个AMS1117 LDO来获得3.3v输出

3 实现效果

在这里插入图片描述
为单片机设备供电:
在这里插入图片描述

为手机供电:
在这里插入图片描述

4 设计原理

硬件原理图:
在这里插入图片描述

5 关键代码

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "adc.h"
#include "oled.h"
#include "iwdg.h"
int main(void)
{ 
	u8 t;
	u16 adcx;
	u16 adcx2,adcx3,adcx4;
	float temp,temp3,temp4,foult,tempp,power;
	delay_init();	    	 //延时函数初始化	  
	uart_init(9600);	 	//串口初始化为9600
 
	LED_Init();		  		//初始化与LED连接的硬件接口
	Adc_Init();		  		//ADC初始化	    
	OLED_Init();			//初始化OLED  
	OLED_Clear(); 
	IWDG_Init(4,625);    //与分频数为64,重载值为625,溢出时间为1s	   
	t=' ';	
	while(1)
	{
		OLED_ShowCHinese(18,0,4);//电
		OLED_ShowCHinese(36,0,5);//压
		OLED_ShowCHinese(72,0,4);//电
		OLED_ShowCHinese(90,0,6);//流
		OLED_ShowCHinese(18,4,7);//功
		OLED_ShowCHinese(36,4,8);//率
		adcx3=Get_Adc_Average(ADC_Channel_2,10);
		printf( "%2d\n",adcx3 );
		temp4=(float)adcx3*(3.3/4096);
		temp3=2.0*temp4;
		tempp=temp3;//
		
		adcx3=temp3;
		OLED_ShowNum(18,2,adcx3,1,16);
		OLED_ShowString(26,2,".");
		temp3-=adcx3;
		temp3*=1000;
		OLED_ShowNum(28,2,temp3,3,16);
				
		adcx=Get_Adc_Average(ADC_Channel_1,10);
		temp=(float)adcx*(3.3/4096);
		foult=temp*10*1000;//temp*10为电流值,单位为mA
		adcx=foult;
		OLED_ShowNum(72,2,adcx,4,16);
		
		power=temp*10*tempp;
		adcx4=power;
		OLED_ShowNum(60,4,adcx4,1,16);
		OLED_ShowString(68,4,".");
		power-=adcx4;
		power*=1000;
		OLED_ShowNum(70,4,temp3,3,16);
		IWDG_Feed();	//喂狗
		delay_ms(250);
	}											    
}	

6 最后

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: stm32太阳能充电宝系统设计实现主要包括硬件设计和软件编程两部分。 在硬件设计方面,首先需要选择适合的太阳能电池板,并确保其输出电压和电流能够满足充电宝的需求。其次,需要选择合适的锂电池作为充电宝的电源,同时配备适当的充放电管理电路,例如充电保护芯片和放电保护芯片。此外,还需要合适的稳压器芯片来稳定输出电压,以保护充电宝内部电路。 在软件编程方面,需要借助stm32的嵌入式开发环境进行编程。首先,需要编写代码来获取太阳能电池板的输出电压和电流数据,以及锂电池的充放电状态。其次,需要设计合适的充电算法,根据太阳能电池板的输出情况和锂电池的充放电状态,控制充电电流和充电时间,以实现高效充电。此外,还需要实现过充保护和过放保护功能,当充电电流或电压超出一定范围时,及时停止充电或放电,以保护电池和充电宝的安全。 总之,stm32太阳能充电宝系统设计实现需要在硬件和软件层面进行合理的设计和编程。通过精确控制充电电流和时间,以及实时监测充放电状态,可以实现高效、安全的太阳能充电宝系统。 ### 回答2: STM32太阳能充电宝系统设计实现主要包括以下几个方面。 首先是硬件设计。该系统的核心是STM32微控制器,它具有强大的计算和控制能力。在硬件设计中,需要将太阳能电池板与充电控制电路相连接,以实现太阳能的收集和充电功能。同时,还需要设计电池管理电路,对充电、放电和保护进行有效控制。此外,还需要设计储能电池和输出电路,使其能够满足充电宝的使用要求。 其次是软件设计。软件设计主要涉及嵌入式系统的开发,需要使用STM32的开发工具进行编程。首先,需要编写ADC采样和数据处理的程序,以实现对太阳能电池板输出电压和电流的采集,并进行计算和处理。然后,需要编写充电控制程序,根据电池状态进行充电控制,实现充电过程的安全可靠性。最后,还需要编写电池管理程序和输出控制程序,以实现电池的管理和输出电流的控制。 最后是系统实现。在系统实现过程中,需要将硬件和软件进行集成,并进行调试和测试。首先,需要将硬件电路进行焊接和组装,并连接到STM32微控制器上。然后,将编写好的软件程序烧录到STM32中,并进行系统调试和功能测试。在测试过程中,可以使用示波器等工具进行信号采集和波形分析,以确保系统的正常运行和功能完善。 综上所述,STM32太阳能充电宝系统的设计实现涉及硬件设计、软件设计和系统实现三个方面。通过合理设计和高效编程,可以实现太阳能的收集和储存,并确保充电过程的安全可靠性,为用户提供便捷的充电体验。 ### 回答3: STM32太阳能充电宝系统设计实现是一种利用STM32单片机控制的太阳能充电宝系统。太阳能充电宝系统主要由太阳能电池板、电池管理模块、电池、充电控制电路和输出电路等组成。 系统工作原理如下:太阳能电池板将太阳能转化为电能,并通过电池管理模块对电能进行充电。电池管理模块通过充电控制电路对充电电压和电流进行控制,以保证电池充电过程中的安全性和效率。一旦电池充满电,充电控制电路会停止充电,防止过度充电。当需要给外部设备充电时,系统会将电池的电能通过输出电路转化为所需的电压和电流,供给外部设备使用。 系统设计中,STM32单片机作为主控芯片,负责监测太阳能电池板的输出电压和电流情况,并通过控制电路进行充电控制,包括充电开关的控制、充电电压和电流的调节等。同时,STM32单片机还负责监测电池的充电状态和输出电压,确保系统的安全和稳定。 在实现过程中,我们需要根据太阳能电池板的特性和输出电压需求选择合适的电池管理模块和电池。同时,为了提高充电效率和稳定性,我们还可以考虑加入最大功率点追踪(MPPT)算法,通过优化太阳能电池板输出功率,提高能量转换效率。 总之,STM32太阳能充电宝系统设计实现是一项利用STM32单片机控制的太阳能充电宝系统,通过合理的电路设计和功能实现实现了太阳能的转化和储存,为用户提供便捷可靠的充电服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值