追光机器人——基于Arduino的小型太阳能收集装置

2013-08-29 10:18 来源:电源网 作者:铃铛

设计原理及效果

4个光传感器的作用是寻找测试环境的最亮点,也就是太阳所在的位置。经过测试,笔者所用的光传感器在光源变亮时,其值会相应减小。所以只要找到这4个传感器所采集到的信号值的最小均值,那么也就找到光源最亮点的所在位置了。再通过舵机的旋转加上电机控制,就可以扫描到周围光线的最亮点了。

将它拿到室外,每隔10分钟,“向日葵”会做一次检测,找到太阳所在位置进行定位并开始采集太阳能。如果加装将太阳能电池板采集到的电能输出到其他设备的功能,就会让“向日葵”变成很有实用价值的会移动的自动充电器。

示意图如下:

0000

太阳能收集装置参考代码

#include //一些库函数

#include

#include

Servo DF15MG1;

Servo DF15MG2;

int vala,valb,valc,vald,sum,mindata;

int average[25],pos2=0,i=1,no;

void ready()

{

DF15MG2.write(0);

}

void setup()

{

DF15MG1.attach(3);

DF15MG2.attach(11);

DF15MG1.write(70);

DF15MG2.write(0);

delay(1000);

for(int i= 0; i < 180; i++)

StartUpcode();

calmaxlight();

}

void loop()

{

}

void StartUpcode()

{

DF15MG1.write(70);

vala=analogRead(0); //传感器数值读入

valb=analogRead(1);

valc=analogRead(2);

vald=analogRead(3);

pos2=pos2+1;

DF15MG2.write(pos2);

pos2=constrain(pos2,0,180);

if(pos2%10==0)

{

sum=vala+valb+valc+vald; //4个传感器求和

average[i]=sum/4; //求均值

mindata=average[1];

i++;

}

delay(10);

}

void calmaxlight()

{

mindata=average[1];

for(int i = 2; i< 19; i++)

{

if(mindata>average[i])

{

mindata=average[i]; //找到最小值及其最小值的编号

no = i;

}

}

DF15MG2.write(no*10); //舵机转到光源所在方向

}

< 1 2 3 > 
Arduino 太阳能

相关阅读

暂无数据

一周热门