前言
大学专业是能源相关,对太阳能等新能源比较感兴趣,一直好奇太阳能电池板是如何跟踪阳光的。直到最近在油管上看到一个视频,根据光敏电阻追踪光源,才恍然大悟。趁着回扬州,用了一个晚上和一个上午做了这件比较有趣的装置。
组成简介
主要组成部分如下,Arduino Nano ,四个光敏电阻,四个12KΩ的电阻,太阳能电池板,两个sg90舵机。制作框架的塑料管是折腾机箱水冷时剩下的边角料,放了一年多居然派上用场了。
使用的光敏电阻型号为5516,用万用表测试,正常光照下,电阻为1.6KΩ 左右;用手遮挡光源后,阻值趋于无穷大。
光敏电阻(photoresistor or light-dependent resistor,后者缩写为ldr),常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。其工作原理是基于内光电效应。光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低,亮电阻值可小至1KΩ以下。光敏电阻对光线十分敏感,其在无光照时,呈高阻状态,暗电阻一般可达1.5MΩ。
正面并联放置了三块5V,200mA输出的太阳能电池板,5V电压可以给手机平板等好多设备充电。选择12KΩ的电阻,是综合考虑了模拟口取样的平滑和灵敏。下图是选择四种不同阻值的电阻时,中间电压值的变化。(5V供电时)根据上文对光敏电阻的描述,x(光敏电阻的阻值,单位KΩ)的取值范围在1到1500之间,由图像可以看出在该范围内,选取串联的电阻阻值越大,曲线越平滑,同时灵敏度下降。所以折中选择10KΩ左右的电阻比较合适。
考虑了两种可行的方案,第一种方案即上述的选择四个12KΩ的电阻与四个光敏电阻串联,分别读取四个中间电压值作比较,进行舵机的角度调整。
第二种方案是左右两侧和上下两侧的光敏电阻分别串联,只需要读取两个中间电压值,就可以做出相应的控制。第一种方案接线麻烦些,但是可以实现更多的控制方式。(比如说夜晚中间电压值均小于给定值时,恢复初始状态待机)
方案一接线
方案一代码
#include <Servo.h>
Servo servo1;
Servo servo2;
int initial1 = 90;
int initial2 = 90; //舵机初始角度
int LDR1 = A0;
int LDR2 = A2;
int LDR3 = A4;
int L