课上老师布置一个小作业,光控灯,不如抽空搞一下。
1.准备
检测周围的光照我们用的是光敏电阻,光敏电阻的阻值可以因为光照的增强而下降,入射光强、电阻减小、入射光弱、电阻增大。这样就可以实现光电转换。但是光敏的阻值一般很大,所以我们需要串联一个1K欧姆的电阻来读取光敏电压。
2.连接图
没来的及搞电路图,不过连线还是很简单的。
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.效果
在监视器里可以显示数据。
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);
}
效果图:
做完才发现搞反了,环境越暗灯越暗,我这个智商啊……不说了。
童鞋们把255-去掉就好了。