Arduino光敏电阻

课上老师布置一个小作业,光控灯,不如抽空搞一下。

1.准备

检测周围的光照我们用的是光敏电阻,光敏电阻的阻值可以因为光照的增强而下降,入射光强、电阻减小、入射光弱、电阻增大。这样就可以实现光电转换。但是光敏的阻值一般很大,所以我们需要串联一个1K欧姆的电阻来读取光敏电压。

2.连接图

Arduino光敏电阻_第1张图片
IMG_20171020_215814_HDR.jpg

没来的及搞电路图,不过连线还是很简单的。
VCC->电阻->光敏->GND,然后在电阻和光敏连接点之间接出一根线连接A0口读取数据。

3.代码

void setup() {
  // put your setup code here, to run once:
  //初始化
   Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
   //读取A0口的值
   int sensorValue = analogRead(A0);
   //输出 
  Serial.println(sensorValue);
   delay(1000);
}

4.效果

Arduino光敏电阻_第2张图片

在监视器里可以显示数据。

5.LED灯

Led灯是单独接线的,从3引脚接到LED到GND,通过PWM控制,pwm数据就是光敏电阻读取的数据的运算255-sensorValue/4,代码如下。

int led = 3;
void setup() {
  // put your setup code here, to run once:
   Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
   int sensorValue = analogRead(A0);
   analogWrite(led,255-sensorValue/4);
   Serial.println(sensorValue);
   delay(500);
}

效果图:

VEditor_20171020224416.gif

做完才发现搞反了,环境越暗灯越暗,我这个智商啊……不说了。
童鞋们把255-去掉就好了。

你可能感兴趣的:(Arduino光敏电阻)