Arduino光敏电阻单轴追光实验

实验现象:

Arduino追光实验

实验原理:

      (光强比较法)利用光敏电阻在光照时阻值发生变化的原理,将两个完全相同的光敏电阻分别放置于一块太阳能电池板东西方向。如果太阳光垂直照射太阳能电池板时,两个光敏电阻接收到的光照强度相同,所以它们的阻值完全相等,此时舵机或电机不转动;当太阳光方向与太阳能电池板垂直方向有夹角时,接收光强多的光敏电阻的阻值减小,驱动舵机或电机转动,直至两个光敏电阻上的光照强度相同。

制作步骤:

1、所用材料

Arduino UNO开发板一块;

光敏电阻两个;

200k电阻两个;

G90舵机一个;

小面包板一块;

杜邦线若干;

废纸盒/纸板若干;

电源(这里我用的是充电宝直接给开发板供电)

Arduino  USB专用数据线;

2、所用工具/软件

热熔胶枪;

剪刀;

电焊笔;

剥线钳;

Arduino编程软件;

3、支架的制作和连接

         用公对公或公对母杜邦线把公或母的一端剪得到一端为公的线,同样的方法的到四根这样的线,把另一端用电焊笔与光敏电阻焊在一起,得到两个焊好连接线的光敏电阻之后把它用热熔胶枪粘在太阳能电池板两侧。

如图

用废纸板制作的框架与舵机和太阳能板可以用热熔胶枪粘接

4、接线

实物图

电路接线图(画图软件fritzing)

太阳能电池板可以自己用热熔胶枪粘

5、程序

  #include <Servo.h>  //载入Servo库
 
#define InA A2     //定义读取1光敏电阻的模拟口
#define InB A1     //定义读取2光敏电阻的模拟口
 
int valA,valB;     //用于存储两个光敏电阻的数值   
int angle = 90;    //设置初始角度
int range = 100;   //设置范围
Servo myServo;
 
 
 
void setup() {
  myServo.attach(9);      //定义舵机接口
  myServo.write(angle);   //初始化舵机角度为90度
  Serial.begin(9600);    //设置串口波特率
}
 
 
void loop() {
 
  valA = analogRead(InA);  //读取A光敏电阻数据
  valB = analogRead(InB);  //读取B光敏电阻数据
 
 
  if(valA-valB > range)
  {
    angle = angle + 1;               //角度+1
    angle = constrain(angle,0,180);  //约束输出
    myServo.write(angle);            //执行角度
  }

  else if(valA - valB < -range)
  {
    angle = angle - 1;
    angle = constrain(angle,0,180);
    myServo.write(angle);
    
  }

  Serial.print("A=");
  Serial.print(valA);
  Serial.print("||B=");
  Serial.println(valB);
  Serial.print("Angle=");
 Serial.println(angle);
  
  delay(100);  //延时
}

扩展应用

太阳能寻光电机

  • 4
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@A.D.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值