173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

c51单片机太阳

htxw 2023-03-15 资讯中心 30 ℃

跪求...基于51单片机自动跟踪阳光太阳能热水器控制系统的设计

对绿色能源的开发和利用是响应我国节能减排,环保政策的举措,太阳能作为可持续,零污染,具有很高的环保价值和经济效益,高效利用太阳能还可以有效替代部分化石能源,从而降低因石化能源燃烧导致的污染,减轻雾霾。然而农村太阳能丰富,却没能得到很好的利用,即便现有的发电产品对太阳能电池板也大多采用固定支架。课题对此提出了能够跟踪太阳方向的云台支架,可实现太阳能电池板自动调节而始终面向光线最强的一面,提高太阳能发电的利用率。课题从云台,电机驱动,控制器,光线传感器,液晶显示等构成,课题成果不仅可以用到太阳能发电,还可以用到其它的向光场所,如天文观测等具有较高的实用价值。

随着时代的进步与科技的飞速发展,使得对能源的需求随之增加,对不可再生能源的过度依赖[1],从而使得不可再生能源的存储量急剧减少,一些不可再生能源(石油)被视为战略资源,据目前统计,煤炭、石油、天然气也会在岁月的实践中而日趋枯竭,消耗殆尽。这些不可再生能源的产生显然跟不上人类对其的需求,为更好的实现可持续发展,本课题提出了一种太阳追踪的可行方案,可以大大提升对太阳能的利用,减少对不可再生资源的过度依赖。

为了解决人们对不可再生资源的过度依赖和对清洁能源的高利用率。提出设计一款零污染高效率的装置——太阳追踪器。通过电机,控制器,采光板光线传感器等元器件之间的相互配合,实现对太阳光照射最强的方位,实现全方位无死角跟踪,恰巧正好急需这样一款具有安全、环保、高效率、以及取之不尽用之不竭的特点,也很方便就可以获取,如风能和潮汐能一样是绝对的无污染清洁能源,这也就很好的阐述了光能的可行性[2]。——对此提出太阳跟踪装置设计与制作。

优点:太阳作为一个取之不尽用之不竭的能源。在《太阳能利用技术》[3]就有相关的提到,所到达地球表面能量等同于每秒向地球源源不断的投放了500万吨煤炭。阳光所到之处,皆为财富,免费使用的同时也不需要考虑任何的运输费用以及零污染等特性。

缺点:即便如此的看似完美无缺,也存在着两个致命性缺点[4]:一是能流密度很小;二是太阳的光照强度也会因为(天气、白夜等)因素的不同而有着很大的差距,很难长时间维持在恒定值,这也在一定程度上大大的影响了使用效率[5]。

国外太阳追踪器:对太阳能的使用在两千零四年到两千零六年太阳能的发电量都是惊人的4961MW[6],在一九九七年,美国的Blackace研制了单轴追踪器,热接收率提高了百分之十五......,后期围绕高效率,轻质量展开。在太阳能游艇、太阳能飞机、太阳能瓦片等方面得到运用,也见证了太阳能利用的高效率性[7]。

国内太阳追踪器:在应用市场上面得到了不断扩张,对于太阳能追踪器的利用那也是一个相当热门的谈话主题,途径多年的经验,将其用在了太阳能热水器、太阳能路灯以及西部计划、利用太阳能发电、太阳能供暖等等[8]。

更多的往往是采用单轴跟踪的方式,相比之下更需要多轴,实现全方位无死角跟踪。

针对不同条件下,提出了自动控制和手动调节的两种工作方式:

其中以“自动模式”概述:在自动追寻的过程中,会自动判断光的强度的大小,若下面光照强度大于上面光照强度,STM32单片机就会直接驱动上端电机向下翻转;以便于在下午太阳西落的时候,获得更多的光照,若上面光照强度大于下面光照强度,STM32单片机就会直接驱动上端步进电机向上运动;若上下两个方位的光照强度均等,上端步进电机不进行动作。在上下光照均匀,左右方向运动的情况,右方位的光照强度大于左方位,STM32单片机就直接驱动下方位第一个步进电机向左方位一定角度转动;若左方位的光照强度大于右方位的光照强度,STM32单片机就直接驱动下方位第一个步进电机向左方位进行运动;当左右方位采光度也保持几乎均应的时候光照,那么下方位的第一个电机也将保持不动。

“手动模式”状态进行使用按键手动来完成设备状态的切换。四个按键对应控制电机完成:上、下、左、右的翻转动作。通过点动的方式来控制驱动步进电机的实际运动。

在给设备系统进行上电后,系统最初为“自动模式”,这样可以更好的在不受人为干预的情况下实现对太阳能的最大接收。

编译语言的选取

方案一:C语言

简洁紧凑、灵活方便;运算符的丰富性;数据结构的丰富性;结构式语言;语法局限性小,程序编写自由度大;通过对物理地址的直接访问,使得完全可以对硬件实现直接控制;程序执行效率高。

C语言面向过程,最主要的在于算法和数据结构。通过一个过程,对输入进行运算处理得到输出。

方案二:C++

C++语言是面向对象的语言,在C的基础上添加了面向对象、模板等现在程序设计语言的特性。拓展了面向对象设计的内容,使之更加符合现代程序设计的需要。

看似C++比C多了很多优点和特性,但C++并不是所有场合都适用,很多嵌入式开发系统,都只提供了C语言的开发环境,而没有提供C++的开发环境。很多C++语言不愿意干的脏活累活,C语言干起来快活得很。而C++因为过于复杂,在这方面就稍逊一筹了。

方案三:Java

Java是一种解释性语言,Java人气极高,但其代码由于需要在运行前进行解释因此性能表现更差。C++会被编译为二进制形式,因此其能够立即运行且速度更快。两个程序都足够大、而且C++的代码经过优化,两者的速度差就会变得很显著甚至很惊人,C++会比java快很多。

从系统的复杂性出发来考虑,同时整个过程的计算量比较大,因此我选用了浮点数的计算方式,选用方案一作为整个系统编译方式。

2.2 控制系统总体方案选取

方案一:视日寻迹追踪模式

这样的一种模式,是基于天文学公式来得出太阳在不同时候的理论性的方位角和俯仰角,在后根据太阳每天在当地实际的运行轨迹位置编写控制算法程序,通过使用控制算法的方式来实现对太阳所在位置的计算,最后通过驱动太阳能板的两个步进电机来达到俯仰和方位上的转动。有点是对外界环境的依赖小,同是也存在弊端,那就是不管外界环境是何种天气,它都会以同样的工作方式运动,增加了不必要的能耗和元器件的寿命磨损。

太阳的俯仰角h和方位角A的两个位置参数,可表达如下所示:

δ为赤纬角,Φ是本地纬度,Ω表示太阳时角。

方案二:光电追踪模式

该模式的核心算法是利用光敏传感器对太阳位置进行检测。具体方法:在遮阳板两侧完全对称地安装光敏传感器,当太阳光垂直照射在太阳能光伏电池板上时,安装在两侧上的光敏传感器所产生的电信号相等,将这两路信号经过放大后送入比较器进行比较,此时不驱动步进电机进行转动。当太阳位置移动后,遮阳板对阳光进行遮挡,此时两侧的光敏传感器产生的电信号不相等,从而经过放大比较后产生差信号,电机开始运动,完成太阳跟踪过程。

通过两者的比较,选择方案二,简单易操作性,更适合被普及广泛使用,在同等使用条件下,最简方案,则是最优方案。

2.3主控系统选择

方案一:51单片机作为控制芯片。主要是表现在:主要控制参数是使用设置寄存器变量得以实现,在程序的修改方面,也是相当的方便快捷,成本也是相对低廉,性能与相对简单的太阳能跟踪装置系统匹配;数字化的控制系统,可以达到较高的精度。

方案二:采用FPGA这样的大规模可编程逻辑器件,但本题属于控制类,即现场可编程门阵列[WJ1] ,它是在PAL、EPLD等可编程器件的基础上进-一步发展的产物。

方案三:ARM作为一种高性能嵌入式系统。考虑到方案的可实行性,STM32可以很好的解决数据处理和控制功能,十分适用于太阳能跟踪,虽是ARM价格昂贵,但是在后期的可拓展空间更大。[WJ2]

结合本次设计的任务要求,以及上诉三种方案的相对比较,最后选用方案三更适合本课题的设计标准,具体采用STM32F103C8T6。

2.4电机选择

方案一:选择步进电机,然而步进电机的最大优点就是可以精确地控制电机步数和角度,缺点是价格昂贵。

方案二:选择直流电机。价格便宜是它的一大亮点,通过减速齿可以提高扭力,具有更大的负载,但是对电机的高精度控制直流电机达不到设计要求。

步进电机作为一种将电脉冲转换成相应角位移或线位移的电磁机械装置。通过直接控制输入的脉冲数量,直接控制其启停,启动是速度快,步距角和转速只取决于脉冲频率,受外界影响因素小。因此,对于本设计任务要求,为更精确地完成对角度值的精度把控,更好地利用太阳能,因此我选用方案一作为本次课程设计的驱动电机。

2.5步进电机驱动系统选择

方案一:L298专业电机驱动模块的选择,这类驱动模块的操作方便以及接口简单同时他们既可以驱动步进电机,也可驱动直流电机。

方案二:三极管等分立元件搭H桥。亮点在于实惠型,控制方式简单以及结构简单。优点的同时也伴随着弊端的存在,电流的承载能力比较小,相同的驱动能力受到限制,分立元件则体积较大同时稳定性也得不到保证。

方案三:采用集成芯片,ULN2003。 .

达林顿管ULN2003,该芯片最多可一次驱动八块步进电机,本设计作用于两个步进电机,在实际的使用中,往往起着放点输出的作用用于驱动大负载的步进电机等。

本次设计综合考虑,依据实际设计需求,选择方案三作为步进电机的驱动系统。

2.6实体结构框架选择

方案一:两电机互相处以垂直状态,电机一是左右的转动而电机二是上下的转动,在不引入外界条件辅助设备的情况下会出现运动死角,从成本化出发是不可取的。

方案二:将两个电机由之前的垂直安装,改变为大于90°的安装,在不引入外部设备的情况下,可以很好的避开运动死角,从而可实现全方位无死角跟踪,综合上述情况选择方案二进行本次的实体结构设计。

2.2系统设计

2.2.1 单片机构成如下图:

逻辑不通顺,要指出FPGA不适用于本题的缺点

STM32整体比FPGA便宜很多,这条论证建议修改,或者做一个成本对比表再下结论

控制方式:第一步就是将数据程序输入到输入设备里面,输入设备将程序传输给运算器CPU和存储器,各自程序都对应的传输到控制器里面,由控制器完成完成相互的指令传递,最后都是作用于输出设备,在输出设备上显示出来的结果就是最初程序所要表达的效果。

2.2.2 系统整体控制框图如下:

图2–2–2 系统整体控制框图

控制方式:完成整个驱动控制,第一步就是感光元件及光敏电阻传感器对外界光的采集,完成电压跟随,通过A/D转换,然后通过电压的比较,使用STM32F103C8T6单片机控制电机的驱动,最终完成不同电机在不同的光照强度情况下不同方向的运动,最后实现对光的最大化接收。

2.2.3 电机控制框图如下:

图2–2–3 电机控制框图

控制方式:通过光敏传感器对光的采集,实现了最后对电机运动方式的不同选择和控制。

当感光元器件第一组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成水平方向的电机正转,并返回最初状态。

当感光元器件第二组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成水平方向的电机反转,并返回最初状态。

当感光元器件第三组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成垂直方向的电机正转,并返回最初状态。

当感光元器件第四组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成垂直方向的电机反正,并返回最初状态。

当所有的感光元器件都处于接受管的均匀照射时,此时的光照强度几乎大小相等,也就电机的状态保持不运动。

2.2.4整体电路原理图如下:

图2-2-4 整体电路原理图

系统软件总体设计流程如图 2-2-4 所示。系统启动后,软件先进行初始化等工作,当程序初始化完成后,通过 感光元器件获得当前的光照强度,然后根据初始化的参数,控制步进电机将太阳能光伏板转动到理论的初始状态,预定方位。将太阳能光伏板转动到理论位置后,程序开始判断步进电机转动模式是手动模式还是自动,初始默认状态是自动跟踪模式。

当手动模式时,人为调整电机控制上下左右 4 个按键的状态,使得电机按照人们预想的方向进行运动,以此来得以控制四个方位的不同垂直转动和水平移动的俯仰角和方位角。当程序判断为自动模式后,开始自动读取检测电路的返回信号,当检测到是各个方位的光照强度值有较大的的差异是,那么单片机就发出控制指令控制步进电机进行转动,升压模块是为了给整个系统稳定供电而存在。

可以用51的单片机来控制一个升降压的DC-DC实现48V太阳能系统的MPPT充电么?我太阳能板OC电压50~62V

可以,单片机的作用就是用来控制开关的开合,然后就可以通过电感电容等储能元件来提高或者降低电压了。

求一个51单片机太阳能控制器的代码~!!!

/*******************************************************

* 程序名称:main.c

* 程序功能:主程序文件

* 程序作者:吴鉴鹰

* 创建时间:2014-3-10

* 修改时间:

* 程序版本:V0.1

******************************************************/

/*

* 包含的头文件

*/

#include "reg51.h"

#include "inc/hc595.h"

#include "inc/delay.h"

#include "intrins.h"

/* 存储待发送的数据 */

code unsigned char ucDataOneTab[16] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};

code unsigned char ucDataTwoTab[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x02, 0x04, 0x08, 0x10, 0x20,0x40,0x80};

//code unsigned char ucDataOneTab[16] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};

//code unsigned char ucDataTwoTab[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, 0x40, 0x20, 0x10, 0x08, 0x04,0x02,0x01};

/******************************************************

* 函数名称:main

* 函数功能:主函数

* 入口参数:void

* 出口参数:

*******************************************************/

int main()

{

unsigned int i;

while (1)

{

for (i = 0; i 16; i++ ) //改成16个依次亮i8改成i16

{

SendData(ucDataOneTab[i], ucDataTwoTab[i]);

Delay1ms(1000);

}

}

return 0;

}

新概念51单片机C语言教程的作品目录

第1篇入门篇

1.1单片机概述

1.1.1什么是单片机

1.1.2单片机标号信息及封装类型

1.1.3单片机能做什么

1.1.4如何开始学习单片机

1.251单片机外部引脚介绍

1.3电平特性

1.4二进制与十六进制

1.4.1二进制

1.4.2十六进制

1.5二进制的逻辑运算

1.5.1与

1.5.2或

1.5.3非

1.5.4同或

1.5.5异或

1.6单片机的C51基础知识介绍

1.6.1利用C语言开发单片机的优点

1.6.2C51中的基本数据类型

1.6.3C51数据类型扩充定义

1.6.4C51中常用的头文件

1.6.5C51中的运算符

1.6.6C51中的基础语句

1.6.7学习单片机应该掌握的主要内容

2.1Keil工程建立及常用按钮介绍

2.1.1Keil工程的建立

2.1.2常用按钮介绍

2.2点亮第一个发光二极管

2.3while语句

2.4for语句及简单延时语句

2.5Keil仿真及延时语句的精确计算

2.6不带参数函数的写法及调用

2.7带参数函数的写法及调用

2.8利用C51库函数实现流水灯

第2篇内外部资源操作篇

3.1数码管显示原理

3.2数码管静态显示

3.3数码管动态显示

3.4中断概念

3.5单片机的定时器中断

4.1独立键盘检测

4.2矩阵键盘检测

5.1模拟量与数字量概述

5.2A/D转换原理及参数指标

5.3ADC0804工作原理及其实现方法

5.4D/A转换原理及其参数指标

5.5DAC0832工作原理及实现方法

5.6DAC0832输出电流转换成电压的方法

第6章串行口通信原理及操作流程

6.1并行与串行基本通信方式

6.2RS-232电平与TTL电平的转换

6.3波特率与定时器初值的关系

6.451单片机串行口结构描述

6.5串行口方式1编程与实现

6.6串行口打印在调试程序中的应用

第7章通用型1602,12232,12864液晶操作方法

7.1液晶概述

7.2常用1602液晶操作实例

7.3常用12232液晶操作实例

7.4常用12864液晶操作实例

第8章I2C总线AT24C02芯片应用

8.1I2C总线概述

8.2单片机模拟I2C总线通信

8.3E2PROMAT24C02与单片机的通信实例

第9章基础运放电路专题

9.1运放概述及参数介绍

9.2反相放大器

9.3同相放大器

9.4电压跟随器

9.5加法器

9.6差分放大器

9.7微分器

9.8积分器

第3篇提高篇

第10章定时器/计数器应用提高

10.1方式0应用

10.2方式2应用

10.3方式3应用

10.452单片机定时器2介绍

10.5计数器应用

第11章串行口应用提高

11.1方式0应用

11.2方式2和方式3应用

11.3单片机双机通信

11.4单片机多机通信

第12章指针

12.1指针与指针变量

12.1.1内存单元、地址和指针

12.1.2指针变量的定义、赋值与引用

12.2指针变量的运算

12.3指针与数组

12.3.1指针与一维数组

12.3.2指针与多维数组

12.4指针与函数

12.4.1指针作为函数的参数

12.4.2指向函数的指针

12.4.3指针型函数

12.5指针与字符串

12.5.1字符串的表达形式

12.5.2字符指针作为函数参数

12.5.3 使用字符指针与字符数组的区别

12.6指针数组与命令行参数

12.6.1 指针数组的定义和使用

12.6.2指向指针的指针

12.6.3 指针数组作为main()函数的命令行参数

12.7指针小结

12.7.1指针概念综述

12.7.2指针运算小结

12.7.3等价表达式

12.8C51中指针的使用

12.8.1指针变量的定义

12.8.2指针应用

第13章STC系列51单片机功能介绍

13.1单片机空闲与掉电模式应用

13.2“看门狗”概念及其应用

13.3用软件实现系统复位

13.4内部扩展RAM的应用

13.5扩展P4口的应用

13.6内部E2PROM的应用

13.7STC89系列单片机内部A/D应用

13.8STC12系列单片机内部A/D应用

13.9STC12系列单片机的PCA/PWM介绍

13.10STC12系列单片机的SPI接口介绍

13.11STC12系列单片机的“576MHz”超速运行

第4篇实战篇

第14章利用51单片机的定时器设计一个时钟

14.1如何从矩阵键盘中分解出独立按键

14.2原理图分析

14.3实例讲解

第15章使用DS12C887时钟芯片设计高精度时钟

15.1时钟芯片概述

15.2DS12C887时钟芯片介绍

15.3如何用TX-1C实验板扩展本实验

15.4原理图分析

15.5实例讲解

第16章使用DS18B20温度传感器设计温控系统

16.1温度传感器概述

16.2DS18B20温度传感器介绍

16.3实例讲解

第17章太阳能充/放电控制器

17.1控制器原理图分析

17.2控制器板上元件介绍

17.3实例讲解

第18章VC、VB(MSCOMM控件)与单片机通信实现温度显示

18.1VCMSCOMM控件与单片机通信实现温度显示

18.2VBMSCOMM控件与单片机通信实现温度显示

第5篇拓展篇

第19章使用Protell99绘制电路图全过程

19.1绘制电路板概述

19.2建立工程

19.3制作元件库

19.4添加封装及制作PCB封装库

19.5错误检查及生成PCB

19.6布线电气特性设置

19.7自动布线和手动布线

第20章ISD400x系列语音芯片应用

20.1ISD400x系列语音芯片介绍

20.2ISD400x系列语音芯片操作规则

20.3ISD400x系列语音芯片应用实现

第21章电机专题

21.1直流电机原理及应用

21.2步进电机原理及应用

21.3舵机原理及其应用

第22章常用元器件介绍

22.1二极管

22.2电容

22.3场效应管

22.4光耦

22.5蜂鸣器

22.6继电器

22.7自恢复保险

22.8瞬态电压抑制器

22.9晶闸管(可控硅)

22.10电荷泵

第23章直流稳压电源专题

23.1整流电路

23.2滤波电路

23.3稳压电路

23.4集成稳压模块的使用

23.5串联开关型稳压电源

第24章运放扩展专题

24.1简单低通滤波器

24.2“电流-电压”转换电路

24.3光电放大器

24.4精密电流源

24.5可调参考电压源

24.6复位稳定放大器

24.7模拟乘法器

24.8全波整流器和平均值滤波器

24.9正弦波振荡器

24.10三角波发生器

24.11自动跟踪对称电源

24.12可调实验电源

24.13运放相关术语表

附录A天祥电子开发实验板简介

A.1TX-1C51单片机开发板(配套详细视频教程)

A.2AVR单片机开发板(配套详细视频教程)

A.3PIC单片机开发板(配套详细视频教程)

A.4J-Link全功能ARM仿真器

A.5三星S3C44B0ARM7入门级开发板

A.6三星S3C44B0ARM7提高级开发板

A.7TX-51STAR51单片机开发板(配套详细视频教程)

参考文献

基于C51单片机太阳能充电器

没空帮你写,基本说一下,一个模数转换芯片对电压采样,再写个显示程序,网上多的是,改改就行,最后的功能用if语句就行,结合实物很简单的

如何利用单片机控制太阳能追光

可以利用单片机定时器作为时钟追光,因为太阳的方位角和时间是对应不变的,同一地点,每天相同时间,太阳的方位角是固定的,单片机控制电机带动执行机构每30

分钟或1小时转动相应角度即可。高度角随季节变化,不需要每天都调整,调整的话,手动即可,2

个方向同时自动调整机构复杂,成本高。

c51单片机太阳的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:c51单片机太阳

<