太阳能跟踪发电系统设计报告
太阳能跟踪发电系统设计报告团队成员:苏龙斌专业班级:电子科学与技术 1301 班指导老师:孙弋设计时间: 2016-3-25 题目:太阳能跟踪检测系统组员:苏龙斌 李航 马金龙组长任务:课题的提出与优化,系统的总体设计,软件联调及系统整体测试。组员任务:硬件系统开发及电路设计,软件设计及联调测试。一 . 设计背景能源是人类社会存在和发展的重要物质基础。随着社会的飞速发展,人类对能源的需求日益增大, 但传统的煤炭型化石能源属于不可再生能源, 不但利用效率低,严重污染环境,而且还面临着过度开采而带来的资源枯竭的问题。鉴于传统化石能源的局限性,发展新型可再生无污染绿色能源势在必行。因此,诸如太阳能,风能,潮汐能,地热能等新型能源得到大力发展,其中由于太阳能资源庞大,易于获取而被人们广为发展和利用。太阳能发电作为一种解决当下能源危机的清洁能源对人类在探索绿色可再生能源的道路上有着重要意义。二.设计原理通过光敏电阻感应光照强度不断调整太阳能电池板的方向,使太阳能电池板始终获得最大采光面积,将太阳能电池板产生的电能存储在蓄电池中,进行利用。三.电路设计( 1) 电 路图环境检测模块分布电路图:单片机控制电路 2 采用 STC89C52单片机具有低功耗,高性能,具有 8K在系统可编程 Flash 存储器的特点。 STC89C52为众多嵌入式控制应用系统提供高灵活,超有效的解决方案。工作电压: 5.5V-3.3V 工作频率: 0-40MHZ 用户应用程序空间为 8K字节片上集成 512 字节 RAM 通用 I/O 接口( 32 个)具有看门狗功能工作温度范围: -40-+85 摄氏度( 2)功能描述1、开机后,欢迎界面过后,进入密码输入界面,密码输入正确后,进入系统功能选择界面。2、按模式选择键选择“ work”条目,并按下去顶按钮,系统开始工作,云台及太阳能电池板开始寻找光线较强的方向。当电池板朝向光线最强的方向后,系统开始微调,保证电池板始终朝向强光方向。3、 由于云台采用 2 个 9g 的舵机控制, 而舵机不能 360 度连续旋转, 自由度大概 200度左右,存在死区。所以当光源位于云台的死区方位时,云台无法朝向光源的。但由于太阳光的水平面内角度变化在 200 度以内,所以要调整好系统放置位置,系统可以一直跟踪阳光的,若系统位置放置不对,阳光在系统死区内,这样当云台到达死区时,系统就会停止工作,并且蜂鸣器报警。4、 云台下方有一块雨水传感器和一颗光敏电阻, 当有水滴到雨水传感上或者是光线变暗后,系统将云台调整到睡眠姿势进入保护模式,然后系统进入掉电模式,除了外部中断还在工作,其他的外设如液晶屏, IO 口停止工作,进行省电。当雨水干后并且光线亮到一定程度后,系统自动进行唤醒,重新工作,追踪阳光。当然,雨水传感器和光线传感器的灵敏度都是可以调节的。5、系统正常工作时, 1602 液晶屏上会显示两个舵机旋转的角度和太阳能电池板产生的电压值。6、 系统判断阳光方位功能是由分布在太阳能电池板周围四个方向的 4 个光敏电阻实现的,采用电压比较器的功能判断那个方位的光线最强。当然,光线平衡点是可以通过电位器调节的。7、进入系统功能选择界面后,选择“ systemset ”可以进行系统参数的设置,其中包括,舵机每次调整姿态的幅度和频率,以及密码设置和密码功能是否启用,还有蜂鸣器的开关是否打开。8、系统配带了一只万能红外遥控器,它具有系统自带按键的全部功能,除此之外,遥控器还具备按键不具有的功能,包括主动休眠 / 唤醒功能,和强制破解密码功能。( 3)系统组成1、主控芯片: STC89C1/C52/12c5a60s2一片2、显示器件: 1602 液晶屏一块3、云台驱动: 2 个 9g 舵机4、感光元件:光敏电阻 5 颗5、通信模块: PL2303USB转串口模块一块6:环境检测模块:雨水传感器一片7:控制模块:系统按键 6 个和红外遥控板一块8:报警模块:蜂鸣器一个9:电压比较器: LM358芯片两片10:逻辑控制器: 74LS00芯片一片11:模数转换芯片: ADC0831芯片一片四.软件设计主程序:#include “reg52.h“ // 包含单片机寄存器的头文件#include “uic.h“ #include “key.h“ #include “duoji.h“ #include “delay.h“ #include “lcd.h“ #include “disp.h“ #include “beep.h“ #include “eeprom.h“ #include “password.h“ #include “adc0831.h“ #include “infrared.h“ #include “sleep.h“ void systeminit() { lcd_init(); bee_init(); sleep_init(); servo_init(); infrared_init(); welcome(); delay(400); } void main() { systeminit(); secret_unlock(); // PCON=0x02; while(1) { mode_set(); } } 其他模块程序:#include “lcd.h“ #include #include #include “delay.h“ #include “uic.h“ sbit E=P1^2; //1602 使能引脚sbit RW=P1^1; //1602 读写引脚sbit RS=P1^0; //1602 数据 / 命令选择引脚sbit light=P2^5; /******************************************************************** * 名称 : delay() * 功能 : 延时 , 延时时间大概为 5US。* 输入 : 无* 输出 : 无***********************************************************************/ void light_on(void) { light=1; } void light_off(void) { light=0; } //FIRMWARE FOR SLAVE #include #include #include “adc0831.h“ #include “uic.h“ sbit dat=P3^5; sbit sclk=P3^6; sbit cs=P2^4; uchar adc0831(void) { uint i,temp; dat=1; _nop_(); _nop_(); sclk=0; _nop_(); _nop_(); cs=0; _nop_(); _nop_(); sclk=1; _nop_(); _nop_(); sclk=0; _nop_(); _nop_(); sclk=1; _nop_(); _nop_(); sclk=0; for(i=0;i<8;i++) { _nop_(); _nop_(); temp=temp<<1; if(dat) temp=temp|dat; sclk=1; _nop_(); _nop_(); sclk=0; } cs=1; return (temp); } uint getvol(void) { uint ad,bai,shi,ge; ad=adc0831(); bai=ad/51; shi=ad%51*10/51; ge=ad%51*10%51*10/51; return 100*bai+10*shi+ge; } #include “beep.h“ #include “reg52.h“ #include “delay.h“ #include “uic.h“ #include “eeprom.h“ sbit beep=P3^7; void bee_init(void) { beep=0; } void bee(void) { uchar e; e=IapReadByte(0x2500); if(e==1) { beep=1; delay(50); beep=0; delay(50); } } void bee_on(void) { beep=1; } void bee_off(void) { beep=0; } 五.调试和问题用 STC软件将编写好的程序下载在单片机上,用开发板对单片机程序做初试,初试没问题后,将单片机插入插槽中在实际系统中进行二次测验,待所有功能均正常,测试成功实际操作中由于很多地方焊点密集,容易造成电路短路,漏焊,虚焊等问题。由于单片机引脚较细,在插拔时不能直接用手,应该用镊子挑起。单片机测试时,应该现在开发板上测试,然后在拿到实际系统中测试,不然容易烧毁单片机。六.设计总结本次由我们团队设计的太阳能跟踪发电系统到此结束,在结束之余我们也感触很多。首先,我们认识到清洁绿色能源的发展势在必行,为了社会和经济的可持续发展,寻找一个可以代替传统化石能源的可再生绿色能源已经上升为这个时代的主题,其次,通过本次专业综合课程设计,我们将以前学习的知识进行了融合提高,一步步,一次次在失败中成长,这个过程中有汗水,有摩擦,也有成功的喜悦和自豪,一起克服困难,汲取知识,努力破除难关,终于收获成功。七.系统设计截图( 1)系统启动( 2) 系 统设置( 3) 系 统跟踪检测