太阳追踪太阳系
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 4 |
应用和在线服务
|
关于这个项目
看来你现在走在街上不会碰到太阳能电池板。您可以在农村地区找到它们用于移动充电,以及简单的小人行道灯。太阳能易于使用、随时可用且价格低廉。
您在日常生活中看到的每个面板都处于固定位置。虽然这种方法非常简单并且可以满足大多数小型应用程序的需求,但它并没有产生尽可能多的能量。
我们的跟踪器是双轴跟踪器 ,这意味着它在 X 和 Y 方向上都跟踪。用更简单的术语来说,它会向左、向右、向上和向下移动。这意味着一旦您设置了跟踪器,您就无需更改或调整任何内容,因为太阳移动的任何地方您的跟踪器都会跟随。
图> 图> 图> 图> 图> 图>
代码
- 太阳跟踪太阳系
太阳跟踪太阳能系统Arduino
这是跟踪太阳系的代码。/* * 作者:Mayur Rabadiya * 电子邮件:[email protected] * 代码:太阳跟踪太阳系 */#include// 伺服电机 Servo s 库; // 定义垂直伺服伺服 sh; // 定义水平伺服 int start1 =90; // 最初从 90 度开始 int start2 =90; INT L1 =A0; //从LDR1读取数据 int L2 =A1; //用于从 LDR2int L3 =A2 读取数据; //从LDR3读取数据 int L4 =A3; //从LDR4读取数据 int a =15;无效设置(){s.attach(9); //将垂直伺服连接到arduino sh.attach(10)的引脚9; //将水平伺服连接到arduino pinMode(L1, INPUT)的引脚10; //定义LDR为输入pinMode(L2, INPUT); pinMode(L3,输入); pinMode(L4,输入); s.write(start1); //当我们重置系统时它会从90开始伺服 sh.write(start2);延迟(2000); } void loop() { int LDR1 =analogRead(L1); //从LDR读取值 int LDR2 =analogRead(L2); int LDR3 =模拟读取(L3); int LDR4 =模拟读取(L4); int plus14 =(LDR1+LDR4); //两个角的平均LDR int plus23 =(LDR2+LDR3); int plus12 =(LDR1+LDR2); int plus34 =(LDR3+LDR4); int diff1=abs(plus14 - plus23); // 取适当值的差异 int diff2=abs(plus23 - plus14); int diff3=abs(plus12 - plus34); int diff4=abs(plus34 - plus12); if((diff1 <=a) || (diff2 <=a)) { //差异小于 15 所以什么都不做 } else { if(plus14> plus23) //移动垂直伺服小于 90 度 { start2=- -start2; } if(plus14 plus34 ) { start1=--start1; // 移动水平舵机小于 90 度 } if(plus12
示意图
制造工艺