Arduino简单实战“光敏小夜灯”
程序员文章站
2022-03-21 23:49:42
...
前言
这次是一个简单的Arduno实战小项目,“光敏小夜灯”。这个“小夜灯”呢,是利用光敏电阻传感器和RGB LED灯模拟而成,当达到一定暗时自动开灯,在很光的时候就关灯,既方便又省电。
材料
Arduino uno x1
光敏电阻 x1
RGB LED灯 x1
电阻 x3
跳线
接线方法
程序源码
// #include <Wire.h>
int redPin= 7;
int greenPin = 6;
int bluePin = 5;
int Intensity =0;//定义Intensity变量
#define AD5 A5//定义模拟口A5
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
}
void loop() {
//光线越暗,值越大;反之则越小。
Intensity = analogRead(AD5); //读取模拟口AD5的值,存入Intensity变量
Serial.print("Intensity = "); //串口输出"Intensity = "
Serial.println(Intensity); //串口输出Intensity变量的值,并换行
delay(500); //延时500ms
if(Intensity>600){
setColor(0, 0, 255); // Blue Color
delay(5);
//大于600时,即达到了一定暗的程度,亮灯
}
else {
setColor(0, 0, 0); // Black Color
delay(1000);
//否则,灭灯
}
}
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
}
测试数据
解释一下Intensity的变化规律,光线越暗,值越大;光线越亮,值越小。
所以这里我设定了光线在大于600时,灯光亮;否则,灯光灭。
运行效果
总结
第一次写博客,写不清楚的地方,欢迎大家随时来问我。
上一篇: 智能复位——程序控制MCU复位
下一篇: C语言的基础类型的内存空间