欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Arduino简单实战“光敏小夜灯”

程序员文章站 2022-03-21 23:49:42
...

Arduino简单实战“光敏小夜灯”

前言

这次是一个简单的Arduno实战小项目,“光敏小夜灯”。这个“小夜灯”呢,是利用光敏电阻传感器和RGB LED灯模拟而成,当达到一定暗时自动开灯,在很光的时候就关灯,既方便又省电。

材料

Arduino uno x1

光敏电阻 x1

RGB LED灯 x1

电阻 x3

跳线

接线方法

Arduino简单实战“光敏小夜灯”

程序源码

// #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时,灯光亮;否则,灯光灭。
Arduino简单实战“光敏小夜灯”

运行效果

Arduino简单实战“光敏小夜灯”

总结

第一次写博客,写不清楚的地方,欢迎大家随时来问我。

相关标签: Arduino