




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电气技术实践课程设计实验报告基于arduino的太阳追踪器作者:王喆、金宇航、马祎晗院系:宇航学院日期:2018年11月6日摘要 进入21世纪以来,伴随着经济的迅猛发展,能源短缺已经成为世界需要共同面对的严峻难题。众所周知,可再生的新能源将成为能源发展的重中之重.而太阳能作为可再生新能源的重要一员,正在为各个国家各个行业所重视,并吸引了越来越多的关注。能源业的发展经历了由薪柴到煤炭、再由煤炭到油气的两大转变。由于作为不可再生资源的石油、天然气和煤炭可能会在不久的将来消耗殆尽,一些能源问题专家一致认为,开发清洁的可再生能源是大势所趋。据预测,2050年世界人口将增至89亿,届时的能源需求将是目前的3倍,而可再生能源要占到能源供给量的50%,绝对地说,2050年可再生能源供应量将是现在全球能耗的2倍。到2050年,全球一半的能源需求将通过可再生能源来满足。传统的燃料能源正在一天天减少,对环境造成的危害日益突出,同时全球还有20亿人得不到正常的能源供应。当电力、煤炭、石油等不可再生能源频频告急,能源问题日益成为制约国际社会经济发展的瓶颈时,越来越多的国家开始实行“阳光计划”,开发太阳能资源,寻求经济发展的新动力。这个时候,全世界都把目光投向了可再生能源,希望可再生能源能够改变人类的能源结构,维持长远的可持续发展。在这样的背景下,太阳能以其独有的优势成为了人们关注的焦点。相比于昂贵并且随着越来越快的消耗而不断减少的石油,太阳能的优势不言而喻。丰富的太阳辐射能是重要的能源,是取之不尽、用之不竭的、无污染、廉价、人类能够自由利用的能源。太阳能每秒钟到达地面的能量高达80万千瓦,假如把地球表面0.1% 的太阳能转为电能,转变率5%,每年发电量可达5.6 1012千瓦小时,相当于目前世界上能耗的40倍。而中国则蕴藏着丰富的太阳能资源,太阳能利用前景广阔。现在采集太阳能最普遍的方法是利用太阳能光伏电池,然而受限于现阶段材料发展情况,考虑成本因素,太阳能电池在效率方面并不能令人满意。双轴光电式太阳跟踪器可以使光伏电池板一直正对太阳,在不改变现有材料的情况下提高光伏电池板的效率,实现对太阳辐射能的充分采集。即使在太阳能电池转化率有着重大突破后,太阳跟踪器也依然可以用于太阳能炉灶、太阳观测等情况。本文所设计的太阳跟踪器是我们学生基于Arduino设计的简单太阳跟踪器。目录一、课题分析11.1设计任务11.2软件介绍11.3材料介绍1二、总体设计32.1总体结构32.2设计原理4三、主要模块功能的设计43.1信号接收模块43.2处理模块43.3输出模块63.4A/D模块63.5电源模块7四、 主要程序设计7五、 课题总结11一、课题分析1.1设计任务本课题要求设计太阳跟踪器,能实现基本的光源追踪的功能。1.2软件介绍Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。1.3材料介绍本实验采用的舵机型号为SG-90。舵机有三根引出线:VCC,GND,CONTROL。VCC,GND为舵机的电线,CONTROL为舵机控制信号的输入线。控制信号为50Hz的PWM波形(矩形波),不同的脉宽(占空比)对应舵机不同的方位角。改变脉宽即可改变舵机的方位角。 在没有过载且控制信号持续稳定的条件下,舵机的方位角严格保持不变。此控制信号适合所有类型的舵机。需要注意的是尽管也可以用延时函数来实现PWM波,但舵机运行可能不平稳,而且若PWM波的频率偏离50Hz过大,舵机会出现震颤甚至会无法启动舵机。本作品采用的步进电机型号为28BYJ-48。步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机28BYJ48型四相八拍电机,电压为DC5VDC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。二、总体设计2.1总体结构太阳追踪器的总体结构如下图所示,本设计采用Arduino平台控制整个系统。2.2设计原理根据设计要求以及材料限制,在太阳能电池板的三个角落分别安装三个光敏电阻,分别检测各个方向的光源强度,其阻值会随着光强增加而减小。通过这三个光敏电阻的阻值变化以及其大小,能够计算出某一时刻外界光源中光强最高的位置。根据已经编写好的程序,通过Arduino控制电机旋转带动连接太阳能电池板的轴转动从而使采集阳光面朝向光源最亮的方向。三、主要模块功能的设计3.1信号接收模块设计图如下:UoUi利用光敏模块接受光信号,并将光信号转化为电信号。这个电信号链接上图的Ui。因为光敏模块发出的电信号比较小,不易处理,因此用LM324芯片搭载一个同相比例器,Uo/Ui为3,即将其放大三倍,再将放大后的信号输入到处理模块中。3.2处理模块处理模块选择arduino。Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。这里我用的arduino板子型号是UNO,是最基础的arduino板子。在电脑上使用配套的编程软件,将编号的程序烧录到板子里面,板子就可以实现编好的程序的功能。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。本作品中,将三个光敏元件提供的电压信号输入到arduino板子的analogRead(模拟输入)口中;将两个电机的控制线连接到板子的digitalWrite(数字输出)口,用数字输出口提供的PWM信号来控制电机。3.3输出模块本作品使用的输出模块是两个电机,一个是SG-90舵机,一个是28BYJ-48步进电机。舵机可以实现0-180之内固定角度的旋转,步进电机可以实现无限的顺时针或者逆时针旋转。两个电机一上一下放置,如下图:最下面的那个长方体代表28BYJ-48步进电机,由它负责实现360度水平旋转。舵机固定在步进电机上面,在图中是中间的那个长方体,它负责实现0-180的固定角度旋转。我们知道,一个水平方向的360旋转加上一个竖直方向的180旋转可以实现上半平面无死角的旋转。3.4A/D模块Arduino板子自带,将从模拟输入端口中读取的模拟信号转化成四位二进制信号存入处理器中。3.5电源模块这是我们设计的电源模块。原理是先用变压器将220V的交流电变成12V的交流电,经过二极管桥整流,在经过LM7809三端稳压器输出9V的直流电,用于给arduino板子供电。4、 主要程序设计#include /载入Servo库int angle = 85; /设置初始角度int range1 = 40; /设置范围Servo myServo; /定义伺服电机名称为myServovoid zhengzhuan() /定义正转函数 digitalWrite(2,HIGH); delay(5); digitalWrite(2,LOW); digitalWrite(3,HIGH); delay(5); digitalWrite(3,LOW); digitalWrite(4,HIGH); delay(5); digitalWrite(4,LOW); digitalWrite(5,HIGH); delay(5); digitalWrite(5,LOW); void fanzhuan() /定义反转函数 digitalWrite(5,HIGH); delay(5); digitalWrite(5,LOW); digitalWrite(4,HIGH); delay(5); digitalWrite(4,LOW); digitalWrite(3,HIGH); delay(5); digitalWrite(3,LOW); digitalWrite(2,HIGH); delay(5); digitalWrite(2,LOW); void setup() pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); /2、3、4、5、引脚为输出 myServo.attach(6); /定义sg-90舵机接口为6 myServo.write(angle); /初始化舵机角度为85度 Serial.begin(9600);void loop() int A,B,C; /设置三个光敏电阻读数分别为A、B、C A=analogRead(2); B=analogRead(0); C=analogRead(1); if(C=A&C=B) fanzhuan(); /步进电机反转 else if(A=B&A range1|B-C range1) angle = angle - 1; /角度+1 angle = constrain(angle,45,1152); /约束输出 myServo.write(angle); /执行角度 if(B - A -range1|B - C -range1) angle = angle + 1; /角度+1 angle = constrain(angle,45,115);/约束输出 myServo.write(angle); /执行角度 Serial.print(A=);Serial.print(valA);Serial.print(|B=);Serial.println(valB);Serial.print(|C=);Serial.println(analogRead(2); /串口监视器显示三个光敏的读数Serial.print(Angle=);Serial.println(angle); /显示舵机角度的变化delay(1);/延时5、 课题总结本次的课程设计为基于Arduino设计的太阳追踪器,通过这次的课程设计,我们复习了两个学期以来学习的所有电气技术实践的知识。平时每一次参加电气实验,我们几乎都是半知半解地根据老师的讲解以及书上的内容进行实验操作。而这一次的课题大作业,使我们充分地学习了一直以来未能全面掌握电气知识,虽然我们了解也是只是一些最基础的知识,但也难能可贵。我们通过将各个单一的模块实现其功能后,学会通过原理图或顶层文件把各模块连接,从而实现太阳追踪器的光源追
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 惠州烟花安全知识培训课件
- 情绪小怪兽课件
- 深海新质生产力
- 新员工培训活动方案
- 公司员工绩效考核方案管理
- 恒温机械设备基础知识培训课件
- 恐龙课件教学课件
- 制定教学工作进度方案
- 2026届山东省青岛胶州市化学高二第一学期期末达标检测试题含答案
- 装修勘察考试题及答案
- 初中物理实验教案汇编
- 浙江省消防技术规范难点问题操作技术指南(2020版)
- 武理工水处理生物学课件第11章 污水生物处理系统中的微生物
- 临床实验中不良事件的管理
- 如何开展课题研究
- 英语选修4单词表
- 炼钢厂电工应知应会考试题库500题(含各题型)
- GB/T 3840-1991制定地方大气污染物排放标准的技术方法
- 旅游区奖惩制度管理办法
- 小学语文人教六年级上册《童年》整书阅读课件
- 组合式空调机组各功能段介绍(课堂PPT)
评论
0/150
提交评论