【单片机毕业设计】【yq-018】太阳能追光

一、基本介绍

项目名:
基于单片机的太阳能追光系统设计

项目名:太阳能自动追光
单片机类型:STM32F103C8T6
具体功能:
1、 通过四个光敏电阻检测四个方向的光照强度
2、 利用两个舵机控制太阳能板朝着光照最强的方向转动
3、通过太阳能板给锂电池充电,并通过ADC检测锂电池电压,超过最大电压后不在进行充电
4、 通过四个按键可手动控制太阳能板上下左右旋转,第五个按键控制模式切换
5、当太阳能板跟随阳光到最西边,回到东边
6、通过显示屏显示数据
扩展功能:通过蓝牙模块将测量数据发送到手机端,并可以控制控制太阳能板上下左右旋转、切换模式

二、资 料总览

实物资料

请添加图片描述

仿真资料

请添加图片描述

三、51单片机部分资料展示

1、实物图展示

单片机型号:STC89C52
供电接口:TYPE-C
板子类型:PCB集成板,厚度1.2,两层板(上下层覆铜接地)
器件类型:元器件基本上为插针式,个别降压芯片会使用贴片式。

在这里插入图片描述

2、仿真图展示

仿真软件版本:proteus8.9
电路连线方式:网络标号连线方式
注意:部分实物元器件仿真中没有,仿真中会用其他工作原理相似的元件代替,这样可能导致实物程序和仿真程序不一样

在这里插入图片描述

3、原理图展示

软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构图

在这里插入图片描述

4、PCB图展示

由原理图导出,中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。
)
在这里插入图片描述

四、32单片机部分资料展示

1、实物图展示

单片机型号:STM32F103C8T6
供电接口:TYPE-C
板子类型:PCB集成板,厚度1.2,两层板(上下层覆铜接地)
器件类型:元器件基本上为插针式,个别降压芯片会使用贴片式。
在这里插入图片描述

2、原理图展示

软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
在这里插入图片描述

3、PCB图展示

由原理图导出,中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。

在这里插入图片描述

五、系统框图

绘制软件:VISIO
在这里插入图片描述

本设计以单片机为主要控制芯片,以及输入模块和输出模块组成完整的基于单片机的太阳能追光系统设计,主要利用太阳能板四周光照强度存在误差进行偏转,使用太阳能板使得光照强度更好的利用。该设计包括中央控制部分,输入部分和输出部分。中央控制部分使用单片机,其主要功能是获取数据的输入部分,经过内部处理后,控制输出部分。输入由四部分组成,第一部分是光敏电阻,对太阳能光照强度进行检测,通过对比太阳能板上下左右板子的光照强度,当出现光照强度差的时候,控制太阳能板偏转向光照强度较高的地方,另外在手动模式下,通过按键进行上下左右四个方向进行追光。第二部分是电池电压检测模块,通过该模块可以检测当前电池的电压;第三部分是独立按键模块,通过按键可以控制太阳能板旋转。第四部分是充放电一体模块,通过该模块将太阳能板上的电能存储在电池之中给板子进行供电。输出包括三个部分:第一部分是显示模块,可以显示门太阳四周的光照强度值及其当前控制的模式,也可以显示电池的电能。第二部分是舵机,用来转动太阳能板的方向,使得向光照强度较高的地方进行偏转;第三部分是家用电器,将太阳能板检测到的光照强度转换为电能,供电器进行工作;除此之外还有蓝牙和手机连接模块,可以将检测到的数据传输到手机,也可以通过手机发送指令控制太阳能板的工作。

六、部分程序展示

软件版本:keil5
注意:逻辑程序和驱动程序分开,分布于main.c和其他.c文件

*******处理函数
*****/
void Manage_function(void)
{
if(flag_mode == 0) //自动模式下
{
if(light_1 > (light_3+15)) //上的光照强度大于下的光照强度
{
if(motor_duoji_cout_2 < 1950) //控制上下转动的舵机向上转
motor_duoji_cout_2+=10;
TIM_SetCompare4(TIM1,motor_duoji_cout_2);
}
else if(light_3 > (light_1+15)) //下的光照强度大于上的光照强度
{
if(motor_duoji_cout_2 > 1750) //控制上下转动的舵机向下转
motor_duoji_cout_2-=10;
TIM_SetCompare4(TIM1,motor_duoji_cout_2);
}

	if(light_2 > (light_4+15))															//左的光照强度大于右的光照强度
	{
		if(motor_duoji_cout < 1950)														//控制左右转动的舵机向左转
			motor_duoji_cout+=10;
		TIM_SetCompare1(TIM1,motor_duoji_cout);
	}
	else if(light_4 > (light_2+15))													//右的光照强度大于左的光照强度
	{
		if(motor_duoji_cout > 1750)														//控制左右转动的舵机向右转
			motor_duoji_cout-=10;
		TIM_SetCompare1(TIM1,motor_duoji_cout);
	}
if(motor_duoji_cout >= 1950)                            //如果转到最左边即西边,回到最右边即东边
{
  motor_duoji_cout = 1750;
  TIM_SetCompare1(TIM1,motor_duoji_cout);
  motor_duoji_cout_2 = 1800;
  TIM_SetCompare4(TIM1,motor_duoji_cout_2);
  Delay_ms(1000);
  Delay_ms(1000);
}
}
if(bat_value > 4.1)                                       //如果电池充满,断开充电
	RELAY_B = 1;
else
	RELAY_B = 0;

}

### STM32单片机太阳能追光系统中的毕业设计论文 STM32作为一款高性能的ARM Cortex-M系列微控制器,在嵌入式领域有着广泛的应用。相较于Arduino平台,STM32提供了更高的性能、更低的功耗以及更丰富的外设接口,因此非常适合用于复杂的控制系统,如太阳能追光系统的实现。 #### 系统概述 基于STM32太阳能追光系统旨在通过实时监测太阳位置并动态调整光伏面板角度来最大化能量采集效率。该系统通常由以下几个部分组成:光照传感器阵列、步进电机驱动电路、电源管理模块以及核心控制单元——STM32单片机[^1]。其中,光照传感器负责获取环境光线强度数据;步进电机则用来精确调节光伏板的姿态角和平面倾角;而电源管理系统不仅为整个设备供电还能够存储多余电能供夜间或阴雨天使用。 #### 控制策略 为了达到最佳跟踪精度,可以选用比例积分微分(PID)闭环反馈机制来进行误差修正处理。具体而言就是先设定目标方位值再依据实际测量所得偏差量计算出相应的校正参数最终作用于执行机构完成动作输出过程形成一个完整的自动化流程链路[^2]。此方法具备响应速度快收敛特性良好等诸多优点特别适合应用于此类场景当中。 ```c void PID_Calculation(float *error,float Kp,float Ki,float Kd){ static float pre_error=0; static float integral=0; integral += (*error)*Ki; // 积分项更新 float derivative = ((*error)-pre_error)*Kd;// 微分项计算 float output = (*error)*Kp +integral+derivative ;// 总输出等于三者之和 pre_error=*error; // 更新前一时刻误差值以便下次循环调用 } ``` 上述代码片段展示了如何利用软件层面实现基本的比例-积分-微分运算逻辑功能模块化封装便于后续扩展维护同时也提高了程序可读性和重用率水平. #### 实物构建与调试技巧 当搭建好硬件框架之后进入联调阶段需要注意几个方面事项:首先是确保各子组件之间通信协议匹配无误其次是合理配置定时器资源分配防止发生冲突现象再次就是要充分考虑外部干扰因素可能带来的影响比如温度漂移效应或者电磁兼容性问题最后一点也是最重要的一点那就是要反复验证算法模型的有效性直至满足预期指标为止[^3]. ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值