14474| 7
|
[项目] Arduino Uno|可以自己追踪阳光的太阳能板 |
可以自己追踪阳光的太阳能板 第1步:为何选择太阳能跟踪器? 太阳能电池板无处不在。它们价格低廉,易于使用。在youtube和DIY网站上发现了数以万计的小规模太阳能电池板项目。 由于太阳能集团的购买和政府激励措施的激增,大多数人可能在他们的社区有几个更大规模的太阳能设施。在绝大多数这些设置中,太阳能电池板固定在建筑物的屋顶上,指向南45度(在北半球时)。固定太阳能装置是迄今为止最简单的为家庭或建筑供电的方式,因为需要很少的维护和保养。我们经常告诉与我们联系的人,不为您的家建造太阳能跟踪器更具成本效益,而只需在阵列中添加更多太阳能电池板。 然而,从单个面板收集能量的最有效方式是通过太阳能跟踪器。这允会让太阳能电池板整天处于最佳位置,这使得能量产生增加超过20%。这种系统非常适用于没有大量平屋顶的建筑物或设施。 我们将演示一个在X轴和Y轴上移动的Active Solar Tracker。这种系统使用微控制器或精心设计的模拟电路和传感器,以使太阳能电池板保持在正确的位置。这确实是一个非常滑稽的演示,你可以在教室里使用手电筒,来测试。 每天跟随一组路径,因为太阳的运动是100%预测的。此类设计的关键是确保将软件设置在最适合的位置。 第2步:设计 我们的原始版本更关注物理力学而不是电子学,这被证明是它最大的错误。当我们开始重新设计这个项目时,我们决定将我们的布线从“电线束”方法改为简单的“即插即用”方法,因为我们的观众往往是学生。 我们做的第一件事是创建一个定制的Arduino Shield来插入伺服器和传感器。最初的设计采用了通用的Arduino传感器护罩,适用于Servos,但对传感器效果不佳。我们的盾牌总体上并不特别,它是迄今为止最简单的设计方面。(我们还将它用于其他需要插入简单传感器和伺服器的项目。) 为了保持传感器的位置,我们设计了一个非常简单的传感器支架,可以很容易地拧到木头上。然后,一组引脚头允许我们使用母跳线将传感器PCB连接到屏蔽。对此设置进行故障排除比我们原来的“电线束”或面包板要容易得多。 最后我们重新设计并将相当多的木材从四分之一英寸改为八英寸以减轻重量。虽然我们从来没有任何关于人们对他们的9G伺服系统出现问题的报道,但他们的重量越轻越好。 第3步:需要的部件 工具: 螺丝刀 电脑 激光切割机或CNC路由器,如果您自己切割零件 电子产品: Arduino Uno 太阳能跟踪器屏蔽(引脚接头和10,000欧姆电阻器) 传感器支架PCB(引脚接头和光检测电阻器) 母对母跳线电缆 2 x 9G尺寸金属齿轮伺服系统 硬件: 激光切割或CNC木制零件 4 x M3螺丝+螺母,长度约为14-16mm 4 x尺寸2木螺钉,长度为1/4英寸,或一些长度相似的M1螺钉 21 x 8-32长度为1/2英寸的螺丝 1 x 8-32,3 / 4英寸 1 x 8-32螺钉长2.5英寸,可选螺母 24 x 8-32坚果 4 x橡胶脚 可选的: 太阳能电池(6V 200mA是我们使用的) LED伏特表 电线将两者连接在一起 大多数这些部件都很容易找到。如果您想制作自己的PCB,可以通过OSHPark.com或其他PCB服务来完成。 第4步:准备PCB 如果你想得到自己的产品,你可以在我们的GitHub Repo上找到我们的PCB文件,然后使用OSHPark等服务来制作一些PCB。您还需要一些10,000欧姆的电阻,引脚接头和光检测电阻来填充电路板。 通常,通过孔焊接这很容易。务必在末端使用带有适当尖端的烙铁。 焊接:焊接伺服和传感器引脚接头朝上,Arduino连接引脚接头朝下。 传感器焊接:光检测电阻正面朝上,针接头朝下。 我们还有一个使用Arduino Nano设计的PCB,但它没有经过测试。如果有人做了其中之一,我们很乐意看到它! 第5步:准备木制零件 我们很幸运能够在我们的工作室中安装激光切割机和CNC路由器,这使得我们可以非常轻松地切割零件。大多数人需要在当地的创客空间,大学或图书馆寻找机器。任何台式激光切割机或CNC路由器都能够处理我们正在使用的1/8英寸和1/4英寸木材。我们已经有几个学生团体用手工切割的泡沫板或纸板成功地建造了这个项目。 我们不建议使用丙烯酸。它非常沉重和密集,可能会压倒两个舵机。 带有矢量线的PDF可以在我们的GitHub Repo上轻松找到。将它们放入您首选的激光切割机软件,inkscape或其他绘图软件中。请注意,我们的文件中有CUT线和ETCHING线。 如果您想简化此项目,可以尝试取消控制太阳能电池平台的Y伺服,然后手动调整Y轴。这将把它变成一个非常漂亮的单轴跟踪器。 我们确实有很多要求激光切割木制零件。我们确实在我们的网站上将它们作为一个选项出售,并确保同时发送所有适当的螺丝。 步骤6:连接X伺服,腿和基座 注意:有很多方法可以将它们放在一起,并且构建它的顺序并不重要。如果您想查看一些线条艺术风格的指示,您可以通过我们网站上的说明进行查看。 构建第一步时,将其中一个伺服系统连接到圆形伺服安装座。 使用伺服器附带的螺钉将其固定在木制件的底部。这是没有蚀刻的一面。 然后用一个8-32螺丝和螺母连接四个支腿。不要把它们拧到一边,留下一些摆动的空间。 最后将四条腿连接到大型木质项目基座上,另外还有四个8-32螺丝和螺母。一旦他们安全拧紧圆形伺服安装座上的其他四个螺钉。 这也是将橡胶支脚放在Project Base木质底部的好时机,这样螺丝就不会刮伤你的桌子。 步骤7:连接Y伺服并建立中心 使用上图来构建Center部件。 使用随附的螺钉安装伺服器。你使用的木制件的哪一侧无关紧要,只是伺服体指向内部。 接下来,松散地连接两个长矩形件和两个长螺钉导向件。 第8步:连接伺服喇叭 注意:这是迄今为止构建中最烦人的部分。如果你打破伺服喇叭不用担心。 将一个随伺服附带的X形伺服喇叭连接到大型中心圆形件上。为此,请使用两个小螺钉。 使用另一个伺服号对做同样的事情。 步骤9:连接 连接刚刚连接喇叭的中心圆片,并将其与之前的Y伺服中心件连接。连接件并使用四个8-32螺钉和螺母将它们固定在一起。 然后,使用伺服喇叭作为连接点将其放在底座上。不要将它拧到位。 归位X伺服 使用现在连接到伺服的伺服喇叭,顺时针旋转伺服。(您也可以使用左侧的Servo Horns之一。) 拿起中心并将其放在最逆时针位置。使用Project Base的角作为参考点。 最后使用伺服器附带的非常小的螺丝将喇叭拧入伺服系统。如果可以的话,有一个带磁性尖端的螺丝刀是有帮助的。 第10步:建立面部,回归Y伺服,连接一切 首先,使用半英寸(或3/4英寸)8-32螺母和螺丝将传感器PCB拧入面板。然后使用更多的8-32螺丝将两个分隔器连接在一起。 接下来,将两个三角翼拧入面板。 确保具有伺服喇叭的机翼与Y轴伺服机构匹配。 归巢伺服 我们在这里做同样的事情。使用伺服喇叭顺时针转动伺服。 然后将整个面板连接起来,使其几乎垂直,但不要敲入任何其他木制部件。 连接一切 2.5英寸螺钉通过大型激光切割孔将面板的一侧与中心连接。 然后使用另一个非常小的伺服螺丝将喇叭拧入Y轴伺服系统。 步骤11:连接Arduino和Connect Wires 最后,我们需要使用一些M3螺丝和螺母将Arduino拧入底板。我们通常只使用两个螺丝,但我们增加了四个孔。然后将盾牌附加到Arduino。 将舵机插入护盾。务必将水平伺服连接到X轴连接,将垂直伺服连接到Y轴连接。 匹配传感器PCB和Shield之间的五个连接,它们都被标记。连接所有四根电线。 注意:如果你遇到问题,那就是因为你把错误连接起来了。如有疑问,请仔细检查传感器导线并仔细检查您的伺服器是否在正确的位置。 第12步:上传代码 我们的代码非常简单。它比较了击中四个光检测电阻中的每一个的光,并试图使它们均匀。这也是一种非常低效的做事方式,对于较大的项目来说,这绝不会很好。这段代码的最大优点是观看它很有趣。跟踪器将非常容易地跟随手电筒。最大的缺点是,它并不是特别准确,如果你整天都在阳光下,它不会经常移动。您可以调整代码以使其更敏感,但这是一个很多的试验和错误。 使用Arduino官方软件将此代码上传到Arduino。 [mw_shl_code=applescript,true] #include <Servo.h> // include Servo library // 180 horizontal MAX Servo horizontal; // horizontal servo int servoh = 90; // 90; // stand horizontal servo int servohLimitHigh = 180; int servohLimitLow = 65; // 65 degrees MAX Servo vertical; // vertical servo int servov = 90; // 90; // stand vertical servo int servovLimitHigh = 120; int servovLimitLow = 15; // LDR pin connections // name = analogpin; int ldrlt = 2; //LDR top left - BOTTOM LEFT <--- BDG int ldrrt = 3; //LDR top rigt - BOTTOM RIGHT int ldrld = 0; //LDR down left - TOP LEFT int ldrrd = 1; //ldr down rigt - TOP RIGHT void setup() { Serial.begin(9600); // servo connections // name.attacht(pin); horizontal.attach(9); vertical.attach(10); horizontal.write(180); vertical.write(45); delay(3000); } void loop() { int lt = analogRead(ldrlt); // top left int rt = analogRead(ldrrt); // top right int ld = analogRead(ldrld); // down left int rd = analogRead(ldrrd); // down rigt // int dtime = analogRead(4)/20; // read potentiometers // int tol = analogRead(5)/4; int dtime = 10; int tol = 50; int avt = (lt + rt) / 2; // average value top int avd = (ld + rd) / 2; // average value down int avl = (lt + ld) / 2; // average value left int avr = (rt + rd) / 2; // average value right int dvert = avt - avd; // check the diffirence of up and down int dhoriz = avl - avr;// check the diffirence og left and rigt Serial.print(avt); Serial.print(" "); Serial.print(avd); Serial.print(" "); Serial.print(avl); Serial.print(" "); Serial.print(avr); Serial.print(" "); Serial.print(dtime); Serial.print(" "); Serial.print(tol); Serial.println(" "); if (-1*tol > dvert || dvert > tol) // check if the diffirence is in the tolerance else change vertical angle { if (avt > avd) { servov = ++servov; if (servov > servovLimitHigh) { servov = servovLimitHigh; } } else if (avt < avd) { servov= --servov; if (servov < servovLimitLow) { servov = servovLimitLow; } } vertical.write(servov); } if (-1*tol > dhoriz || dhoriz > tol) // check if the diffirence is in the tolerance else change horizontal angle { if (avl > avr) { servoh = --servoh; if (servoh < servohLimitLow) { servoh = servohLimitLow; } } else if (avl < avr) { servoh = ++servoh; if (servoh > servohLimitHigh) { servoh = servohLimitHigh; } } else if (avl = avr) { // nothing } horizontal.write(servoh); } delay(dtime); } [/mw_shl_code] 如果您的伺服器和传感器已插入,您将看到它突然转到“主页”位置,暂停一秒钟,然后再次移动。 第13步:常见问题和解答 常见问题。 Q1)它在阳光下而不工作!这(商品质量)真是骗人! A1)是否插入USB电源?跟踪器不是自供电,完全通过进入Arduino的USB电缆运行。 Q2)头部猛烈撞击其他部位或身体! A2)你需要再次“回家”舵机。我们需要给出伺服限制。(这也可以在代码中完成) Q3)它没有太大的变化,我该如何改变呢? A3)尝试在昏暗的房间内使用手电筒。外面阳光下可能会不堪重负。 Q4)我的Arduino不会上传。我究竟做错了什么? A4)确保安装了Arduino驱动程序,确保从主板列表中选择了Arduino Uno,确保选择了正确的通信端口。 Q4)这是完全扯掉的!你怎么敢为套装收取那么多费用!你们很糟糕 A4)感谢您提供有见地的评论,即使这不是一个问题,您是否从YouTube来到这里?是的,我们会为套件版本收取费用,但是我们会为您提供所需的所有组件,并为您提供真实,实时的客户支持。如果您不想从我们这里购买,请使用我们的开源文件和本说明指南。 第14步 当我们做这个项目的套件版本时,我们还包括一个6V 200mA太阳能电池以及廉价的LED伏特表。这个小太阳能电池不会做很多事情,但你可以从中获取一些数据。 我们通常使用维可牢尼龙搭扣或泡沫胶带将太阳能电池连接到面部。请记住,虽然你可以在技术上将巨型太阳能电池板连接到这个项目,但你会立即粉碎它。太大的太阳能电池也会给伺服系统带来额外的压力。(较大的跟踪器会想要使用齿轮式步进电机。) 在我们的激光切割文件中,您可以找到一个简单的LED电压表支架,它可以使用另外两个8-32螺丝固定在底座上。我们使用线螺母将伏特表连接到太阳能电池。这些类型的伏特表由电源供电,是太阳能电池。黑色电线为负极,红色和白色电线为正极。 第15步:享受! 我们希望此更新可以帮助很多人,并让更多人对创建桌面太阳能跟踪器感兴趣。 本文由kiki翻译,可能有部分翻译错误,请谅解。 来源:https://www.instructables.com/ 作者:BrownDogGadgets |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed