亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

太阳能电池板太阳追踪器 - 手机充电器

组件和用品

Arduino UNO
× 1
舵机(Tower Pro MG996R)
不需要外部电源的9克伺服
× 1
光敏电阻
× 2
电阻 10k ohm
× 2
2.5V 至 5V 升压转换器 - USB 适配
× 1
太阳能电池板 - 爱好尺寸
任何小面板都可以,输出越高越好,但要保持小而轻
× 2

必要的工具和机器

烙铁(通用)

应用和在线服务

Arduino IDE

关于这个项目

走向绿色

我在澳大利亚的可再生能源行业工作了一段时间,并在 Arduinos 上进行了一段时间的修补,但直到这个项目我才最终决定将两者结合起来建造我自己的小型太阳能设备。前面有一个小说明,这个项目显然需要 5V 来为 Arduino 和伺服器供电,这用于最大化最多产生 3.4V 的太阳能电池板的输出。所以它并没有完全得到回报。然而,这个概念是可扩展的,因此,例如,如果您在 8 个面板的阵列上使用这个概念,产生 12V,那么您就可以为 arduino 供电,并在没有外部电源的情况下为手机充电。我计划有一天会这样做,当它发生时会在此处添加一个链接。

当我在这里时,我最好归功于我的消息来源......

DIY 生活 - http://www.the-diy-life.com/arduino-solar-tracker/

Brown Dog 小工具 - http://www.instructables.com/id/Solar-Altoids-USB-Charger/

两者都是关于该主题的良好信息来源,也是我从哪里得到这个概念的。

开始

所以,首先,你需要一些太阳能电池板。我使用了两个,尽​​管您可以使用任意多个,但请考虑一下 9 克伺服器能够提升/降低多少(不要让它太重)。我发现的面板额定电压为 1.5V,0.75W 输出,这是目前可用的低端。但它们又轻又便宜,考虑到这对我来说是一个概念验证项目,输出并不是很重要。

我沿着边缘用环氧树脂连接了我的两个面板。要将面板连接成串,只需将一个面板的正极引线焊接到另一个面板的负极引线上,这样您就可以剩下正负极线了。将两个 LDR 连接到太阳能电池板的每一侧(东侧和西侧),并将跳线的一端焊接到它们的每根引线上。 如果将一端从一侧切掉,然后将引线剥去约 5mm 以露出电线,则更容易焊接跳线 .

为了让 Arduino 读取 LDR,我们需要为每个分压器电路。请参阅此处了解分压器。本电路中LDR为R1,R2使用10kohm电阻,将跳线连接到arduino两电阻相接处。如果您在面包板上构建这个项目,一个 LDR 引线将连接到分压器,另一个连接到正电源轨。参见下面的弗里茨图。

跟踪器结构

您需要构建的下一件事是用于面板的旋转支撑结构。我的设计基本上是由两个 A 型框架支撑的一段弹簧钢。面板阵列的底部有小木支柱,带有弹簧钢孔。我用轻木制作了整个东西,以保持它便宜、简单和轻便,但如果这是一个永久性的固定装置,你会希望它用薄钢或处理过的胶合板制成。我没有很好地记录旋转支撑的构建,但是下面的视频应该向您展示它是如何完成的,以及舵机的位置。我用面板向下构建了我的面板,以便能够面对结构的底部向北,因此无论面板在跟踪太阳时以何种方式摆动,它都会始终向北倾斜一点以最大化输出。 (我在南半球)

安装舵机

伺服位于 A 型框架结构的支撑梁之一上,可提升/降低面板的一侧。我用钳子折叠了一些弹簧钢以获得钩状末端,您可以将其穿过面板支柱和伺服臂,您可能需要加宽伺服臂上的孔以适应钢,我使用了我能找到的最小的钻头。不要将钢粘到伺服臂或面板支柱上,因为它必须能够在孔内旋转才能使面板平稳抬起。安装到位后,将面板从结构上取下,这样就只剩下伺服器了,这样您就可以进行一些校准了。

校准伺服

打开一个新的草图并输入以下代码。

#include Servo myservo1; // 创建一个伺服对象来控制servoint pos =10;void setup() { myservo1.attach(9); //将伺服对象附加到 PWM 引脚 9}void loop() { myservo1.write(pos);} 

上传到你的arduino,看看伺服移动到哪里。在草图中不断更改 0 到 180 之间的 'pos' 值并重新上传草图,直到找到伺服臂垂直向上和向下指向的位置。这些是您的最大值和最小值。对我来说,它是 15 和 140。如果值不知何故从 180-back 到 0 重叠,请取下伺服臂并重新定位,以便正确对齐。

推杆 一起

继续连接所有东西,然后输入以下草图。

//Sun Tracker Sketch ////此草图设计用于 9 克伺服器,能够//直接从 Arduino 供电,无需外部//电源。对于fritzing图,请参阅Github存储库//https://github.com/nickalanf/Arduino--Projects//串行监视器部分用于调试目的,或用于一般兴趣,//一旦设备正常运行,就可以be diasabled////Sketch by FIELDING - 8/2/18#include 伺服伺服; // 创建一个伺服对象来控制servoint eLDRPin =A0; // 为 LDR 分配引脚 wLDRPin =A1;inteastLDR =0; //创建变量以存储到 LDR 读数int westLDR =0;int difference =0; //创建一个变量来比较两个LDR的sint error =10; // 变量是否在两个 LDR 的 sintservoSet =130 之间存在显着差异; //伺服位置的变量 - 每个设备都会不同void setup(){servo.attach(9); //将伺服对象附加到 PWM 引脚 9 Serial.begin(9600); }void loop() {eastLDR =analogRead(eLDRPin); //读取LDR值 westLDR =analogRead(wLDRPin); if (eastLDR <400 &&westLDR <400) { //检查两个 LDR 上是否有弱光 while (servoSet <=140 &&>=15) { // 如果是,则将面板送回东方以进行日出伺服设置++;伺服。写(伺服集);延迟(100); } } 差异=eastLDR - westLDR; //检查差异 if (difference> 10) { //将面板发送到具有更高读数的 LDR if (servoSet <=140) {servoSet ++;伺服。写(伺服集); } } else if (difference <-10) { if (servoSet>=15) {servoSet --;伺服。写(伺服集); Serial.print(eastLDR); //串行监视器可用于调试/设置 Serial.print(" - "); //使用它来查看您的 LDR 在 Serial.print(westLDR); 时是否明显不同; //它们有相同的光照在它们上面,如果是这样,用错误值 Serial.print(" - "); Serial.print(差异); Serial.print(" - "); Serial.print(servoSet); //微调伺服设置,以最大化可用的摆动 Serial.print(" - "); Serial.println(".");延迟(100);} 

打开串行监视器,将光线照射到 LDR 上。尝试将其均匀地照射到两者上,并检查打印到串行监视器的差异值。如果它大于约 25 或小于 -25,则需要添加错误校准。将相关错误值添加到代码中,然后从相关 LDR 中添加或减去该值。如果差值很接近,保持原样应该没问题。

您准备好进行测试了!最简单的方法是进入一个黑暗的房间,并拿着手电筒/灯。将光从一个 LDR 缓慢摆动到另一个,并观察面板移动。您也可以覆盖一个 LDR,并且面板应该远离那个。

赠品-手机充电器

如果您想真正使用面板输出,您可以将 2.5V-5 V DC-DC 升压转换器直接连接到面板上的引线。它是一个完全独立于 arduino/面包板的电路。请注意,标准电话以 5V 充电,您的面板可能会输出 5V 但电流很低,因此如果您的电池已满或阳光不足,您将没有足够的输出来充电。解决此问题的最简单方法是简单地添加更多面板!

代码

  • 太阳追踪器
太阳追踪器处理
//Sun Tracker Sketch ////此草图设计用于 9 克伺服器,能够//直接从 Arduino 供电,无需外部 // 电源。对于fritzing图,请参阅Github存储库//https://github.com/nickalanf/Arduino--Projects//串行监视器部分用于调试目的,或用于一般兴趣,//一旦设备正常运行,就可以be diasabled////Sketch by FIELDING - 8/2/18#include 伺服伺服; // 创建一个伺服对象来控制servoint eLDRPin =A0; // 为 LDR 分配引脚 wLDRPin =A1;inteastLDR =0; //创建变量以存储到 LDR 读数int westLDR =0;int difference =0; //创建一个变量来比较两个LDR的sint error =10; // 变量是否在两个 LDR 的 sintservoSet =130 之间存在显着差异; //伺服位置的变量 - 每个设备都会不同void setup(){servo.attach(9); //将伺服对象附加到 PWM 引脚 9 Serial.begin(9600); }void loop() {eastLDR =analogRead(eLDRPin); //读取LDR值 westLDR =analogRead(wLDRPin); if (eastLDR <400 &&westLDR <400) { //检查两个 LDR 上是否有弱光 while (servoSet <=140 &&>=15) { // 如果是,则将面板送回东方以进行日出伺服设置++;伺服。写(伺服集);延迟(100); } } 差异=eastLDR - westLDR; //检查差异 if (difference> 10) { //将面板发送到具有更高读数的 LDR if (servoSet <=140) {servoSet ++;伺服。写(伺服集); } } else if (difference <-10) { if (servoSet>=15) {servoSet --;伺服。写(伺服集); Serial.print(eastLDR); //串行监视器可用于调试/设置 Serial.print(" - "); //使用它来查看您的 LDR 在 Serial.print(westLDR); 时是否明显不同; //它们有相同的光照在它们上面,如果是这样,用错误值 Serial.print(" - "); Serial.print(差异); Serial.print(" - "); Serial.print(servoSet); //微调伺服设置,以最大化可用的摆动 Serial.print(" - "); Serial.println(".");延迟(100);}

示意图


制造工艺

  1. 太阳能电池
  2. 使用 Arduino 的太阳能电池板实时数据采集
  3. 太阳能追踪器 V2.0
  4. 基于物联网 (IoT) 的太阳能跟踪器
  5. 太阳追踪太阳系
  6. SmartPostBox
  7. 伺服控制的光跟踪太阳能电池板平台
  8. 具有自动和手动模式的双轴太阳能跟踪器面板
  9. Arduino - PV MPPT 太阳能充电器
  10. Arduino 太阳能追踪器
  11. 太阳能电池板:质量问题和关键控制点
  12. 太阳能电池板制造过程:太阳能电池板是如何制造的?