基于51单片机的太阳自动跟踪系统的研究

发布者:科技创客最新更新时间:2011-11-19 关键字:51单片机  自动跟踪系统 手机看文章 扫描二维码
随时随地手机看文章

0 引言
    随着社会经济的快速发展,人类所面临的能源问题越来越突出,太阳能作为一种清洁能源,无疑受到各国的普遍重视。在相同条件下,光照强度越大,太阳能电池输出功率越大。因而增大太阳能电池受光面的光照强度,就可增大太阳能电池输出功率。除了提高太阳光电池本身的转换效应和提高蓄电池充放电效应外,对太阳的自动跟踪是太阳光伏发电系统中另一种提高转换效率的有效手段。因此,在太阳能的利用过程中,实施太阳跟踪是很有必要的。
    对太阳进行跟踪的方法很多,但不外乎为采用确定太阳位置所用的两种坐标系统,即赤道坐标系和地平坐标系,并分为双轴跟踪和单轴跟踪。单轴跟踪已在很多文献作了介绍,本文要讨论的为双轴跟踪。为了叙述方便,在以后的陈述中将两种坐标系下的整个系统统称为太阳能板。
    本文采用在地平坐标系下的太阳跟踪及程序跟踪和传感器跟踪相结合的控制方式,即采用程序控制,利用光学传感器对太阳能板做自动定位和误差校正,而通过单片机控制步进电机来实现。单片机利用时钟提供的日期和时间,计算出太阳能板的预期位置,与编码器提供的当前位置比较,输出控制信号。驱动装置根据单片机提供的信号控制俯仰角电机和方位角电机使太阳能板运行至太阳垂直照射点,从而进行跟踪。传感器在太阳能板位置出现误差时进行校正。

1 系统组成
    系统由时钟、单片机、驱动装置、编码器、太阳能板和传感器6部分组成。系统的核心部件是传感器和单片机。太阳跟踪系统原理见图1。


1.1 智能单元与双坐标步进电机控制系统
    本文的控制系统选用了AT89C51单片机作为智能单元。AT89C51是一种低功耗、低电压、高性能的8位单片机。片内带有一个4 KB的FLASH可编程、可擦除只读存储器。文中所述系统为地平坐标系的双轴自动跟踪控制系统,因此采用双坐标步进电机控制,双坐标步进电机控制就是在x轴方向控制1台步进电机,在y轴方向控制1台步进电机。这2台步进电机同时驱动同一个对象,使对象在一个平面上以任意曲线运动。二维步进电机控制系统原理如图2所示。


    AT89C51单片机通过P2口输出控制脉冲信号,P2.0~P2.3为一路,P2.4~P2.7为一路,分两路各控制1台步进电机。P3.2~P3.5设置为行程保护开关,作二维步进电机正反向最大行程保护。功率放大电路中采用74LS05将单片机P2口脉冲信号进行放大,经9014控制光电耦合器,隔离后,由功率管DK63驱动步进电机的各相绕组,图中L11,L12即为步进电机的各相线圈。[page]

1.2 光电传感器
    本控制系统中所采用光电传感器为6块相同的硅光电池,其中4块用来制作四象限硅光电池,进行误差校正。2块作为判断光照强弱的信号输出传感器。
    太阳跟踪传感器是本系统的关键部件。为了保证太阳能板的受光面始终与太阳光线保持垂直而不发生偏离,采用特制的四象限硅光电池作为太阳跟踪误差校正用传感器。
    如图3所示为四象限跟踪太阳传感器原理图。当光轴对准太阳时,光斑的中心在光轴上。四个象限接收到相同的光功率,输出相同的电压信号。当光轴未对准太阳时即太阳光与光轴成一角度θ时,光线经光学系统照射到四象限光电池上形成的光斑必然发生偏移即(x≠O,y≠O)。由于各象限的光功率与各象限的光斑面积成正比,每个象限被光斑覆盖的面积不同,因此各象限光电池产生的电压不尽相同。根据上述将Vx,Vy进行模数转换,然后送入单片机。单片机通过驱动设备可控制俯仰角电机和方位角电机转动,直到Vx=Vy=O,即x=O,y=O,则表明系统光轴已经对准太阳,根据以上原理即可对太阳能板位置误差进行校正。


    判断光强信号传感器由两块光电池组成,一块接受太阳辐射,另外一块受光面背光。如图4所示,前一块光电池的作用是:判断太阳直射辐射的强度,在直射辐射较弱时不启动跟踪程序,从而避免多云天气的盲目跟踪。后一块光电池的作用是当长时间阴天或多云转晴后太阳重新出现时,判断太阳直射辐射的强度,来决定是否启动跟踪程序。
1.3 采样保持与A/D转换电路
    本系统选用的A/D转换为MAXIM公司生产的MAXl86转换器,是串行输出CMOS芯片。其转换速度快,精度高,耗电省,接线简单,适用于各种仪器仪表和自动控制系统中的数据采集。MAXl86转换器自带有采样保持器,因而系统不再设计采样保持电路。而且与AT89C51为串行连接,接口电路如图5所示。


1.4 时钟芯片DSl302
    DSl302与AT89C51单片机接口采用3线(RST,SCLK和I/O)连接,AT89C51为主芯片负责控制2芯片之间的数据通讯。RST为数据通讯的使能信号,为O则允许通讯;为1则禁止通讯。SCLK为数据通讯的位同步脉冲信号,I/O是双向串行数据传输线。RST,SCLK都是单片机发出的控制信号,如图6所示。

[page]

2 软件设计
    本文介绍的控制系统的软件设计采用了结构化、模块化的程序设计方法。主程序初始化完毕之后,即进入等待状态,单片机控制运行交由中断服务程序控制。所需完成的功能主要由子模块实现。各部分独立完成一定的功能,又有机的结合为一个整体,完成所要求的控制任务。
    程序的结构如图7所示。主程序包括初始化、最初的A/D转换程序。整个程序周期里,初始化程序只在主程序第一次执行时执行一次。初始化之后,进行最初A/D转换,实际上等于对A/D转换滤波器置初始值。


2.1 定时器1溢出中断服务程序
    定时器1溢出中断服务程序包含多个模块,先后在一个T1溢出周期内执行完毕。这些模块包括:控制算法、控制量输出、A/D转换、转换结果处理和分析、异常处理等部分。通过每次T1溢出,周期性的采样、反馈比较、调整、输出,从而实现控制策略。
2.2 控制算法
    编制控制算法子程序包括以下几个步骤:计算当前期望位置;计算补偿通道输出值;计算当前实际位置;计算误差和误差通道输出值;补偿通道输出值和误差通道输出值相加。
2.3 控制量输出
    单片机输出的控制量为脉冲输出,脉冲量的输出可以通过软件定时器,规定脉冲输出的问隔时间,从而规定了脉冲输出的频率。
2.4 A/D转换及其转换结果处理和分析
   
虽然硬件上对模拟输入进行了低通滤波,但是仍然会有一些因素可能造成模拟输入量出现较大的误差。为了防止这种情况的发生,需要进行软件滤波,即数字滤波处理。数字滤波有许多优点:
    (1)数字滤波器是由程序实现的,不需增加硬件设备,数字滤波可以有多个输入通道共用,因而成本低。
    (2)数字滤波由程序实现,不需要硬件设备,因而可靠性好,稳定性高,不存在阻抗匹配问题。
    (3)数字滤波使用灵活,修改方便。而本文采用了算术平均值滤波方法。
2.5 异常处理
    程序运行中会发生多种异常情况,有些可以通过检查输入数据判断,而有一些情况系统可以自行校正。光电传感器误差信号超出死区也应视为异常情况。可能的原因是出现了一干扰光源或太阳能板与太阳位置发生偏离。为了避免在多云情况下的盲目跟踪,如果辐射强度没有达到特定值,则对于误差信号超出死区不作任何操作。太阳能板与太阳位置发生偏离的情况下,系统有能力自动的回复运行状态。
    在每次定时器T1中断时,系统都检查控制字。当控制字表明系统在校正状态时,输出控制量的值由预期位置量和光电传感器误差信号共同计算产生。

3 结语
    系统采用特制的四象限硅光电池作为太阳跟踪误差校正用传感器,并且采用AT89C51单片机作为智能单元,可以实现成本较低的全自动太阳跟踪系统。系统具备较好的稳定性,并能够达到相当好的精确度和灵活性。理论分析和设计结果表明,本方法可以满足太阳跟踪控制的要求。

 

 

 

关键字:51单片机  自动跟踪系统 引用地址:基于51单片机的太阳自动跟踪系统的研究

上一篇:基于C8051F单片机的数字倾角传感器设计
下一篇:基于51单片机的超声波发生器设计方案

推荐阅读最新更新时间:2024-03-16 12:46

51单片机的引脚介绍
当我们拿到一块单片机芯片时,看到这么多的“大腿”,他们都有干什么用的?现在我们就针对这个问题进行讲解。 引脚功能: MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图: l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。 这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,初学者很难理解,这里都是按我自
[单片机]
<font color='red'>51单片机</font>的引脚介绍
检查8051单片机板子问题的一般方法
下面说一下检查8051单片机板子问题的一般方法。 首先检测电源,有经验的人都会这样做。我以前找工作时就有一位面试官问了我这个问题:板子出了问题,首先检查哪里?呵呵!电源!接着检查8051单片机的3个要点:1、用示波器查看晶振是否正常起振,一般的话,这里没有问题的话都会正常工作的;2、单片机31脚,如果没有外部扩展的话,该引脚一般都接高电平;3、检查复位电路是否正常。最后就程序问题了。
[单片机]
C-51单片机动态数码管显示1234.5
利用数码管显示数字,可以在静态数码管上加以改良, 给出短码想要的数字可以自己修改。。。。 下面给显示1234.5的码, 这个没有用到循环语句,比较简单 #include reg51.h #define uchar unsigned char void delay(uchar x) { uchar i; while(x--) { for(i=0;i 120;i++); } } void main() //**主程序** { while(1) { P0=0Xfe; P2=0X06; delay(1); P0=0Xfd; P2=0X5b;
[单片机]
C-<font color='red'>51单片机</font>动态数码管显示1234.5
基于AT89C51单片机的红外遥控器解码器的设计
 1 红外线遥控信号发送器电路 TC9012F的遥控信号   TC9012F为4位专用微控制器,其内部振荡电路的振荡频率fosc典型值为455 kHz。当不按下操作键时,其内部455 kHz的时钟振荡器停止工作,以减少电池消耗。内部分频电路将振荡频率,fosc进行12分频后,变成频率fc=37.9 kHz,占空比为1/3的脉冲载波信号。 红外遥控信号发送器电路由集成电路TC9012F、键盘矩阵电路、驱动器和红外发光二极管组成,遥控信号为37.9 kHz的脉冲载波被遥控编码脉冲调制的已调波,如图1所示。   遥控编码脉冲由引导码、用户码、功能码和功能码的相反码组成,用户码是同一组码发送两次,如图2所示。用户码
[单片机]
基于AT89C<font color='red'>51单片机</font>的红外遥控器解码器的设计
51单片机 ret和reti
原来在8051构架中--中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另一个则指出CPU是否正在执行低优先级中断服务程序,该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址的,所以无法用软件直接清零。” 通常情况下,在普通的汇编子程序中用RET做返回,在中断服务子程序中用RETI起中断返回作用。两条指令都能从堆栈中弹出断点地址并装入PC中,使 CPU回到原来主程序的断点处继续运行。然而,RET和RETI有本质的区别:当某一中断源响
[单片机]
51单片机对LCD1602液晶显示的驱动控制设计
利用串行A/D转换器TLC549对输入信号电压源进行采集转换成数字信号给51单片机,经单片机进行数据处理后给1602液晶显示。 误差小于1%. #include #include #define uint unsigned int #define uchar unsigned char uchar LCD[6]; //电压数据转换成LCD1602液晶字符显示 uint Volt; sbit DO= P1^0; //时钟 sbit CS= P1^1; //片选 sbit CLK = P1^2; //数据输出 sbit RS = P2^0; //1602液晶数据/命令选择端 sbit RW = P2^1; //1602液晶读写端
[单片机]
<font color='red'>51单片机</font>对LCD1602液晶显示的驱动控制设计
51单片机的简介——定时器、计数器
8051有两个16位的定时器/计数器T0、T1,8052还有第三个定时器/计数器T2,通过内部编程都可以设定为内部定时器和外部计数器。 1、方式寄存器TMOD 特殊功能寄存器TMOD是TO、T1的工作方式寄存器,其格式如下: TMOD低四位为T0方式字段,高四位为T1方式字段。复位时TMOD的所有位置0。 (1)工作方式选择位M1、M0 定时器/计数器有四种工作方式,它们由M1、M0的取值决定,对应关系如下图: (2) 方式选择位C/T C/T=0为定时器方式,以fosc(晶振频率)的12分频作为计数信号,即每个机器周期定时器加1。 C/T
[单片机]
MCS-51单片机与无线调制器的综合应用
GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和方法。
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved